这篇简要记录一下今天粗读的几个双线性模型:CP、ANALOGY、SimplE。最近看这类模型的感想就是,数学证明太多了,很多论文都有专门的一节进行理论分析,要完全弄明白真不是一天两天的事情,所以只要粗读这类的论文,还好剩下没几篇了,战线不能拖太久了,拖越久越不想看。
2021.08.18
尽管说着战线不能拖太久,但还是 piapia 打脸,高温假也工作的打算完全就是屁话,我还是拖到了高温假后的今天,打开之前没写完笔记的论文,仿佛失忆了一般,毫无印象orz……
ANALOGY
【paper】 Analogical Inference for Multi-relational Embeddings
【简介】 本文是卡耐基梅隆大学的中国学者发表在 ICML 2017 上的工作,提出了 ANALOGY 模型,用于建模实体和关系的推理属性。这个模型应当也算是双线性模型中比较经典的一个了,很多模型的 baseline 中都有它。核心思想就是利用矩阵的交换性约束建模平行四边形一样的类比推理属性。
背景知识
正规矩阵
ANALOGY 将关系矩阵约束为正规矩阵,由于它是 "well-behaved" linear maps。
关系作为线性映射
ANALOGY 的提出不是基于 “h+r≈t” 的距离模型,而是双线性类模型的体系,且关系表示为矩阵。对于 valid 三元组 \((s,r,o)\) ,存在:头实体经过线性映射(关系)近似于尾实体。
打分函数也是双线性函数:
问题定义
本文解决的类比推理问题(analogical inference problem)并不是一个新问题,只是用类比推理的特性预测实体关系。
类比推理很好理解,上一个 word embedding 老生常谈的例子: man is to king as woman is to queen.
文章用平行四边形形式化描述类比推理的属性:
有 subject-relation-object 三元组:
则 a、b、c、d 四个实体间存在的类比推理关系正如一个平行四边形结构:
箭头只是一个直观的表示,实际上代表线性映射。
解决方案
为了建模平行四边形般的类比推理关系,线性映射(关系)需满足“交换定理(commutativity)”,即
○ 代表两个关系的组合。这个很好理解,一个实体先经过关系 \(r\) 再经过 \(r‘\),与它先经过 \(r‘\),再经过 \(r\),最后推理出的实体,应当是一个,也就是说两条路径是等价的。
实际中,关系的组合通常表示为关系矩阵相乘:
因此,ANALOGY 通过添加
的约束建模关系的“交换等价”特性以用于类比推理。
优化目标: 对三元组作二分类,正样本标签为 +1,负样本标签为 -1
打分函数为:
训练目标为有约束条件下的 loss 最小化:
loss 是 logistic loss:
这个paper中还有好几页是定理、理论证明以及和其他双线性模型的 unified,没看。
实验
两个数据集上的 Hits@10:
两个数据集上的 Hits@{1,3}:
【code】 https://github.com/quark0/ANALOGY
CP
【paper】 Canonical Tensor Decomposition for Knowledge Base Completion
【简介】 这篇是 Facebook 法国巴黎 AI 研究中心发表在 ICML 2018 上的文章,是对传统的张量分解方法 CP(Canonical Tensor Decomposition)做的分析改进。对传统的几个双线性方法进行了详细的分析,探究了(1)最优参数与 loss 形式的影响,(2)正则化形式的影响,提出张量核 p 范数正则化方法,(3)并探究了反向关系推理的效果。
正则化那块应该是本文提出的新方法(没看懂),此外没有提出太多新的东西,更多是对老方法的探究。三项工作得出的三方面结论为:
(1)CP 和 ComplEx 模型的表现依赖于最优参数的设置;
(2)建模反向属性时效果有提升;
(3)提出的张量核正则化方法是有效的。
知识库的张量分解模型(之前的)
CP(1927)
最初的 CP 将张量表示为 R 秩一张量的和:
DistMult
DistMult 将张量 X 表示为一秩张量的和:
ComplEx
训练
给定训练三元组 \((i,j,k)\) 和预测张量 X,多类别的 log-loss 为:
CP 的正则项:
核 p-范数正则化(Nuclear p-Norm Regularization)
section 4 介绍的应该是一种新的正则化方法,全是公式,没看(懂),过吧orz
新的 CP 训练目标(对于一个三元组样本):
实验
链接预测
超参设置的影响
【code】 https://github.com/facebookresearch/kbc
SimplE
【paper】 SimplE Embedding for Link Prediction in Knowledge Graphs
【简介】 本文是加拿大英属哥伦比亚大学的两位学者发表在 NIPS 2018 上的工作,文章提出了 SimplE(Simple Embedding)。这篇和前面一篇差不多,也是对 1927 年的 CP 进行改进(简化),传统CP为实体分配的两个向量是独立训练的,SimplE利用关系的逆在三元组打分函数中加上了一个对称项,使得每个实体的两个向量依赖学习,并且 SimplE 的复杂度随 embedding 维度呈线性。
SimplE 可以被视为双线性模型,并且是 fully expressive,可以通过参数共享(赋权)编码背景知识;尽管(或者是因为)其简单,在实验中表现效果好。
模型
1927 年的 CP(Canonical Polyadic)在链接预测上表现效果通常很差,因为它为每个实体分配两个向量(作为头尾实体时的不同表示),但是两个向量是分别学习的,如:
对此,SimplE 仍然保留每个实体分配两个向量的设置,但也为每个关系分配两个向量:
对于每个 triple,simplE 定义的相似度函数为:
同时,还考虑了另一种情况,称为 SimplE-ignr:在训练时候更新参数时两部分都考虑,而在测试时不再考虑反向关系部分,只保留前半部分:
在训练时使用 L2 正则化:
其中,
之所以没有选择 margin-based 的 loss 是因为它比 log-likelihood 更容易导致过拟合。
理论分析
没看。
不过对双线性模型家族的各模型的关系矩阵进行了一个直观的展示和对比:
实验
链接预测
整合背景知识
就是 8 种对称关系定义的规则,也不知道它是咋整合的==|
【code】 https://github.com/Mehran-k/SimplE
【小结】 粗读的论文,不想总结。