文章目录
1. 什么是双塔模型
双塔模型经典又简单,就是NLP领域的 query 和 document,推荐领域的 user 和 item,多模态检索领域的图像和文字等,都可以用双塔表示,分别把两个领域的特征编码成一个向量,然后向量相似度进行召回。
较早使用双塔模型的是DSSM模型。将文本编码成对应低维向量,然后通过优化向量点积估值,得到合适的query和文档向量。线上通过query和文档的相似度进行文档的召回。
推荐系统中使用的双塔模型结构如下:
真实的推荐领域的大规模推荐系统,通常有百万到上亿的item和user。因此,这些系统通常有两部分组成:Retrieval阶段和Ranking阶段。双塔模型最常用的领域是Retrieval阶段中的召回和Ranking阶段中的粗排部分。
双塔模型包含user侧和item侧编码塔,两塔分别学习到user和item的表示(embeddings)。
双塔召回应用广泛原因有如下几点:
1. 模型原理简单,比较好实现
2. 模型能够使用几乎所有特征,比起简单id或单用某些属性特征的召回算法,效果较好
3. 模型能够使用除了交叉结构以外的所有结构
4. 能欧提前预先计算item侧向量,线上计算复杂度小,使用近邻查找技术很容易计算百万级规模以上的物料。
5. 可以服用排序算法的特征工程及上线流程,减少工程复杂度。
6. 通过多种采样技术能够实现对应召回模型和粗排排序模型,模型结构、流程代码可复用。
7. 由于使用了全部特征,能够实现五行为item的冷启动,且有这较高准确度。
8. 可以通过模型的实时预测,实现item的实时推荐,达到几乎秒级更新,比较适合新闻等对冷启动需求较强的场景。
双塔存在的问题:
1. 两塔分离,两塔特征不能交叉,只能等到最终向量才能交互。
这是困扰双塔模式的根本问题,很多特征交叉的模型都无法使用,也导致限制了双塔的精度提升的上限。
2 双塔模型特征与特征选择
2.1 模型数据
模型数据包含两部分:一部分是样本的特征,从线上引擎打印的快照日志中来。 另一部分是对应的用户反馈,如曝光,点击,转赞评等label信息。两者通过请求id和item id 的拼接获得完整的样本。
2.2 模型特征
模型特征包含用户特征、上下文特征和物料三种,其中用户特征和上下文特征用于用户塔,物料特征用于物料塔。