推荐算法丨行为序列

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物品的表征。