当前位置: 首页 > news >正文

知识图谱-KGE-语义匹配-双线性模型(打分函数用到了双线性函数)-2012:LFM(Latent Factor Model)

【paper】 A latent factor model for highly multi-relational data

【简介】 这篇文章是法国的研究团队发表在 NIPS 2012 上的文章,还挂了 Antoine Bordes 的名字。文章提出了 LFM(Latent Factor Model),主要贡献有两点:一是定义了 unigram、bigram、trigram 三种方式组合的三元组打分函数;二是将关系矩阵分解为低阶矩阵的组合,这样可以实现参数共享。

其实这种比较老的论文的表达方式、行文结构跟现在的论文都不太一样,再加上时间有限,所以没有看太明白。但这类模型终究是要过一遍的,就这样吧。

模型

文章在 intro 部分介绍了统计关系数据建模的现存难点:

  1. 频繁出现的关系类型只是一小部分(长尾现象)
  2. 数据存在噪声并且不完整
  3. 数据集规模有限

文章称 LFM 是基于概率的,明确考虑了数据的不确定性。这里的不确定性应该不是指的实体和关系包含语义的不确定性,只是指对三元组进行概率打分。

早期的论文中三元组表示都是(subject, relation, object),若三元组成立,写作 Ri(Si,Ok)=1Ri(Si,Ok)=1。

表示及打分函数

logistic 模型进行了如下的定义:

其中,ηik(j)ηik(j) 是一个线性函数:

贡献一: 对打分函数 ηik(j)ηik(j) 进行了重新定义

贡献二: 对关系矩阵进行分解

当关系数量比较多时,每个关系下的样本很少,容易引起过拟合。之前的模型曾经使用两种解决方法,一是聚类,二是用向量表示关系。与 RESCAL 的使用一个通用矩阵进行参数化的方法不同,本文提出的解决方法是将关系矩阵分解为 d 秩一矩阵(不知道这里的“一矩阵”是不是指对角矩阵){Θr}1≤r≤d{Θr}1≤r≤d。

分解的稀疏性和 d≪nrd≪nr 可以保证不同关系的参数共享。

Loss

模型训练的目标是最大化下面的 likelihood:

经过推导,可以得到 log-likelihood:

上午推导了一下,前半部分没有对上,可能中间有近似约减消掉的项。

训练目标等价于最小化负的 log-likelihood:

实验

和 RESCAL 一样,在 Kinships、UMLS、Nations 数据集上进行了实验,与 RESCAL、MRC 和 SME 三个 baseline 对比了 AUC 和 log-likelihood。

除了进行关系数据建模,实验部分还学习了动词的语义表示。这部分没细看。

代码

没有代码。


【总结】 本文定义了 unigram、bigram、trigram 进行组合的线性打分函数,并对关系矩阵进行分解实现参数共享。

双线性模型(一)(RESCAL、LFM、DistMult) - 胡萝不青菜 - 博客园

相关文章:

  • opcj-如何通过一个项目征服Java
  • 【知识图谱】(task1)知识图谱概论
  • PyTorch笔记 - Word Embeddings Word2vec 原理与源码
  • [C++]类和对象【上篇】
  • Docker 安装 Python
  • java 八股文
  • NETCAD GIS快速而简单的搜索引擎
  • Javascript异步编程深入浅出
  • 脉冲波形的产生和整形
  • 2022最后一个月,我们该如何学Java​?
  • Python用一行代码,截取图片
  • C# 11 中的新增功能
  • 【蓝桥杯国赛真题06】python绘制菱形圆环 蓝桥杯青少年组python编程 蓝桥杯国赛真题解析
  • 我为什么选择博客园!
  • BUG系列路径规划算法原理介绍(六)——BugFlood算法
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • Akka系列(七):Actor持久化之Akka persistence
  • Flannel解读
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • java2019面试题北京
  • JDK 6和JDK 7中的substring()方法
  • js
  • MySQL数据库运维之数据恢复
  • Mysql优化
  • opencv python Meanshift 和 Camshift
  • redis学习笔记(三):列表、集合、有序集合
  • scrapy学习之路4(itemloder的使用)
  • sublime配置文件
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 面试遇到的一些题
  • 七牛云假注销小指南
  • 前端路由实现-history
  • Hibernate主键生成策略及选择
  • linux 淘宝开源监控工具tsar
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​学习一下,什么是预包装食品?​
  • $$$$GB2312-80区位编码表$$$$
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (待修改)PyG安装步骤
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (五)Python 垃圾回收机制
  • .a文件和.so文件
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .net 4.0发布后不能正常显示图片问题
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net 提取注释生成API文档 帮助文档
  • .NET/C# 使用 SpanT 为字符串处理提升性能