序列推荐是什么?根据你刚才看了什么来推荐下一个
序列推荐系统(Sequential Recommender)是根据用户的历史行为序列来预测下一个行为的推荐系统。它试图理解和建模用户行为的时间顺序、用户与物品之间的交互,以及这些因素如何随时间变化,从而更准确地推荐符合用户当前和近期偏好的内容。
为什么要考虑顺序
传统的推荐方法,比如协同过滤,主要看用户总体上喜欢什么,把用户的历史行为当成一个没有先后顺序的集合。但用户的兴趣是动态变化的,而且行为之间往往有明显的先后关系。比如在电商平台上,一个用户先买了一部手机,接下来很可能会买手机壳、钢化膜和充电器,而不是再买一部手机;一个用户最近一直在看露营装备,说明他近期在计划露营,即使他过去一年主要买的是数码产品。只看总体偏好,就会错过这些重要的时序信号。序列推荐正是要捕捉“刚才做了什么、接下来可能做什么”的规律。
技术演进
早期的方法基于马尔可夫链:认为下一个行为主要取决于前一个或前几个行为,统计物品之间的转移概率。深度学习兴起后,循环神经网络被用来建模较长的行为序列,代表方法是 GRU4Rec。之后,卷积神经网络、注意力机制也被引入。2018 年前后,基于自注意力的 SASRec 和借鉴 BERT 的 BERT4Rec 等模型,用 Transformer 来捕捉序列中长距离的依赖关系,效果显著提升,成为序列推荐的主流基线。
近年来,研究者开始尝试用大语言模型来做推荐:把用户的行为序列写成文字,让大模型理解用户的意图并给出推荐;也出现了生成式推荐的思路,像生成文字一样直接生成下一个物品的编号。各大互联网公司也在探索参数规模更大的推荐模型,借鉴大模型的扩展规律。
应用和挑战
序列推荐广泛应用于电商的“猜你喜欢”、短视频和信息流的下一条内容推荐、音乐的下一首歌、视频网站的“接下来播放”、新闻推荐等场景。它面临的挑战包括:用户行为数据中有很多随机和噪声行为;同一个用户可能同时有多种兴趣;新用户和新物品缺少历史数据;以及需要在极短的时间内为海量用户实时地给出推荐。