RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems阅读笔记
Graph for Recommender Systems阅读笔记)
一些絮叨
大家好,我是某不知名大学的不知名硕士,目前主要从事图神经网络方面的研究。首先声明一下,这是迄今为止,本人写第一篇博文,因此,有任何理解不到位或行文逻辑等各种问题,希望大家能够批评指正,本人会在日后的写作中多加注意。另外,本人写博文的目的在于为自己建立便捷的知识索引,同时也希望能对同行有所帮助。
Motivation
在推荐系统中,通常通过引入边信息(Social Network,Item Attributes)来解决冷启动和稀疏问题。这边文章引入**Knowledge Graph(KG)**作为边信息,并克服了embedding-based和path-based在KG上的局限,提出了RippleNet。该模型类似于物理中的点扩散过程,具体来说,就是根据user的历史行为在KG上进行点扩散,详细的扩散策略会在模型中进行介绍。这里有一点需要指出,paper中提到的冷启动可能不是指的user冷启动。
Model
模型简单有效也是这个工作的一大亮点吧。该模型是通过学出user以及item的embedding来进行推荐的,下面来介绍下RippleNet。
想像一个雨天,平静的水面上荡起涟漪。前面的KG就是这里的水面,user历史行为就是雨滴。RippleNet就是来model这些涟漪如何传播。user的历史行为指的是点击、观看等,即对应user-item矩阵中value为1的元素。为了更加直观的解释model,我们以索引为0的user举例。首先,不妨定义user-item矩阵为 Y ∈ R d u × d v Y \in \mathbb R^{d_u \times d_v} Y∈Rdu×dv,则索引为0的user对应着 Y 0 ∈ R d v Y_0 \in \mathbb R^{d_v} Y0