2025-04-30 08:00:00
额外建立了一个 向量缓存 ,存储物料塔在训练过程中得到的最新的物料向量。
如何采样 #card
在训练每个Batch的时候,先进行Batch内负采样,同一个Batch内两条样本中的物料互为Hard Negative
额外从向量缓存采样一些由物料塔计算好的之前的物料向量 b,作为Easy Negative的Embedding
尽管在一个Batch内热门物料比较集中,但是向量缓存汇集了多个Batch计算出的物料向量,从中还是能够采样到一些小众、冷门物料作为Easy Negative的。所以,混合负采样对物料库的覆盖更加全面,更加符合负样本要让召回模型“开眼界、见世面”的一般原则。
2025-04-30 08:00:00
如何定义正样本,即哪些q和t在向量空间内应该相近;
取决于不同的召回场景
I2I召回。 q 和 t 是物料。 #card
U2I召回。 是用户, 是物料。#card
U2U召回。 和 都是用户。#card
如何定义负样本,即哪些q和t在向量空间内应该较远;#card
[[负样本主要靠随机采样]]
hard negative
如何将q和t映射成Embedding;#card
如何定义优化目标,即损失函数。#card
多分类的Softmax Loss,只要求把正样本的概率值预测得越高越好。正样本来自用户真实反馈,负样本往往未曾想用户曝光过。
nce loss
Sampled Softmax Loss
LTR 思想,把用户喜欢的排在前面,最求排序的相对准确
Pairwise Loss
[[Marginal Hinge Loss]]
2025-04-30 08:00:00
BPR的思想是给定一个由用户,正向物料,随机采样的负向物料组成的三元组 ,针对用户 的正确排序(将 排在 前面)的概率是 ,BPR Loss就是要 :-> 将这一正确排序的概率最大化。
由于 对应的真实label永远是1,因此将 代入Binary Cross-Entropy的公式,得到BPR Loss如公式(5-14)所示,符号含义参考公式(5-13)。
2025-04-29 08:00:00
[[AutoInt]]
DIN实现了用户兴趣的“千物千面”,但是仍有不足,就是它只刻画了候选物料与序列元素的交叉,却忽略了行为序列内部各元素之间的依赖关系。对用户行为序列建模的方法是采用双层Attention#card
+
2025-04-29 08:00:00
[[向量召回]] 基本流程 #incremental #card
(1)训练一个模型 ,将 中的每个实例 和T中的每个实例 都映射到同一个向量空间。
(2)将T中几十万,上百万个实例喂入模型M,映射成向量。再把这几十万,上百万个向量灌入Faiss或Milvus这样的向量数据库,建立索引。
(3)在线服务时,对于一个Q类的实例 ,通过模型M将其映射成向量 。再在向量数据库中,通过近似最近邻(ANN)搜索算法,查找与 最近的 个 类的邻居向量 。这些邻居向量对应的 作为召回结果返回。
部分内容来源于文章 [[fm:推荐算法中的瑞士军刀]]