Session-based Recommendation with Graph Neural Networks

AAAI 2019

原作关于这篇文章的blog:https://sxkdz.github.io/research/SR-GNN/
Github地址:https://github.com/CRIPAC-DIG/SR-GNN

本文提出了一种基于会话的图形神经网络推荐系统(SR-GNN)。

Introduction

之前存在的问题:

  • 在基于会话的推荐系统中,会话大多是匿名的,且数量众多;
  • 之前的方法总是模拟连续项目之间的单向过渡,而忽略了上下文之间的过渡,即SESSION中的其他项目。

主要工作:

  • 将会话序列建模为图结构数据,并使用图神经网络捕获复杂的项目间转换;
  • 不依赖用户表示,完全基于会话内部的潜在向量获得Session Embedding。

Model

Session-based Recommendation with Graph Neural Networks_第1张图片
Figure1: Model

图结构边的权重为该边出现的次数除以该边起始节点的出度,节点v为长度为d的向量,Session向量s为由节点向量v组成的向量。

Graph Neural Networks层使用 Gated GNN,其计算公式为:

Session-based Recommendation with Graph Neural Networks_第2张图片
计算公式

其中A_s是由两个邻接矩阵A (in)和A(out)通过concatenation形成的(n, 2n)的矩阵,而A_s,i可以理解成矩阵的第i行(1, 2n)。如下图所示:

Session-based Recommendation with Graph Neural Networks_第3张图片
图片来自原作者博客

之后应用一个注意力机制。图1中,s1是这一个session中最后点击的item,即最后一个v。的s_g要考虑全局的v,应用软注意力机制,其计算公式为:


Session-based Recommendation with Graph Neural Networks_第4张图片

接着将之前得到的s_1和s_g连接,输入到一个线性层:


最后使用一个softmax层计算score。

Loss Function为交叉熵损失,最后使用Back-Propagation Through Time (BPTT)算法训练模型。

Experiments & Result

作者对比了许多baseline方法,同时改变建立图结构的方法再次进行了对比。

你可能感兴趣的:(Session-based Recommendation with Graph Neural Networks)