登录
原创

基于图卷积的协调过滤推荐算法(NGCF)

发布于 2020-11-18 阅读 9091
  • 人工智能
原创

NGCF:论文链接

图卷积在推荐领域的应用算是近期的大热门,最近拜读了何向南大佬的研究组(有兴趣的可以follow一下大佬的主页~~)发在SIGIR 2019上的基于图卷积的推荐模型–NGCF,对大佬们的工作进行了一些笔记和简要介绍。
首先利用用户和物品的交互矩阵完成图的初始化,利用用户和物品的交互构造图:
image.png

物品和用户的初始化Embedding:
image.png

一层结构:

image.png
第一步信息构建:利用i来构建u的向量(反过来也行)
image.png

<math><semantics><mrow><msub><mi>N</mi><mi>u</mi></msub></mrow><annotation encoding="application/x-tex">N_u</annotation></semantics></math>Nu<math><semantics><mrow><msub><mi>N</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">N_i</annotation></semantics></math>Ni分别用户u和物品i的一阶邻居数量

第二步:信息聚合:将所有邻居求和,再加上自己。利用邻节点来更新自己的向量

image.png

最终:
image20201102134752115.png

多层结构

image.png

按阶数来分别更新向量,第<math><semantics><mrow><mi>l</mi></mrow><annotation encoding="application/x-tex">l</annotation></semantics></math>l阶用户向量为:
image.png
其中,根据上一阶的向量来初始化这一阶的向量:
image.png
其中:
image.png

矩阵形式计算

image.png
其中<math><semantics><mrow><msup><mi>E</mi><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></msup></mrow><annotation encoding="application/x-tex">E^{(l)}</annotation></semantics></math>E(l)是用户+物品向量矩阵,不断更新这个矩阵可以得到最终用户和物品的向量

image.png

其中L和A为:A就是根据用户-物品交互矩阵<math><semantics><mrow><mi>R</mi><mo>∈</mo><msup><mi>R</mi><mrow><mi>N</mi><mo>∗</mo><mi>M</mi></mrow></msup></mrow><annotation encoding="application/x-tex">R \in R^{N *M}</annotation></semantics></math>RRNM算出的,其形状为:<math><semantics><mrow><mi>A</mi><mo>∈</mo><msup><mi>R</mi><mrow><mo>(</mo><mi>N</mi><mo>+</mo><mi>M</mi><mo>)</mo><mo>∗</mo><mo>(</mo><mi>N</mi><mo>+</mo><mi>M</mi><mo>)</mo></mrow></msup></mrow><annotation encoding="application/x-tex">A \in R^{(N+M)*(N+M)}</annotation></semantics></math>AR(N+M)(N+M)
image.png

最后L非对角非零元素为:
image.png

最后把所有阶的进行向量拼接得到最终的用户和物品向量:
image.png

内积得到评分:
image.png

根据BRP算Pair-wise损失:
image.png

最后附上源码地址,有兴趣的可以自行研究~~:
NGCF源码

评论区

哎嘿

1

0

1

举报