1、背景
随着深度学习的发展,人们探索出了一系列的方法来处理序列化数据,RNN是其中的一个代表。但是对于序列化推荐,RNN的处理方式有很大的不足,如其最后编码后的隐向量很难理解,并且很难学习到用户细粒度的偏好,如不知道到底喜欢商品的哪个属性,是价格还是质量,又或者是性价比。
为了解决这个问题,论文作者提出一个带有键值对记忆网络的RNN模型架构。其中RNN模型用于捕捉序列化的用户偏好,而键值对记忆网络用于捕捉商品属性级的用户偏好,这两个vector组合在一起作为最终的用户偏好表示,从而解决了这个问题。
2、模型定义
,其中
代表在t时刻与u产生交互的item.将item与KG结合,形成一个大图。这样我们的任务定义为:给定交互序列
,我们推断user将会在n+1时刻点击的item
3、模型结构
模型由两部分组成:
【1】A GRU-based Sequential Recommender
论文中说明如下:
【2】Augmenting Sequential Recommender with Knowledge-Enhanced Memory Networks
这里我们假设对所有item来说,他们具有相同的属性,比如:电影都具有演员、导演、上映时间等属性,这样网络就可以被概括为一个数组,,其中key代表某一个属性,而value代表这个属性的值,这里需要注意的是,value的值是与用户相关的,即不同用户具有不同的vlue,但是因为所有item具有相同的属性,因此key对于所有用户来说是共享的。这个相当于对一个用户来说,她对某一个属性具有自己的用户偏好。
key值是预处理的,在整个训练过程中保持不变,采用transE的方式,我们可以得到KG中entiey和relation的embedding。我们认为entity的属性是与relation的含义相关的,因此我们直接将relation embedding作为key值,,a是某一个属性。
这个记忆网络涉及两个操作,read和write。read操作是从记忆网络读出value,然后经过一系列运算,得到,他是指用户u在t时刻从记忆网络得到的值,然后执行
,其中
是GRU的输出。其中,read可简单概括为
write操作是指每当新的交互item到来之后,value矩阵必须更新,可概括为
是指item到来之后,对a属性value值的更新。这里之所以选择将
的结果作为
,是因为item在某个属性上的取值可能有多个,比如
,这里的导演可能有多个。
【3】The Complete Sequential Recommender
为了充分利用item的辅助信息,我们采用编码item,最后分数计算采用
采用BPR loss,AdaGrad优化策略