RKGE:Recurrent Knowledge Graph Embedding for Effective Recommendation 论文

6 篇文章 1 订阅

emm…图片复制过来显示不了(因为我太懒了0.0),要看图的话可以去我的博客瞅瞅,嘿嘿嘿
对了,有些英文短句假如翻译成中文,阅读的时候就太搞脑子了,所以我干脆就不翻译了
这篇论文的模型跟我上一篇发布的KPRN很像,所以结论就懒的写了

我的博客https://hikg.net/archives/106/

Introduction

Prior KG Based Methods

1. Meta Path based

通过设计Meta path,来利用KG作为推荐的辅助信息。Meta path是预先定义了特定格式、路径长度的path,用来捕捉KG承载的不同语义。

  • Meta path的具体方法:

    • 一些方法利用meta path连接的item之间的关系,来提高推荐质量
    • 另一些则是通过meta path,对user-user或者user-item之间的关系进行建模
  • 缺陷:

    • 严重依赖手工提取的特征来表示path的语义,这进一步依赖于领域知识
    • 更重要的是,手工设计的特征,通常不能涵盖所有可能的实体关系,因此这阻碍了推荐质量的提高

2. KG Embedding based

KG embedding based方法可以自动学习KG中实体的嵌入,最新的方法是collaborative knowledge graph embedding (CKE)

CKE通过TransR从KG中捕获实体语义,来学习item的潜在表示

  • 缺陷:
    • KGE无视了通过path连接的实体的语义关系(这在meta path based中研究广泛)
    • CKE忽略了由path表示的成对实体间的语义关系,因此难以完全捕捉KG的语义用作推荐

因此,需要寻找不依赖手工特征的data- driven的方法,还需要捕捉到both entities and paths encoded in KGs的语义。

而RKGE使用了a batch of recurrent networks以全自动的方式,对实体间的所有路径的语义进行建模;同时通过一个pooling operation学习各自的path显著性

3. Graph based

