【GCN-RS】经典工作:NGCF、LightGCN、LR-GCCF(代码实现)

开源了一个小项目,将一些经典的RS模型整合到一套代码中,可以作为学习参考,
GitHub地址:https://github.com/ChadsLee/RS_Zoos

NGCF:Neural Graph Collaborative Filtering (SIGIR’19)

前文GCN中的邻接矩阵 A A A可以表征数据之间的关联,在这里换了一个说法,叫做“CF signal”。

假设用户为 u u u,物品为 i i i,我们可以画出user-item的二部图,同时根据二部图可以将 u 1 u_1 u1的高维连接表示出来,如下图所示:

image-20210521211525242

模型框架主要有三个部分组成:

  • Embedding Layer:提供初始的user embedding 和 item embedding
  • Multiple Embedding Propagation Layers:通过注入高阶连接关系来细化嵌入
  • The Prediction Layer:通过整合多层嵌入来预测 ( u , i ) (u,i) (u,i)

Embedding Layer

E = [ e u 1 , ⋯   , e u N ⏟ users embeddings  , e i 1 , ⋯   , e i M ⏟ item embeddings  ] \mathbf{E}=[\underbrace{\mathbf{e}_{u_{1}}, \cdots, \mathbf{e}_{u_{N}}}_{\text {users embeddings }}, \underbrace{\mathbf{e}_{i_{1}}, \cdots, \mathbf{e}_{i_{M}}}_{\text {item embeddings }}] E=[users embeddings  eu1,,euN,item embeddings  ei1,,eiM]

d维embedding,没什么好说的,如果是矩阵分解, e u \mathbf{e}_{u} eu e i \mathbf{e}_{i} ei一乘就就是预测结果了。

Embedding Propagation Layers

u − > i u->i u>i i − > u i->u i>u是一样的,这里以 u u u为例。首先考虑一层,对应一阶的情况。

first-order propagation

物品 i i i传递给消费过他的用户 u u u的信息可以表达为:
m u ← i = f ( e i , e u , p u i ) m u ← i = 1 ∣ N u ∣ ∣ N i ∣ ( W 1 e i + W 2 ( e i ⊙ e u ) ) , \mathbf{m}_{u \leftarrow i}=f\left(\mathbf{e}_{i}, \mathbf{e}_{u}, p_{u i}\right)\\ \mathbf{m}_{u \leftarrow i}=\frac{1}{\sqrt{\left|\mathcal{N}_{u}\right|\left|\mathcal{N}_{i}\right|}}\left(\mathbf{W}_{1} \mathbf{e}_{i}+\mathbf{W}_{2}\left(\mathbf{e}_{i} \odot \mathbf{e}_{u}\right)\right), mui=f(ei,eu,pui)mui=NuNi 1(W1ei+W2(eieu)),
W 1 W_1 W1 W 2 W_2 W2是训练出来的权重矩阵,维度为 d ∗ d ′ d*d' dd 1 ∣ N u ∣ ∣ N i ∣ \frac{1}{\sqrt{\left|\mathcal{N}_{u}\right|\left|\mathcal{N}_{i}\right|}} NuNi 1就是衰减因子 p u i p_{u i} pui

信息聚合:

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值