【论文笔记】Explainable Reasoning over Knowledge Graphs for Recommendation

原文作者: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 ,t ∈E ,r ∈R }

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

U = { u t } t = 1 M \mathcal{U =}\left{ u_{t} \right}{t = 1}^{M}U ={u t ​}t =1 M ​和I = { i t } t = 1 N \mathcal{I =}\left{ i{t} \right}_{t = 1}^{N}I ={i t ​}t =1 N ​分别表示用户集和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 ,t ∈E ′,r ∈R ′}

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

给定用户u u u,目标item
i i i,以及( u , i ) \left( u,i \right)(u ,i )间的路径集合P ( u , i ) = { p 1 , p 2 , ⋯ , p K } \mathcal{P(}u,i) = \left{ p_{1},p_{2},\cdots,p_{K} \right}P (u ,i )={p 1 ​,p 2 ​,⋯,p K ​},
对用户与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 ,i ∣P (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模型

【论文笔记】Explainable Reasoning over Knowledge Graphs for Recommendation

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

  1. 嵌入层。

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

  1. LSTM层。

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

x l − 1 = e l − 1 ⊕ e l − 1 ′ ⊕ r l − 1 \mathbf{x}{l – 1} = \mathbf{e}{l – 1} \oplus \mathbf{e}{l – 1}^{‘} \oplus \mathbf{r}{l – 1}x l −1 ​=e l −1 ​⊕e l −1 ′​⊕r l −1 ​

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

h l − 1 h_{l – 1}h l −1 ​和x l − 1 \mathbf{x}_{l – 1}x l −1 ​用来学习下一步的隐藏状态:

z l = tanh ⁡ ( W z x l + W h h l − 1 + b z ) f l = σ ( W f x l + W h h l − 1 + b f ) i l = σ ( W i x l + W h h l − 1 + b i ) o l = σ ( W o x l + W h h l − 1 + b o ) c l = f l ⊙ c l − 1 + i l ⊙ z l h l = o l ⊙ tanh ⁡ ( c l ) \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}z l ​f l ​i l ​o l ​c l ​h l ​​=tanh (W z ​x l ​+W h ​h l −1 ​+b z ​)=σ(W f ​x l ​+W h ​h l −1 ​+b f ​)=σ(W i ​x l ​+W h ​h l −1 ​+b i ​)=σ(W o ​x l ​+W h ​h l −1 ​+b o ​)=f l ​⊙c l −1 ​+i l ​⊙z l ​=o l ​⊙tanh (c l ​)​

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

s ( τ ∣ p k ) = W 2 ⊤ ReLU ( W 1 ⊤ p k ) s\left( \tau \mid \mathbf{p}{k} \right) = \mathbf{W}{2}^{\top}\text{ReLU}\left( \mathbf{W}{1}^{\top}\mathbf{p}{k} \right)s (τ∣p k ​)=W 2 ⊤​ReLU (W 1 ⊤​p k ​)

  1. 池化层。

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

y ^ u i = σ ( 1 K ∑ k = 1 K s k ) {\widehat{y}}{ui} = \sigma \left( \frac{1}{K} \sum{k = 1}^{K} s_{k} \right)y ​u i ​=σ(K 1 ​k =1 ∑K ​s k ​)

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

g ( s 1 , s 2 , ⋯ , s K ) = log ⁡ [ ∑ k = 1 K exp ⁡ ( s k γ ) ] 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\rbrack g (s 1 ​,s 2 ​,⋯,s K ​)=lo g [k =1 ∑K ​exp (γs k ​​)]

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

y ^ u i = σ ( g ( s 1 , s 2 , ⋯ , s K ) ) {\widehat{y}}{ui} = \sigma\left( g\left( s{1},s_{2},\cdots,s_{K} \right) \right)y ​u i ​=σ(g (s 1 ​,s 2 ​,⋯,s K ​))

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

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

L = − ∑ ( u , i ) ∈ O + log ⁡ y ^ u i + ∑ ( u , j ) ∈ O − log ⁡ ( 1 − y ^ u j ) \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 +∑​lo g y ​u i ​+(u ,j )∈O −∑​lo g (1 −y ​u j ​)

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

; 实验

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

【论文笔记】Explainable Reasoning over Knowledge Graphs for Recommendation

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

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

实验结果如图三所示。

【论文笔记】Explainable Reasoning over Knowledge Graphs for Recommendation

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

方法总结

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

缺陷

缺点在于

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

Original: https://blog.csdn.net/BodyCsoulN/article/details/121136909
Author: BodyCsoulN
Title: 【论文笔记】Explainable Reasoning over Knowledge Graphs for Recommendation

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/556523/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球