LOADING

加载过慢请开启缓存 浏览器默认开启

DeepRetrieval召回

Deep Retrieval

双塔模型将用户、物品表征为向量,线上做最近邻查找召回

Deep Retrieval把物品表征为路径,线上查找用户最匹配的路径

  1. 索引

    路径->物品列表

    物品->路径列表

  2. 预估模型

    预估用户对路径的兴趣

  3. 召回

    用户->路径->物品

索引

假设有L层节点,每层K个节点,那么一个物品就可以用路径表示如[2, 4, 1],物品可以被多个路径表示如{[2, 4, 1], [4, 1, 1]}

预估

假设有3层节点,那么一条路径可表示为path = [a, b, c]

预估用户对路径的兴趣可表示为p(a, b, c|x) = p1(a|x) × p2(b|a; x) × p3(c|a, b; x) $$ \mathbf{x} \to f_{1}(·) \to softmax \to p_{1} \to beam\;search选择出a\\ \mathbf{x} \oplus emb(a) \to f_{2}(·) \to softmax \to p_{2} \to b\\ \mathbf{x} \oplus emb(a) \oplus emb(b) \to f_{3}(·) \to sofrmax \to p_{3} \to c $$

召回

  1. 给定用户特征,召回一批路径
  2. 利用路径->物品列表索引,召回一批物品
  3. 对物品打分、排序,选出一个子集

训练

对模型的训练,先将物品表征为路径集合,模型能预测用户对一条路径的兴趣分数,如果用户点击过物品,那么对它的所有路径都应感兴趣,因此用户对物品的每条路径的分数的加和越大,模型越好

要学习物品的路径集合表征,就是要选出与物品最相关的多条路径,物品与路径的相关性分数可以由所有点击过物品的用户对该条路径的兴趣分数加和求得,相关性分数越大表征越好,同时引入正则项,避免同一条路径上物品数量过多

交替训练模型参数和物品表征