Running Example

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wapSSUs4-1612686893000)(https://n9.pw/images/2021/02/06/2021-02-06-16.55.27.png)]

Different paths connecting a same entity pair often carry relations of different semantics. Typically, certain paths can better describe user preferences than the others.

为了充分挖掘KG中的path用于推荐,不仅需要捕捉不同path的语义,还需要捕捉user对item偏好的显著性。

因此,采用recurrent networks来学习实体关系的语义:

  1. RN能够对不同长度的序列进行建模,因此特别适用于对path进行建模
  2. RN可以通过embedding layer对实体的语义进行建模
  3. 通过编码整个path,对实体关系进行建模。因此提供了一种学习实体、实体关系的统一方法。

RKGE

目标:给定user-item交互数据,利用KG中的异构信息,来帮助学习user、item两者的表示,然后将其用于推荐。(抽取得到的表示需要完全捕捉到实体、实体关系的语义信息)

RKGE的大致框架:

  1. 首先自动挖掘出实体对之间的语义路径
  2. 采用一批量的循环网络结构对不同的路径进行编码,每条路径由1个循环网络进行建模(自动学习语义表示)
  3. 通过池化操作确定不同路径的显著性,最终与推荐生成无缝集成

注:user集 U = [ u 1 , u 2 , . . . u m ] U=[u_1,u_2,...u_m] U=[u1,u2,...um],item集合 V = [ v 1 , v 2 , . . . v n ] V=[v_1,v_2,...v_n] V=[v1,v2,...vn]

R R R表示user-item的交互历史, r i j = 1 r_{ij}=1 rij=1 表示 u i u_i ui 倾向于 v j v_j vj

使用 e n t i t y entity entity指代所有能映射到KG中的对象(如user、item、genre、actor),表示为 G G G

  • 定义1:
    • 实体集 E = [ e 1 , e 2 , . . . e k ] E=[e_1,e_2,...e_k] E=[e1,e2,...ek],实体的关系集 R = [ r 1 , r 2 , . . . r g ] R=[r_1,r_2,...r_g] R=[r1,r2,...rg]
    • P ( e i , e j ) = [ p 1 , p 2 , . . . p s ] P(e_i,e_j)=[p_1,p_2,...p_s] P(ei,ej)=[p1,p2,...ps]表示实体 e i e_i ei e j e_j ej之间的连接路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-16ymhPKa-1612686893001)(https://n9.pw/images/2021/02/07/2021-02-07-10.40.18.png)]

1. Semantic Path Mining

由于KG的庞大体积和复杂性,连接实体对的路径数量庞大,可能包含(不同顺序、不同长度的)不同的实体类型、关系类型。为了提高模型的效率,设计了2种策略来选择路径:

  1. 只考虑连接 u i u_i ui和所有她评价过的item 的路径 P ( u i , v j ) P(u_i,v_j) P(ui,vj),即{ v j ∣ r i j > 0 v_j|r_{ij}>0 vjrij>0}。此外,还包括相关的item-to-item、user-to-user路径,这些路径作为user-to-item路径的子序列。
  2. 只考虑小于某个长度的路径。因为相对短的路径能较好的对实体关系进行建模,而较长的路径会损失语义信息,进而引入噪声。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aCVIckqy-1612686893003)(https://n9.pw/images/2021/01/27/2021-01-27-10.58.17.png)]

2. Recurrent Network Batch

循环网络能够较好的对顺序模型进行建模,且可以捕捉到实体间的语义、实体对之间的整个路径的语义。设计了一种新颖的网络结构来捕捉所有可能的关系,包括一批循环网络,每个循环网络学习单个路径的语义表示。Batch中的所有循环网络共享相同的参数,以防止过拟合。

假设s条不同长度的路径连接了一个实体对 ( u i , v j ) (u_i,v_j) (ui,vj),如 P ( u i , v j ) = [ p 1 , p 2 , . . . , p s ] P(u_i,v_j)=[p_1,p_2,...,p_s] P(ui,vj)=[p1,p2,...,ps]

注意:s是动态的,因为不同的实体对可能连接了不同的路径条数

对于任意的长度为T的路径 p l p_l pl(形如 p l = e 0 ⟶ r 1 e 1 ⟶ r 2 e 2 . . . ⟶ r T e T p_l=e_0\stackrel{r_1}{\longrightarrow}e_1\stackrel{r_2}{\longrightarrow}e_2...\stackrel{r_T}{\longrightarrow}e_T pl=e0r1e1r2e2...rTeT,其中 e 0 = u i e_0=u_i e0=ui e T = v j e_T=v_j eT=vj)recurrent network通过学习 每个实体的语义表示、整条路径的单一表示 来对路径进行编码。RKGE通过embedding layer和attention-gated hidden layer来实现上述目标。

2.1 Embedding Layer

对于 p l p_l pl中的每个实体 e t e_t et,embedding layer学习一个分布表示 p l t p_{lt} plt,将 e t e_t et映射到低维度的向量中。向量中的每个元素表示这个实体与一个潜在主题的关联,从而捕捉到这个实体的语义。

这样,路径 p l p_l pl被表示为 p l = [ p l 0 , p l 1 , p l 2 , . . . , p l T ] p_l=[p_{l0},p_{l1},p_{l2},...,p_{lT}] pl=[pl0,pl1,pl2,...,plT],其中的每个元素表示了 p l p_l pl中相应实体的(嵌入)表示。

随后,新的表示将作为hidden layer的输入,去学习a single representation that encodes the entire path

2.2 Attention-Gated Hidden Layer

为了学习路径的表示,hidden layer需要考虑到the embeddings of entities in the path和这些实体的顺序。

这需要采用一种flow-based方法,从路径的头实体 e 0 e_0 e0到尾实体 e T e_T eT来对序列进行编码:

在每个 t − 1 t-1 t1步时,它学习一个隐藏状态 h l ( t − 1 ) h_{l(t-1)} hl(t1),该隐藏状态对 the subsequence from e 0 e_0 e0 to e t − 1 e_{t-1} et1 进行编码,然后和 e t e_t et的embedding( p l t p_{lt} plt)一起作为输入,来学习下一个time step的隐藏状态 h l t h_{lt} hlt。最终的状态 h l T h_{lT} hlT编码了整个路径,因此作为整个路径的表示。


为了更好的控制通过路径 p l p_l pl的信息流,采用了attention gate(比普通RNN更有效)。

将step为t时的attention gate定义为 a l t a_{lt} alt,为[0,1]之间的标量。在time为t时的隐藏状态为

式(1) h l t = ( 1 − a l t ) ⋅ h l ( t − 1 ) + a l t ⋅ h l t ′ h_{lt}=(1-a_{lt})\cdot h_{l(t-1)}+a_{lt}\cdot h_{lt}^{'} hlt=(1alt)hl(t1)+althlt

Attention gate a l t a_{lt} alt平衡了the input of the previous hidden-state h l ( t − 1 ) h_{l(t-1)} hl(t1)和当前的候选隐藏态 h l t ′ h_{lt}^{'} hlt h l t ′ h_{lt}^{'} hlt通过在当前的时间步完全合并输入得到

式(2) h l t ′ = σ ( W ⋅ h l ( t − 1 ) + H ⋅ p l t + b ) h_{lt}^{'}=\sigma(W\cdot h_{l(t-1)}+H\cdot p_{lt}+b) hlt=σ(Whl(t1)+Hplt+b)

W W W是previous steps的线性变换参数; H H H是current steps的线性变换参数;

最终,使用双向RNN来推断attention gate,最大限度的探索输入序列。根据 the input observation at the current time step和the information from neighboring observation in both directions来对attention gate建模,公式如下:

式(3) a l t = σ ( M T ⋅ ( h l t ⃗ ; h l t ← ) + b ′ ) a_{lt}=\sigma(M^\mathrm{T}\cdot (\vec {h_{lt}};\overleftarrow{h_{lt}})+b^{'}) alt=σ(MT(hlt ;hlt )+b)

σ \sigma σ为sigmoid函数,用来将attention的范围控制在[0,1];

; ; ; 表示两个向量之间的级联操作

h l t ⃗ \vec {h_{lt}} hlt h l t ← \overleftarrow{h_{lt}} hlt 为双向RNN的隐藏表示,作为time step t附近的上下文信息的总结

式(4): h l t → = σ ( W → ⋅ p l t → + H → ⋅ h l ( t + 1 ) → + b → ) \overrightarrow{h_{lt}}=\sigma(\overrightarrow{W} \cdot \overrightarrow{p_{lt}} + \overrightarrow{H} \cdot \overrightarrow{h_{l(t+1)}} + \overrightarrow{b}) hlt =σ(W plt +H hl(t+1) +b )

h l t ← = σ ( W ← ⋅ p l t ← + H ← ⋅ h l ( t + 1 ) ← + b ← ) \overleftarrow{h_{lt}}=\sigma(\overleftarrow{W} \cdot \overleftarrow{p_{lt}} + \overleftarrow{H} \cdot \overleftarrow{h_{l(t+1)}} + \overleftarrow{b}) hlt =σ(W plt +H hl(t+1) +b )

h l t → \overrightarrow{h_{lt}} hlt 总结了从开始到step t的路径;

h l t ← \overleftarrow{h_{lt}} hlt 总结了总结尾到step t的路径

总结:通过将 u i u_i ui v j v_j vj之间的每个合格路径(总数为s)同时合并到相应的attention-gated recurrent network(每个network对一个单独的路径进行编码)中,将生成一个 recurrent network batch。为防止过拟合,batch中的所有attention-gated recurrent networks共享相同的参数。最终得到了所有路径的隐藏表示,即:从 u i u_i ui v j v_j vj的实体关系的表示。

通过池化操作来区分这些hidden states在对实体关系建模时的不同重要性。介绍如下

3. Saliency Determination

由于从 u i u_i ui v j v_j vj连接了s条路径,不同的路径在对他们之间的关系进行建模时的重要程度不同。

For example, previous work has shown that shorter paths may have more impacts than longer ones, as shorter paths often indicate a stronger connectivity with clearer semantics.

因此在pooling operation的基础上设计了一个data-driven的方法,来区分路径的重要性。(因为池化操作专注于不同向量的最重要的“特征”,因此更符合目的)

Attention mechanisms [40] also seem to be one possible solution to address this issue. However, it generally aims to identify the importance of each element in a single sequence, while our goal is to decide the saliency of each path (i.e., sequence) between an entity pair.

因为pooling operation专注于不同向量的最重要“特征”,所以更符合要求。

对于 P ( u i , v j ) P(u_i,v_j) P(ui,vj)中的s条路径来说,他们的last hidden states learnt by the recurrent network batch 是 h 1 T 1 , h 2 T 2 , . . . h s T s h_{1T_1}, h_{2T_2},...h_{sT_s} h1T1,h2T2,...hsTs,其中 T s T_s Ts p s p_s ps的最后一步(也是路径 p s p_s ps的长度)基于此,增加了一层max pooling layer来获取所有路径的最显著的特征。

式(5) h [ j ] = m a x h i T i [ j ] h[j] = max h_{iT_i}[j] h[j]=maxhiTi[j],( 1 ≤ i ≤ s 1 \leq i \leq s 1is

h[j]是向量h的第j个维度的值 [ s 条 路 径 中 第 一 维 的 m a x , 第 二 维 , . . . . . ] T [s条路径中第一维的max, 第二维, .....]^T [smax,,.....]T

此外,为了避免h被某一个特定的 h i T i h_{iT_i} hiTi所影响(如 P ( u i , v j ) P(u_i,v_j) P(ui,vj)中的某一条路径),需要对所有路径的最后hidden states进行一次average pooling操作。

通过pooling操作,得到了a final hidden state of all the paths between u i u_i ui and v j v_j vj(即 u i u_i ui v j v_j vj之间的关系的路径的汇总)

然后在pooling layer后采用一个fully-connected layer来继续量化 u i u_i ui v j v_j vj之间的关系:

式(6) r ~ i j = f ( h ) = σ ( W r ⋅ h + b r ) \tilde{r}_{ij} = f(h) = \sigma(W_r \cdot h + b_r) r~ij=f(h)=σ(Wrh+br)

4. Model Optimization

训练数据的形式: u i , v j , r i j , P ( u i , v j ) u_i,v_j,r_{ij},P(u_i,v_j) ui,vj,rij,P(ui,vj),损失函数如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-beEeG01U-1612686893003)(https://n9.pw/images/2021/02/04/2021-02-04-09.52.22.png)]

BCELoss: Binary Cross Entropy between the observed and estimated ratings

因此,将推荐问题视为二分类问题。

对于每个用户,将他未评价的item进行负采样(数量和他评价过的item相同)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Z2miPMN-1612686893003)(https://n9.pw/images/2021/02/04/2021-02-04-09.56.28.png)]

Conclusion

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值