原文作者:Xiang Wang,Dingxian Wang,Canran Xu, Xiangnan He, Yixin Cao,
Tat-Seng Chua

原文标题:Explainable Reasoning over Knowledge Graphs for Recommendation

原文来源:AAAI 2019

原文链接:https://ojs.aaai.org//index.php/AAAI/article/view/4470

Explainable Reasoning over Knowledge Graphs for Recommendation

近些年,通过附加信息刻画用户-物品交互特征,为推荐系统赋予更好的可解释性成为了一个较热的研究课题。

通过知识图谱,用户-物品间的交互可以通过知识图谱找到的关联路径作解释。这类关联路径不仅表述了知识图谱中实体和关系的语义,还能够帮助我们理解用户的兴趣偏好,赋予推荐系统推理能力和可解释性。该论文提出了一种基于循环神经网络的方法KPRN,建模用户-物品对在知识图谱中存在的关联路径,为用户提供可解释的推荐。

问题定义

传统知识图谱可被定义为在已知实体和关系集合上的有向图:

KG={(h,r,t)∣h,t∈E,r∈R}\mathcal{\text{KG}} = \{(h,r,t) \mid h,t\mathcal{\in E,}r\mathcal{\in R\}}KG={(h,r,t)h,tE,rR}

其中,E\mathcal{E}E是实体集合,R\mathcal{R}R是关系集合。三元组(h,r,t)(h,r,t)(h,r,t)则表示从头实体hhh到尾实体ttt有关系rrr这样的事实。

U={ut}t=1M\mathcal{U =}\left\{ u_{t} \right\}_{t = 1}^{M}U={ut}t=1MI={it}t=1N\mathcal{I =}\left\{ i_{t} \right\}_{t = 1}^{N}I={it}t=1N分别表示用户集和item集,M和N是用户和item的数量。使用一个三元组τ=(u,interact,i)\tau = \left( u,\text{interact},i \right)τ=(u,interact,i)表示用户和item之间的交互,将用户与实体合并,关系与交互合并,得到一个新的知识图谱。

G={(h,r,t)∣h,t∈E′,r∈R′}\mathcal{G} = \{(h,r,t) \mid h,t \in \mathcal{E}^{'},r \in \mathcal{R}^{'}\}G={(h,r,t)h,tE,rR}

其中,E′=E∪U\mathcal{E}^{'}\mathcal{= E \cup U}E=EUR′=R∪{interact}\mathcal{R}^{'} = \mathcal{R \cup}\text{\{}\text{interact}\text{\}}R=R{interact}

给定用户uuu,目标item
iii,以及(u,i)\left( u,i \right)(u,i)间的路径集合P(u,i)={p1,p2,⋯,pK}\mathcal{P(}u,i) = \left\{ p_{1},p_{2},\cdots,p_{K} \right\}P(u,i)={p1,p2,,pK},
对用户与item发生交互的可能性做估计(CTR):

y^ui=fΘ(u,i∣P(u,i)){\widehat{y}}_{\text{ui}} = f_{\Theta}(u,i \mid \mathcal{P(}u,i))y

ui=fΘ(u,iP(u,i))

与基于嵌入的模型不同的是,可以将y^ui{\widehat{y}}_{\text{ui}}y

ui解释为由P(u,i)\mathcal{P(}u,i)P(u,i)推理出的三元组τ=(u,interact,i)\tau = \left( u,\text{interact},i \right)τ=(u,interact,i)的合理性分数。

KPRN模型

如上图所示KPRN模型中有三个关键部分:

  1. 嵌入层。

