Deep Retrieval召回:给定用户特征采用beam search算法召回路径,根据路径召回物品,对物品排序,最终用分数高的物品作为召回结果。
双塔模型是将向量表征作为用户和物品之间的中介。
Deep Retrieval是将路径作为用户和物品之间的中介。
神经网络判断用户对物品的兴趣,物品表证则是把物品映射到路径。
索引:
把物品和路径关联起来。一个物品可以表示为多条路径,路径可以有重合的节点。
物品到路径的索引:
训练神经网络时使用该索引。
路径到物品的索引:
线上做召回的时候使用该索引。给定一条路径会取回多个物品作为召回的结果。
预估模型:
Deep Retrieval设计神经网络,给定用户特征可以预估用户对路径的兴趣分数。使用该神经网络,可以根据用户特征召回多条路径。
以下假定结构有三层:p1 p2 p3三个向量是三个神经网络的输出。
向量p1 p2 p3分别是对第一层、第二层、第三层k个节点的打分,都是k维向量。根据分数选出每一层的一个节点a 、b、c。用户特征向量x不变,对节点a做embadding得到emb(a),对x和emb(a)做connection再输入神经网络。三层神经网络不共享参数。
选出三层中的节点a 、b、c.
线上召回:
beam search召回路径
减少计算量,应用于机器学习和Lp。超参数beam size最大,计算量越大,search结果越好。
例子,设置超参数为1,选择每一层最高分节点,即p1向量中元素最大的节点。
beam search算法理论:
上面的例子即贪心算法,独立对p1 p2 p3最大化,但不一定保证三项乘积最大,即选择的路径未必是最优路径。
设置超参数为4:
训练:
离线训练,只使用正样本,只要点击过就算正样本。
通过最小化损失函数来学习神经网络的参数。
以用户为中介,计算用户与路径的兴趣分数,进而得到物品与路径的相关性score,score越高说明路径和物品的关联越大,可以把路径作为物品的表征。
概括:
总结:
双塔模型是将向量表征作为用户和物品之间的中介。
Deep Retrieval是将路径作为用户和物品之间的中介。