
Factorizing Personalized Markov Chains for Next-Basket Recommendation
摘要和介绍
这篇文章发表于 WWW2010,当时主流的推荐方法是MF和MC
- MF(Matrix Factorization) : 用于建模用户与物品的偏好。给定已知用户和物品的交互,来预测矩阵中其他未知位置的用户偏好,方法有SVD分解,隐变量模型和基于优化/学习的方法等。
- MC(Markov Chain): 用于建模用户与商品交互的序列信息。MC方法基于转移矩阵,通过上一时刻的交互来预测下一个时刻的用户交互。
FPMC(Factorizing Personalized Markov Chains for Next-Basket Recommendation):
MF方法适合于建模personalized的推荐场景,MC方法适合于建模sequential的推荐场景,那么在Next-Basket Rec的任务中,如果既想考虑user-taste,又想考虑sequential信息,应该怎么做?
作者想了一个很自然的方法,那就是给每一个user建模一个markov transition matrix。也就是建模一个
任务介绍
首先为了说明MF和MC方法各有优缺点,Rendle举了两个例子:
- 有一个小伙平时爱看科幻电影,比如星战之类的。有一天陪女朋友看了泰坦尼克号,MC模型倾向于下一个推荐浪漫电影,而MF是global recommender,MF倾向于推荐科幻片。这说明MC模型容易受到最近交互的噪声影响。
- 有一个小伙买了camera,MF模型可能会继续推荐电子产品,MC模型会推荐胶片之类的"配件"。这说明MF这种全局建模u-i关系的难以利用序列化信息,做next item的预测。
FPMC的任务:
已知用户列表
方法
核心问题在于如何估算transition tensor的参数:
方法1: MLE 和 full parametrization
这是极大似然的估计方法,由于tensor的每一个位置都需要估算,所以又是一个全参数估计的方法。这种方法计算简单,但是面临一个问题, 就是每一个
方法2:tensor分解
根据上面的分析,单独考虑每一个user->item, 和 item->item之间的转移概率估计,不能完全利用信息,这说明u-i和i-i之间的信息应该可以share。全参数的估计面临稀疏性的问题,希望得到低秩表示。
Tucker分解:
显然有如下的关系式:
考虑最简单的单位tensor分解核:
通过上面的式子,可以看到这其实是向量内积做矩阵分解的tensor分解版本。
由于数据是稀疏的,Rendle 提出了下面的pairwise interaction的tensor分解:
对user,current item和next item 三者的pair关系设置两方面的embedding,通过点积的和来估算:
这样做的好处:
- 降低计算复杂度,相比较TD分解,这种分解方法参数量有所降低(因为没有三维的core),分解和推断的代价都会降低。
- 个人理解: 因为数据是稀疏的,TD分解想要降低复杂度,就只能使得core tensor更加稀疏,一个极端的情况,使用单位core tensor,这样变成三个embedding的element-wise的乘法,如果数据(embedding)稀疏, 按位置乘法就有可能造成0位置过多。
- 显式建模pairwise的interaction信息,可能更为直接。
回到MC:
这种建模方法比方法1的全参数建模参数量更少,而且解决了数据稀疏的问题。
训练方法
对于序列中的每一个转移,都可以采集作为偏序关系的学习样本。
从t-1 -> t, 的转移过程采用BPR优化器训练,学习偏序关系。序列中的BPR优化方法被作者命名为S-BPR。
和MF/MC方法的关系
注意到在训练的过程中,并没有对current-item做负采样,也就是说这个打分和括号里面和U,L相关的项,对于训练过程都是一样的,做差之后就抵消了,完全没有影响。
所以在BPRloss下可以简化为:
显然前一项是描述U-I的关系的,可以视为MF项,后一项是描述I-I关系的,可以视为FMC项。
值得注意的是: 并不能将FPMC视为 简单的MF,FMC线性相加。理由如下:
- 训练是联合的,不是单独训练拼起来
- 这是建立在优化器和采样方法对U-L之间的关系没有感知的基础上
- 采用pairwise interaction的tensor分解方法才可能出现这种情况
所以应该将FMC+MF视为一种退化的解。
结果和启示
- FMC和MC相比克服了数据稀疏的问题,而且这种低秩估计的分解方法不容易overfit。
- MF和FMC相比,在dense数据上MF更好,因为user相关的信息比较多。FMC在sparse数据上更好,因为这时没有足够的信息来学习用户的偏好,反而是最后一项物品更重要。
- 无论在dense还是sparse,FPMC都比FMC和MF好。