欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

理解推荐算法的三个维度:从矩阵、图到时间线 - 推荐难题转化为填充缺失信息的艺术

最编程 2024-02-11 21:06:12
...

image.png image.gif

假设序列中下一个物品只与上一个物品有关,可以使用马尔科夫模型MC(Markov Chains),序列中相邻的物品间进行矩阵分解。结合上文提到的用户和物品间矩阵分解MF,用户,当前行为物品和下一个物品三者之间两两进行矩阵分解,将三个值加起来拟合评分,就得到了FPMC(Factorizing Personalized Markov Chains)算法。


Translation-based推荐在序列建模中引入Metric Learning(把行为关系和高维空间距离映射起来),用户 image.gif ,当前行为物品 image.gif ,下一个物品 image.gif 三者向量化表示,训练使得它们满足 image.gif ,推荐时只需拿到用户历史行为的物品向量加上用户向量得到下一个物品向量,然后在推荐集合中KNN寻找即可完成推荐。


以前模型的输入形式有限,人们通过特征处理将数据组织成模型可以接受的形式;随着深度学习的发展,数据越来越倾向于保存其原有的形式,人们通过模型设计来学习有效的模式。在时间线的视角下,直接用深度模型结构建模序列,预测下一物品,形成了一个可以发挥想象力和燃烧算力的领域——Sequential/Session-base推荐。在2016年的时候,RNN是处理序列问题的标配,它从NLP领域走来,诞生了GRU4Rec算法。受到NLP领域Char-CNN启发,CNN的结构也逐渐用于建模序列结构,Attention机制大火之后,RNN+Attention,CNN+Attention,RNN+CNN+Attention被枚举了一遍。随着google老师的BERT取得NLP领域巨大成就,Self-Attention以及多层的Transformer结构开始成为序列建模的常规配置。最近的文章里,图神经网络(GNN),Memory networks,变分自编码器(VAE)也成为了序列推荐领域的深度乐高积木。


image.png

在CTR预估领域,越来越多的模型直接将用户历史行为序列按照时间顺序排列,使用深度模型结构直接建模。


总结


其实如果要细数,还有一个视角叫做高维空间视角。用户和物品都是一个高维度空间里的点,空间里点之间的距离越近,代表着物品和物品越相关,用户对物品越偏好,推荐问题转化成了如何将用户和物品嵌入到高维空间里。典型的主题如Metric Learning。不过这个视角的正交性不好,深度学习席卷推荐系统后,embedding是个太常见的思路,前面很多的方法也都是最终把问题转化成了高维空间嵌入,如graph-embedding,Transition-base推荐。为了避免归类上的纠结;再加上任何一个深度网络作为Encoder把用户和物品embedding,都可以归在这个视角,没有那么多令人印象深刻的典型方法,就不做单独梳理了。


To My Best Knowledge,我把自己认为推荐系统里经典且令人印象深刻的方法归在三种视角中——矩阵,图,时间线。本来想谈谈认识的,写着写着写多了,变成了一篇梳理文章。希望能对大家从偏算法的角度理解推荐系统有所助益。


引用

https://link.zhihu.com/target=https%3A//blog.****.net/baimafujinji/article/details/6474273


http://xtf615.com/2018/05/03/recommender-system-survey/


Sequential Recommender Systems: Challenges, Progress and Prospects

Translation-based Recommendation