Session-based Recommendation with Graph Neural Networks (SR-GNN 2019)

研一上半学期已经结束,这学期学习了很多而且很碎的东西。其中在论文中学习到的知识颇为丰富,本学期看的论文大部分都是关于推荐系统的论文,而且对基于session的推荐有了深刻的理解。趁着寒假时间,对基于session的推荐相关论文做做总结,趁热打铁。对于每篇文章,我会介绍一下这篇文章主要是在解决什么问题,其模型有什么优缺点等等,话不多说,进入正文。

Session-based Recommendation with Graph Neural Networks (SR-GNN 2019)

这篇文章是19年的一篇文章,讲的是用图神经网络做基于session推荐,这篇文章是一篇很好的bases-line。传统的序列模型在session中无法准确的表示每个用户的表示,而且忽略了复杂的item转换。本篇论文将每个session构建成图数据,然后使用图神经网络得到复杂的item之间的转换信息。引入注意力机制得到全局的偏好,将最后一个item作为当前的偏好,最后使用线性聚合,将全局偏好和当前偏好聚合在一起得到最终的session表示,经过softmax层做出最终的预测。论文模型如下所示:
Session-based Recommendation with Graph Neural Networks (SR-GNN 2019)_第1张图片假设给定一个session s = [v1, v2, v3, v2, v4],构建图如下所示:
Session-based Recommendation with Graph Neural Networks (SR-GNN 2019)_第2张图片
图中的每个节点对应session中的item,图中的每条边表示两个item之间的一种关系,比如用户在click v1之后click v2。在每个session构建成图结构之后,经过门控图神经网络得到每个item的表示,在表示每个item时,会考虑当前item邻居的信息。该门控图神经网络的公式表示如下所示:
Session-based Recommendation with Graph Neural Networks (SR-GNN 2019)_第3张图片
其中复位门z和更新门r决定什么信息应该保留和去除,v(i)表示经过图神经网络之后item的表示,A表示邻接矩阵,举个栗子,假设给定一个session s = [v1, v2, v3, v2, v4],其邻接矩阵如下所示:
Session-based Recommendation with Graph Neural Networks (SR-GNN 2019)_第4张图片
在得到所有节点的嵌入表示之后,我们如何来表示每个session的嵌入表示呢?首先我们将每个session的最后一个item表示为局部的偏好,然后我们引入软注意力机制得到全局的表示,即用户一个长期的偏好,公式如下:
Session-based Recommendation with Graph Neural Networks (SR-GNN 2019)_第5张图片
最后经过线性的聚集,将全局表示和局部表示聚合在一起,得到最终的session表示,公式如下:
线性聚合
最终根据session表示经过打分和softmax做出预测。

总结:本论文介绍的模型既有优点也存在着缺点,其中优点为,考虑将session构建成图数据,经过图神经网络层可以捕获到复杂的item之间的转换信息,而且在最后考虑session的嵌入表示时结合了全局的嵌入表示和局部的嵌入表示,会得到更加准确的session表示。其缺点为在构建图时存在信息损失问题和无效的长期依赖问题,在下面的论文讲解中会说明如何解决这些缺陷。这是我对这篇文章的理解,如果有什么理解不到位的地方还请指导。

你可能感兴趣的:(推荐系统,推荐系统,人工智能,神经网络,推荐系统论文)