correct-softmax:谷歌youtube召回修正样本采样双塔模型

1.简介

本文介绍谷歌团队在2019年提出的基于采样偏差修正的双塔模型对大规模语料进行召回推荐。

文章免费下载链接:
https://sci-hub.se/10.1145/3298689.3346996

首先,召回模型框架一般是双塔模型,其中,item塔对大量的item维度内容特征进行编码 。通过在batch内采样负样本来计算模型的损失。但在从mini-batch内采样,会有采样偏差,导致模型效果不好。本篇论文采用采样修正(sampling-bias-corrected)的方法在YouTube推荐业务中训练神经网络召回模型。

给定{user,context,item} 三元组,构建大规模召回系统的解决方法是:
(1)分别学习 {user, context} 和 {item} 的表示;
(2)使用一个scoring函数(比如,点乘)来计算query和item的表示,从而获得与query相关的items.
这里,context表示动态的上下文环境,比如,一天中的时间;或者,用户使用的设备。
表示学习存在两个问题:
(1) 在工业应用中,item的语料库很大;
(2)训练数据一般从用户反馈中获取,对于大多数items来说还是特别稀疏,对于长尾items,模型预测会有很大的方差。对于冷启动问题,系统需要适应数据分布的变化,从而能推出新内容。

2. correct-softmax的双塔模型

双塔模型的左右塔分别编码{user, context} 、{item} 特征。双塔模型可以考虑使用 batch softmax优化方法,即对batch内的items进行计算item的概率。batch softmax受限于采样偏差,如果不进行采样修正,会严重限制模型性能

重要度采样方法被应用在MLP模型中,用于降低采样偏差,比如,Quick Training of Probabilistic Neural Nets by Importance Sampling 等文章。受此启发,本文评估item频率来修正 batch softmax 采样偏差。与MLP模型输出的item 词库是相当固定的,本文旨在解决流式数据场景,词库和分布随着时间会发生改变。本文的贡献在于:

(1) 评估流式数据下item的频率,并且分析评估的方差和偏差;
(2) 模型框架:通过评估item的频率,使用交叉熵损失来进行batch softmax优化,并减少in-batch 内items的采样偏差;

基于修正对热门items采样的思想,本文提出的每个样本的logit可以表示成:
在这里插入图片描述

其中,s(x,y) 是 query 塔向量和候选item塔向量的内积:
在这里插入图片描述
p_j 代表item j 在随机batch的采样概率。

其中,p_j 的估计算法如下:
correct-softmax:谷歌youtube召回修正样本采样双塔模型_第1张图片
通过global_step来估计样本被采样的概率 p,并转换成一个item连续两次被采样的平均steps δ。比如,一个样本每50 steps采样一次,则p=0.02.

给定一个item y, A[h(y)] 代表y被采样的最近step;B[h(y)] 是估计y的δ值。如果y出现在step t,则更新B:

在这里插入图片描述

3. 实验结果

训练细节:

双塔模型的输出向量都先归一化,再除以temperature当做模型的logit s(x,y).
correct-softmax:谷歌youtube召回修正样本采样双塔模型_第2张图片

加权log似然函数作为优化目标:
在这里插入图片描述

在这里插入图片描述
correct-softmax:谷歌youtube召回修正样本采样双塔模型_第3张图片
上表展示了correct-sfx方法在离线评估的效果,其中,效果最好是temperature在0.05时。

correct-softmax:谷歌youtube召回修正样本采样双塔模型_第4张图片
线上评估显示,增加了这路向量召回,显著提高指标;其中,correct-sfx方法的效果比baseline plain-sfx更好。

你可能感兴趣的:(推荐系统,推荐算法)