推荐召回-向量召回之U2I学习总结


常见召回模型

  • I2I:计算item-item相似度,用于相似推荐、相关推荐;
  • U2I:基于矩阵分解,通过用户特征直接推荐item;
  • U2U2I:基于用户的协同过滤,先找相似用户,再推荐相似用户喜欢的item;
  • U2I2I:基于物品的协同过滤,先统计用户喜爱的物品,再推荐他喜欢的item;
  • U2TAG2I:基于标签偏好推荐,先统计用户偏好的tag,然后匹配所有的item;其中tag一般是item的标签、分类、关键词等。

其中U表示user,2表示走向(to),I表示Item,TAG表示标签(tag)。在深度神经网络出现之前,传统的多路召回方法主要有:内容偏好召回、协同过滤、热门召回和策略召回等,下面进行详细的介绍。

u2i召回框架

常见的u2i召回模型

  1. 离线模型:通过用户行为日志和对应的item,离线训练模型,并得到用于表示用户特征的user embedding模型,和用于表示item特征的item embedding模型。

  2. 在线模型:通过用户线上的实时行为,构造实时特征,再通过User embedding模型提取用户当前embedding特征最后进行检索,找到用户最感兴趣的topN 的item。

比较经典的u2i召回模型主要有两种:Youtube召回;由DSSM发展而来的双塔召回。

双塔模型

双塔模型DSSM全称是Deep Structured Semantic Model,最早是微软提出解决搜索问题。双塔模型上线很方便,user塔在线计算user embedding,item塔离线计算item embeding,通过向量检索就可以快速进行召回。
DSSM模型的原理相对简单:通过Q(Query)和D(Document)的曝光、点击日志,采用DNN把Q和D表示为低维向量(如上图中128维的和),并通过余弦相识度来计算向量距离,最终训练出语义相似度模型。

将DSSM中的Q(Query)和D(Document)分别替换成推荐系统中的User和Item,就构成了经典的双塔模型。

双塔模型的线上工程流程

  1. 从用户历史行为获得的item list。
  2. 从item embedding中获取各个item 对应的向量。通过指定的计算(比如相加,求平均,时间衰减)得到相同embeding size的user embedding。
  3. 用user embedding计算item embedding中各个item向量与用户向量的余弦值。
  4. 返回相似度top k 的item

余弦值求相似度