将实体、实体类型、指向下一个节点的关系投影到隐空间中。将每个实体的类型、值分别投影为两个嵌入向量,el∈Rd,el′∈Rd\mathbf{e}_{l} \in \mathbb{R}^{d},\mathbf{e}_{l}^{'} \in \mathbb{R}^{d}elRdelRd。现实世界中,很多实体对在不同的关系下有着完全不同的语义,作者认为这些差异或许是用户选择item的原因。因此,将关系的语义明确地纳入路径表示学习中是很重要。每个关系嵌入表示为:rl∈Rd\mathbf{r}_{l} \in \mathbb{R}^{d}rlRd。对于路径pkp_{k}pk,可以得到[e1,r1,e2,⋯,rL−1,eL]\left\lbrack \mathbf{e}_{1},\mathbf{r}_{1},\mathbf{e}_{2},\cdots,\mathbf{r}_{L - 1},\mathbf{e}_{L} \right\rbrack[e1,r1,e2,,rL1,eL],其中每个元素都表示一个实体或关系。

  1. LSTM层。

按顺序对元素进行编码,目的是捕获以关系为条件的实体的组合语义。使用RNN模型来研究路径中的序列信息。为了记忆序列中的长期依赖,作者选择了LSTM模型。在评估连接用户和item实体的交互关系的可信度时,长期序列模式是很重要的。在路径中l−1l - 1l1步,LSTM层输出状态向量hl−1h_{l - 1}hl1,同时将当前实体el−1e_{l - 1}el1和关系rl−1r_{l - 1}rl1作为输入向量:

xl−1=el−1⊕el−1′⊕rl−1\mathbf{x}_{l - 1} = \mathbf{e}_{l - 1} \oplus \mathbf{e}_{l - 1}^{'} \oplus \mathbf{r}_{l - 1}xl1=el1el1rl1

其中⊕\oplus为拼接操作。这样x\mathbf{x}x中即包含序列信息,又包含语义信息(实体和与下一个实体间的关系)。

hl−1h_{l - 1}hl1xl−1\mathbf{x}_{l - 1}xl1用来学习下一步的隐藏状态:

zl=tanh⁡(Wzxl+Whhl−1+bz)fl=σ(Wfxl+Whhl−1+bf)il=σ(Wixl+Whhl−1+bi)ol=σ(Woxl+Whhl−1+bo)cl=fl⊙cl−1+il⊙zlhl=ol⊙tanh⁡(cl)\begin{matrix} \mathbf{z}_{l}\ &= \tanh\left( \mathbf{W}_{z}\mathbf{x}_{l} + \mathbf{W}_{h}\mathbf{h}_{l - 1} + \mathbf{b}_{z} \right) \\ \mathbf{f}_{l}\ &= \sigma\left( \mathbf{W}_{f}\mathbf{x}_{l} + \mathbf{W}_{h}\mathbf{h}_{l - 1} + \mathbf{b}_{f} \right) \\ \mathbf{i}_{l}\ &= \sigma\left( \mathbf{W}_{i}\mathbf{x}_{l} + \mathbf{W}_{h}\mathbf{h}_{l - 1} + \mathbf{b}_{i} \right) \\ \mathbf{o}_{l}\ &= \sigma\left( \mathbf{W}_{o}\mathbf{x}_{l} + \mathbf{W}_{h}\mathbf{h}_{l - 1} + \mathbf{b}_{o} \right) \\ \mathbf{c}_{l}\ &=\mathbf{f}_{l} \odot \mathbf{c}_{l - 1} + \mathbf{i}_{l} \odot \mathbf{z}_{l} \\ \mathbf{h}_{l}\ &= \mathbf{o}_{l} \odot \tanh\left( \mathbf{c}_{l} \right) \\ \end{matrix}zlflilolclhl=tanh(Wzxl+Whhl1+bz)=σ(Wfxl+Whhl1+bf)=σ(Wixl+Whhl1+bi)=σ(Woxl+Whhl1+bo)=flcl1+ilzl=oltanh(cl)

其中,cl∈Rd′,z∈Rd′\mathbf{c}_{l} \in \mathbb{R}^{d^{'}},\mathbf{z} \in \mathbb{R}^{d^{'}}clRd,zRd分别表示记忆细胞的状态向量和信息转换模块。il\mathbf{i}_{l}ilol\mathbf{o}_{l}olfl\mathbf{f}_{l}fl分别为输入门,输出门和遗忘门。利用记忆状态,最后一个状态hL\mathbf{h}_{L}hL就能表示整个路径。最后本文使用两个全连接层把最终状态映射为预测得分:

s(τ∣pk)=W2⊤ReLU(W1⊤pk)s\left( \tau \mid \mathbf{p}_{k} \right) = \mathbf{W}_{2}^{\top}\text{ReLU}\left( \mathbf{W}_{1}^{\top}\mathbf{p}_{k} \right)s(τpk)=W2ReLU(W1pk)

  1. 池化层。

组合多个路径并输出最终评分。用户item对通常有很多个路径,令S={s1,s2,⋯,sK}\mathcal{S =}\left\{ s_{1},s_{2},\cdots,s_{K} \right\}S={s1,s2,,sK}表示K个路径的预测分数,最终的预测值为:

y^ui=σ(1K∑k=1Ksk){\widehat{y}}_{ui} = \sigma \left( \frac{1}{K} \sum_{k = 1}^{K} s_{k} \right)y

ui=σ(K1k=1Ksk)

有研究表明,不同的路径对于用户偏好有着不同的贡献,在上式中并没有体现这一点,因此作者设计了一个带权池化操作:

g(s1,s2,⋯,sK)=log⁡[∑k=1Kexp⁡(skγ)]g\left( s_{1},s_{2},\cdots,s_{K} \right) = \log\left\lbrack \sum_{k = 1}^{K}\exp\left( \frac{s_{k}}{\gamma} \right) \right\rbrackg(s1,s2,,sK)=log[k=1Kexp(γsk)]

其中γ\gammaγ是控制每个指数权值的超参数。那么,最终的预测分为:

y^ui=σ(g(s1,s2,⋯,sK)){\widehat{y}}_{ui} = \sigma\left( g\left( s_{1},s_{2},\cdots,s_{K} \right) \right)y

ui=σ(g(s1,s2,,sK))

这样的池化能够区分路径的重要性。池化函数给予了预测函数更大的灵活性,当γ\gammaγ趋于0时,该函数退化为最大池化;当γ\gammaγ趋于无穷时,该函数变为平均池化。

本文中,作者将推荐任务视为二分类问题,观察到的user-item交互value为1,否则为0。KPRN模型目标函数如下:

L=−∑(u,i)∈O+log⁡y^ui+∑(u,j)∈O−log⁡(1−y^uj)\mathcal{L = -}\sum_{(u,i) \in \mathcal{O}^{+}}^{}\log{\widehat{y}}_{ui} + \sum_{(u,j) \in \mathcal{O}^{-}}^{} \log\left( 1 - {\widehat{y}}_{uj} \right)L=(u,i)O+logy

ui+(u,j)Olog(1y

uj
)

其中,O+={(u,i)∣yui=1}\mathcal{O}^{+} = \left\{ (u,i) \mid y_{ui} = 1 \right\}O+={(u,i)yui=1}O−={(u,j)∣yuj=0\mathcal{O}^{-} = \left\{ (u,j) \mid y_{uj} = \right.\ 0O={(u,j)yuj=0分别为正样本和负样本。这里为了简单,省略了L2正则项(避免过拟合)。

实验

本文使用了三个数据集:电影领域MovieLens-1M和IMDb;音乐领域KKBox。表一中为数据集相关信息。

对于user-item之间的路径,有研究发现,路径超过6会产生不必要的噪音实体,因此本文路径长度最大为6。

选取了4个baseline:MF、NFM、CKE、FMG。

实验结果如图三所示。

可以看出KPRN模型的效果是最好的,通过利用路径来推断用户偏好,KPRN能够明确user-item的连接。

方法总结

本文将user、item作为实体融入知识图谱中,user-item之间的interact作为并入关系中,从而得到知识图谱中从user到item的路径。
然后先进行embedding,embedding中将实体的type也进行了嵌入,这是否有必要?因为关系中已经包含了实体与下一个实体之间的语义联系。
得到embedding后,由于路径中存在着一个序列关系,因此使用LSTM得到路径的representation。
另外考虑到每个路径的重要性不同,因此使用一个加权的池化层得到最终的预测分数,这里的预测分数可以看作是对user-item间的interact的可信度。
因为有了路径的关系,推荐的可解释性也得到了解决。

缺陷

缺点在于

  • 路径提取方法非常的耗时耗力。
  • 推荐的结果很大程度上依赖于路径的质量。

【论文笔记】Explainable Reasoning over Knowledge Graphs for Recommendation相关推荐

  1. 斯坦福图机器学习CS224W笔记自用: Reasoning in Knowledge Graphs using Embeddings

    1. 基于嵌入的知识图推理 目标:如何对知识图进行多跳推理? 知识图推理: 回答多跳查询 路径查询 连接查询 Query2box 示例:生物医学图 知识图谱上的预测查询 我们是否可以进行多跳推理,即在 ...

  2. 论文阅读笔记—Reasoning on Knowledge Graphs with Debate Dynamics(AAAI,2020)

    这是一篇非常有趣的工作,看完会觉得眼前一亮. 论文标题:Reasoning on Knowledge Graphs with Debate Dynamics 发表于AAAI,2020 动机  很多机器 ...

  3. 《Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs》论文阅读笔记

    <Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs>论文阅读笔记 主要挑战贡献: KG上的推理挑战主要 ...

  4. 论文笔记:Distilling the Knowledge

    原文:Distilling the Knowledge in a Neural Network Distilling the Knowledge 1.四个问题 要解决什么问题? 神经网络压缩. 我们都 ...

  5. 论文阅读 | NIPS‘20 | Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs

    很有意思的一篇paper.在众多Knowledge Graph Embedding (KGE) 的论文中通过问题设计和有意思的解决方式脱颖而出. 首先来看看问题设计. 一般的KGE model都是利用 ...

  6. 【论文笔记】Reasoning about Entailment with Neural Attention

    Reasoning about Entailment with Neural Attention 这篇论文主要讲了他们第一次应用深度学习取得了比现阶段人工特征更好的结果(201509),模型架构大体是 ...

  7. 论文笔记:Reasoning about Entailment with Neural Attention

    写在前面 Attention mechanism 作为一种模型效果提升的方法,再很多领域都有应用,这篇论文也算是学习 Attention mechanism的经典论文之一,文中提出了一种 Attent ...

  8. 论文笔记A Review-Driven Neural Model for Sequential Recommendation

    Abstract 在电商领域,写评论是表达用户意见的唯一渠道,很多基于深度学习的解决方案通过利用用户用户进行评级预测(rating prediction),但是却很少有工作尝试将用户评论所涵盖的语义信 ...

  9. 「论文笔记」Denoising User-aware Memory Network for Recommendation

    动机:为了推断用户动态偏好的演变,更多的关注到基于序列的推荐系统 最近的研究:注意到可以从显示和隐式反馈序列更好的理解用户偏好 现有方法存在的问题: 没有考虑在隐式反馈中包含的噪声 ⇒ 导致用户兴趣的 ...

  10. 【论文阅读笔记】Multi-modal Knowledge Graphs for Recommender Systems

    Multi-modal Knowledge Graphs for Recommender Systems 1.背景 现有的推荐系统主要分为两种方法,基于内容和协同过滤. 基于内容的方法是针对user- ...

最新文章

  1. 每天一个python 小案例——if else
  2. 去除U盘插入后自动弹框的问题
  3. cf1208G Polygons 欧拉函数
  4. 网上订餐python_来自美国网上订餐网站的创新
  5. C语言小白——数组与字符串
  6. BZOJ 2597 剪刀石头布(最小费用最大流)(WC2007)
  7. 【Redis】Redis 事务
  8. Junit介绍与实现
  9. 设计模式------简单工厂模式
  10. 古诗文登录验证码识别及登录
  11. HTML基础常识问答(三)
  12. javascript与python性能对比-lua与python性能测试比较
  13. 【IOT】NB-IOT模块连接Onenet物联网云平台2020年实测
  14. pta——出生年,查验身份证(c语言)
  15. Esrally性能测试步骤与调优
  16. H1B工作签证紧俏 “中签率”低对中国留学生影响大-中新网
  17. Java生成条形码PDF文件【可批量】
  18. 解决 苹果ios input输入框弹出输入法 但是 无法输入内容问题
  19. 存储GB与GiB之间的转换
  20. Chrome通过ARChon插件加载运行Android应用

热门文章

  1. 翻译: 3.4. Softmax 回归 pytorch
  2. 【Faster R-CNN论文精度系列】原文精析
  3. IDEA开发Springboot时,远程使用企业内部不能连接数据库的解决方法
  4. MP4、 MPEG-4区别
  5. 购房选址分析之上海市
  6. JQuery 下载和使用
  7. 差动变压器的振动测量实验 思考题
  8. 可與言而不與之言,失人。不可與言而與之言,失言。知者不失人,亦不失言。
  9. linux入侵检测工具之aide
  10. MTK平台设备和驱动的配置及使用--pmic驱动 pinctrl驱动