作 者:十方
公众号:炼丹笔记
(1)Why Deep Retrieval?
一个规模较大的推荐系统,需要解决的核心问题就是如何从百万甚至亿级别的候选集中快速找到最相关的top-k个候选。以前的解决方案都是两步:
- 双塔模型,最后做Dot
- 用Annoy Tree或者HNSW给候选集建索引,在线计算向量实时检索top-k
之前方案存在的问题:
- 因为要分两步,而两步的目标是不一样的。
- 双塔限制了模型的表达能力
基于此,又出现了TDM等树结构模型,但是把每个候选分配到唯一一个叶子节点是最好的方案吗?所以end-to-end的Deep Retrieval(DR)就这样诞生了。
(2)Deep Retrieval 长什么样?
DR并没用用树结构,而是采用了一个矩阵结构(图a所示),现在规定只能从左向右走,因此走D步就可以走完这个矩阵,一共有K的D次方种走法,每一种走走法,都代表一簇候选。所以一个候选,可能存在于多种走法,一种走法也会有多个候选。类比到电商,比如一种类别就对应一种走法,一种类别包含多个商品,一个商品可能也属于多个类别,比如巧克力既可以是食品,也可以是情人节礼物。拿图(a)来说,(1,2,1)和(2,1,2)两条路径分别表示情人节礼物和食品,里面都可以有巧克力。