论文精读:Sequential Recommendation with User Memory Networks
文章目录
-
1 背景
-
2 RUM:recommend with user memory network
-
-
2.1 记忆网络预测的整体流程
-
2.2 memory matrix的更新读写设计
-
- 2.2.1 从item角度设计读写策略
- 2.2.2 从feature角度设计读写策略
-
2.3 memory的更新读写对比
-
-
总结
1 背景
现有方法缺陷
1.并不是所有的历史行为都对用户未来喜好有用;
2.现有的方法会将用户的历史序列用一个embedding进行表示,忽略了各个item之间的关系,以及各自的特征);

就如上图所示,要预测用户是否会购买item e。RNN会将以前所有的历史购买记录考虑进来,生成用户特征向量 user embedding,对其历史购买行为进行汇总。但是历史购买行为里面对于是否会购买预测item e实际上只与item b相关,所以会导致推荐的不准确。忽略了每个历史记录的对预测结果的作用 ,忽略了每个item自己的特性 。
引入记忆网络的原因 :可以引入外部存储单元(memory matrix)存储states(user 历史购买序列);通过对memory matrix中的单元进行有选择地读取,生成用户表征,避免对整个历史序列进行操作。存储单元的内容会进行更新。

2 RUM:recommend with user memory network
2.1 记忆网络预测的整体流程
符号说明:p_{u}用户u表征;q_{i} item i表征
memory enhanced user embedding :依据历史记录 以及与历史行为无关的用户属性 两个角度生成用户嵌入
**历史记录角度的用户特征p _{u}^{m}:**依据当前待推荐的q_{i} ,从memory matrix中有选择的获取历史序列item:

**用户特征p _{u}:**p_{u}^{m}和用户属性特征p_{u}^{*}进行聚合:


预测用户购买item的概率:

目标函数

2.2 memory matrix的更新读写设计
2.2.1 从item角度设计读写策略
如下所示:
用户u历史行为中第i个item为v^u_i;
M^{u}是一个memory matrix总是存储用户最近的K个记录,第i个memory slot存储的是用户历史序列的第i个item embedding q_{v^u_i};
用户embedding为p_u;

对于预测用户u购买item {v^u_i}的概率:
reading operation :依据用户历史行为对于当前item的重要度来选择历史item来表示用户特征


writing operation :由于用户的喜好与其最近的行为相关,本文采用first-in-first-out方法来保证memory matrix M^{u}存储的总是用户最近的k个历史行为。如当前待预测的是 q_{v^u_i},则memory matrix M^{u}如下所示:
当进行写入操作时,最早的item会被覆盖掉,变为下面的形式:

2.2.2 从feature角度设计读写策略

global latent feature table( GLFT),来存储特征嵌入。在进行预测的时候,目标item将会与 GLFT进行交互,来识别相关的特征。
对于每个用户,将会生产user memory matrix M^u 来编码她对于GLFT的喜好程度,m^u_k表示用户对于特征k的喜好。基于item embedding来更新用户user memory matrix M^u 。
注:GLFT是所有用户共享的,user memory matrix M^u是针对每个用户的记忆单元
**reading operation:**计算item i与GLFT中的特征相关性


**writing operation:**先对原来的 memory matrix进行擦除


擦除之后对memory matrix进行写:

2.3 memory的更新读写对比
item角度 直接将每个item视为一个单元,直接存储在memory slot中,能够获取item-item的转换策略。
feature角度 则是将用户对于feature的喜好程度存储在memory slot当中,通过item来调整memory slot中的偏好表征。
通过上述对比,可以发现item角度将item的时序直接展现在内存中,item的偏好转换能够直观的通过memory slot的存储内容展现出来 。而对于feature角度,用户的历史购买记录则是通过在逐步迭代训练过程中展现出来 。
总结
1.记忆单元既可以用于展现用户的购买行为的时序特征,也可以用于展现用户的偏好,取决于如何设计;
2.通过对记忆单元的动态更新,来展现用户的偏好变化 。但是对于没有历史记录的用户 ,如何设计记忆单元?
3.涉及的反复的读写操作,模型训练速度下降
引用
[1] Chen, Xu & Xu, Hongteng & Zhang, Yongfeng & Tang, Jiaxi & Cao, Yixin & Qin, Zheng & Zha, Hongyuan. (2018). Sequential Recommendation with User Memory Networks. 108-116. 10.1145/3159652.3159668.
