2.3. 序列召回¶
在前面的章节中,我们学习了协同过滤和向量召回的方法。这些方法通常将用户的历史行为汇总成一个静态的表示(比如一个向量),然后基于这个表示进行推荐。但是,用户的行为其实是有时间顺序的,而且这个顺序往往包含了重要的信息。
比如,一个用户先浏览了跑鞋,然后看了运动服,接着又看了健身器材,这个顺序告诉我们这个用户可能对健身运动感兴趣。如果我们只是简单地把这些行为加起来或者平均,就丢失了这种时间顺序的信息。
序列召回就是要利用用户行为的时间顺序信息来进行推荐。它的基本想法是:用户的当前兴趣不仅取决于他过去喜欢什么,还取决于他最近在做什么,以及这些行为的顺序。
序列召回有几个明显的优势。首先,它能够理解用户行为之间的先后关系,比如用户买了手机后可能会买手机壳。其次,它能够捕捉用户兴趣的变化,比如用户从关注数码产品转向关注户外运动。最后,它能够更好地处理用户的多个兴趣,比如一个用户既喜欢看电影又喜欢运动。
目前的序列召回方法主要有两种思路:
第一种思路是改进用户的表示方法 (2.3.1节)。传统方法用一个向量表示用户,而这种思路用多个向量或者更复杂的结构来表示用户的兴趣。比如MIND模型用多个向量来表示用户的不同兴趣,SDM模型则区分用户的长期兴趣和短期兴趣。
第二种思路是把推荐看作序列预测问题 (2.3.2节)。就像语言模型预测下一个词一样,这种方法直接预测用户下一个可能感兴趣的物品。SASRec是这种方法的代表,它借鉴了自然语言处理中的Transformer模型。在此基础上,HSTU模型考虑了更多的特征信息,而TIGER模型则改进了物品的表示方法。
在本章中,我们将详细介绍这些序列召回的方法,看看它们是如何利用时间顺序信息来提高推荐效果的。