推荐算法丨行为序列
LastN
LastN,即用户最近 n 次点击、点赞、收藏、转发等行为是推荐系统中重要的特征,可以帮助召回和排序变得更精准。
用户的LastN序列是用户最近交互过的N个物品,将这些物品的ID embedding成向量并取平均得到一个向量,作为用户的一种特征,和其他特征一起输入神经网络。
这种方法适用于双塔模型、三塔模型、精排模型。
在实践中,可以用点击、点赞、收藏等的LastN序列分别生成一个特征向量,再把这些向量拼接起来。除了使用物品ID,还可以使用物品其他特征做embedding,再和ID的embedding拼接起来。
DIN模型
DIN模型是对LastN序列建模的一种方法,效果优于简单的平均。DIN 的本质是注意力机制。
DIN采用了加权平均代替普通平均,权重是候选物品向量与LastN物品向量的相似度。
DIN模型只用于精排模型,而不用于双塔模型、三塔模型。这是因为双塔模型中物品表征离线存储,用户塔无法看到候选物品特征。
SIM模型
DIN模型的计算量受N影响,因此N的规模不能太大,一般只能为几百,导致模型无法看到用户的长期兴趣。
SIM模型的目标是保留用户的长期行为序列,而且计算量不会过大。
SIM模型对DIN做出改进:
- DIN对LastN向量做加权平均,权重是相似度。
- 如果某LastN物品与候选物品差异很大,则权重接近零。
- 可以快速排除掉与候选物品无关的LastN物品,降低注意层的计算量。
SIM的步骤如下:
查找:
- Hard Search:保留LastN物品中与候选物品类目相同的。
- Soft Search:最近邻查找,将候选物品向量作为query查找LastN中k个相似度最高的。
- 前者更快,后者效果更好。一般用前者就行。
注意力机制:
- 将DIN中的LastN向量换成TopK向量即可。
- SIM记录用户的长期行为,LastN可能存在很久之前的交互,因此可以加入时间信息:
- 用户与某个LastN物品的交互时刻距今为δ;
- 对δ做离散化,在做embedding,变成向量d;
- 将物品向量x和时间向量d拼接在一起,作为一个LastN物品的表征。