What to Do Next: Modeling User Behaviors by Time-LSTM
这是IJCAI 2017的一篇文章,提出了Time-LSTM用于推荐系统,被多篇时间序列论文引用。其中利用行为时间间隔的方法值得我们思考。
1.背景问题
推荐系统一般是应用于电子商务等场景:给定用户的一系列历史交易记录,预测用户在未来某个时间点可能会购买的某些商品。
-
用户集合
-
商品集合
- 用户 u 的历史交易记录
2.过去方法缺陷
近年来的研究发现RNN可以很好地捕捉用户行为序列的一些模式,但是这些RNN方法都没有考虑时间间隔(time interval),而且这些时间信息对揭示用户行为的关系有很大的作用。
以Phased LSTM为例:
- 只对时间戳建模,针对单个行为
- 用户的行为比较稀疏,该模型可能会忽略过去的信息
- 没有明确区分和利用short term和long term兴趣。
因此,从解决上面的问题并利用好time interval入手,可以提高预测模型性能。
3.相关研究
-
LSTM和其变体
简单地列一下原始LSTM的公式。
Input:
在本文方法中,代表用户 u 购买的第 m 个商品:
Output:
过程:
-
推荐系统的RNN算法
-
长短期兴趣:BPR, SMP, MRP
4.Time-LSTM
使用Time Gate来控制最后购买的商品对当前推荐的影响,并且还能保存time interval以反映长期的兴趣。共有3种版本。
基本公式是在上面的原始LSTM上改动,并且加入了时间间隔
即
- Time-LSTM 1
在原始LSTM上 增加了T,并且改写了(3)(4)。
T的作用有2个:
- 可以对于输入信息进行过滤;
- 时间间隔首先被存储在了T之中,然后该信息会被传递到Cm中,接下来就会被一次传递到Cm+1,Cm+2…之中,因此会帮助对用户的长期兴趣进行建模。
- Time-LSTM 2
在原始LSTM上增加了T1 and T2,修改了(3)-(5)。
之所以有W<=0的限制,是因为为了保证当最近一次的时间间隔比较小的时候T会输出比较大的值,比较大的时候T会输出比较小的值,也是为了把最近的时间间隔信息进行编码。
- Time-LSTM 3
在Time-LSTM 2的基础上去掉了fm,改为耦合输入和遗忘门。
5.实验
优化器: AdaGrad
数据集
- LastFM,收听音乐类
http://www.dtic.upf.edu/∼ocelma/MusicRecommendationDataset/lastfm-1K.html
事件:<user id, song id, timestamp> - CiteULike,论文引用类
http://www.citeulike.org/faq/data.adp
事件:<user id, paper id, timestamp>
80%数据用于训练集,20%作为测试集。
本文代码:Github
Baseline
CoOccur+BP,Session-RNN,LSTM,LSTM+time,Phased LSTM
评价指标
Recall@10,MRR@10
实验结果
可以看出Time-LSTM比以往的RNN方法效果好。
5.工作贡献
通过LSTM结合时间间隔的方法,对用户短期行为和长期行为进行了建模,这在我们以太坊交易上也可以进行类似的行为研究。
6.下一步工作
论文中作者未来的研究方向包括:
- 当一个用户没有历史交易记录时,如何推荐商品?(从好友或者浏览记录?)
- 更多的行为模式,如点击、收藏、加入购物车等等?