前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >双塔模型中的负采样

双塔模型中的负采样

作者头像
炼丹笔记
发布于 2021-09-02 02:24:04
发布于 2021-09-02 02:24:04
1.9K0
举报
文章被收录于专栏:炼丹笔记炼丹笔记

作者:十方

推荐模型中双塔模型早已经普及.一个塔学用户表达.一个塔学item表达.很多双塔模型用各种各样的in-batch负采样策略.十方也是如此.往往使用比较大的batchsize,效果会比较好,但是由于内存限制,训练效率会比较低.这篇论文《Cross-Batch Negative Sampling for Training Two-Tower Recommenders》发现encoder的输出在warming up的训练过程后就比较稳定了,基于此提出一个高效负采样的方法Cross Batch Negative Sampling (CBNS),该方法充分使用了最近编码过的item embedding来加速训练过程.

CBNS

关于问题定义就不赘述了,双塔已经写了很多了,计算用户与item相似度也是用简单的点积。loss最典型的就是用sampled softmax:

提升训练效率,最好使的就是batch内负采样了,如下图(a)所示。

参考sampled softmax机制,论文修改上述公式为:

其中q(I)为采样偏差。接下来就要说到cross-batch negative sampling,这个方法可以解决in-batch负采样中,存在batch size受到gpu显存大小,从而影响模型效果。在训练过程中,我们往往认为过去训练过的mini-batches是无用废弃的,论文中则认为这些信息可以反复利用在当前负采样中因为encoder逐渐趋于稳定。论文中用下式评估item encoder特征的偏移:

如上图(b)所示,在早期学习率较大的时候,encoder编码相同item的变化是很大的,随着训练过程的推进,学习率逐渐降低,特征逐渐趋向于稳定,如下图所示

这时候我们可以充分利用稳定的embedding作为负样本。但是用历史的embedding会给梯度带来偏差,论文有证明这个偏差影响是很小的:

考虑到训练前期embedding波动较大,在warm up过程中先使用简单的in-batch内负采样,然后使用一个FIFO memory bank,存放M个历史item embedding

q(I)表示第i个item的采样概率。CBNS的softmax如下式所示:

在每次迭代结束,都会把当前mini-batch的embedding和采样概率加入memory bank.在下次训练过程中,除了使用batch内负样本,同时也会从memory bank中拉取负样本.

实验

对比不同采样策略下的表现:

以及在不同模型下验证集的召回和NDCG曲线:

同时论文还对比了M大小/负样本数对效果的影响:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 炼丹笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SIGIR'21「华为」双塔模型中的CBNS负采样方法
本文是SIGIR'21上的一篇短文,主要是对召回阶段的双塔模型中的负采样方法的改进。通常用的表多的是batch内(in-batch)负采样,但是直接使用in-batch负采样,需要较大的batch size,而如果batch size太大,GPU就会承受不住,因此负样本的多少会受到GPU的限制。本文主要利用网络模型训练到一定程度后是相对稳定的,从而得到的embedding相差不大。在此基础上将之前batch的embedding存储之后用于后续batch的训练,从而提出了Cross Batch Negative Sampling (CBNS)。
秋枫学习笔记
2022/09/19
1.1K0
双塔模型如何选择负样本?
之前有一段时间做过双塔的召回模型[1],线上各个指标有了不错的提升。目前双塔模型也是被各大公司钟爱的召回模型。对主流召回模型的分享整理在:总结下自己做过的深度召回模型
NewBeeNLP
2022/11/11
1.2K0
双塔模型如何选择负样本?
【CTR】Youtube:双塔召回模型
本文是 Google 在 RecSys 2019 上的最新论文,作者采用了目前主流的双塔模型,并基于此设计了一个使用双塔神经网络的建模框架,其中一个塔为 item 塔,编码了 item 大量的内容特征。
阿泽 Crz
2020/07/21
3.1K0
【CTR】Youtube:双塔召回模型
RS Meet DL(72)-[谷歌]采样修正的双塔模型
本文介绍的论文题目是:《Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations》 论文下载地址是:h
石晓文
2019/12/19
3.6K0
RS Meet DL(72)-[谷歌]采样修正的双塔模型
对比学习中的4种经典训练模式
对比学习是无监督表示学习中一种非常有效的方法,核心思路是训练query和key的Encoder,让这个Encoder对相匹配的query和key生成的编码距离接近,不匹配的编码距离远。想让对比学习效果好,一个核心点是扩大对比样本(负样本)的数量,即每次更新梯度时,query见到的不匹配key的数量。负样本数量越多,越接近对比学习的实际目标,即query和所有不匹配的key都距离远。
圆圆的算法笔记
2022/09/22
3.4K0
对比学习中的4种经典训练模式
双塔模型没效果了?请加大加粗!
很多研究表明,双塔在一个域表现不错,在其他域表现不好了。一个广泛被认同的观点就是双塔仅仅用了最后一层的点积算分,这限制了模型的召回能力。这篇论文<Large Dual Encoders Are Generalizable Retrievers>就否认了这个观点,通过扩展双塔的网络,就能提升模型对各个召回任务的效果,特别是那些跨域的。实验结果表明,该论文提出的Generalizable T5-based dense Retrievers(GTR)在BEIR数据集上显著优于现存的一些召回模型。
炼丹笔记
2022/02/11
1.4K0
双塔模型没效果了?请加大加粗!
文献阅读:Cross-Batch Negative Sampling for Training Two-Tower Recommenders
文献链接:https://arxiv.org/pdf/2110.15154.pdf
codename_cys
2021/11/16
8880
文献阅读:Cross-Batch Negative Sampling for Training Two-Tower Recommenders
负样本的艺术,再读Facebook双塔向量召回算法
Facebook这篇Embedding召回的论文,之前已经有几篇文章涉及过了,分别是《Embeding-based Retrieval in FaceBook Search》、《是"塔"!是"塔"!就是"它",我们的双塔!》和《负样本修正:既然数据是模型的上限,就不要破坏这个上限》,有兴趣的可以回顾一下。
炼丹笔记
2021/07/16
2.1K0
负样本的艺术,再读Facebook双塔向量召回算法
是"塔"!是"塔"!就是它,我们的双塔!
对于基于向量召回,那就不得不提到双塔。为什么双塔在工业界这么常用?双塔上线有多方便,真的是谁用谁知道,user塔做在线serving,item塔离线计算embeding建索引,推到线上即可。下面我就给大家介绍一些经典的双塔模型,快速带大家过一遍,如果想了解细节,强烈建议看论文。
炼丹笔记
2021/05/14
2.1K0
是"塔"!是"塔"!就是它,我们的双塔!
遇到曝光偏差怎么办?用对比学习!
推荐系统中常常需要在亿级别的候选集中找到上百个相关的item,俗称DCG问题(Deep candidate generation)。通常处理这类问题采用的类似语言建模的方法。然而显存的推荐系统都存在着曝光偏差,在候选集多的时候这个偏差更加的严重,导致模型只学习了曝光多的样本,因此这篇论文《Contrastive Learning for Debiased Candidate Generation in Large-Scale Recommender Systems》使用了对比学习去解决曝光偏差问题,该方法已经成功部署在淘宝,并且效果有显著提升。
炼丹笔记
2021/09/02
2K0
2020最后一篇!就是这么"硬"!召回系统就该这么做!
不知道多少人还记得《是"塔"!是"塔"!就是"它",我们的双塔!》那篇,那篇介绍了国内外各个大厂做召回的用的双塔模型,其中提到一篇《Embeding-based Retrieval in FaceBook Search》,还跟大家强烈建议,该篇必读,不知道有多少炼丹师认真读了?什么?你还没读!没关系,十方今天就给大家解读这篇论文。
炼丹笔记
2021/05/14
2K0
2020最后一篇!就是这么"硬"!召回系统就该这么做!
对比学习技术在推荐系统的应用学习笔记
本文首先分析推荐系统预测不准的部分因素:数据稀疏和数据分布偏差,其次基于这些因素从增广数据、定义Loss、设计Encoder来介绍对比学习技术是如何帮助推荐系统预估地更准,最后给出一些前人的实践经验和一些个人理解。
锅逗逗
2022/10/05
1.3K0
对比学习技术在推荐系统的应用学习笔记
文献阅读:Mixed Negative Sampling for Learning Two-tower Neural Networks in Recommendations
文献链接:https://storage.googleapis.com/pub-tools-public-publication-data/pdf/b9f4e78a8830fe5afcf2f0452862fb3c0d6584ea.pdf
codename_cys
2021/11/16
5510
文献阅读:Mixed Negative Sampling for Learning Two-tower Neural Networks in Recommendations
KDD'22 | 对比学习+知识蒸馏,Bing搜索广告最新利器!
大家好,这里是NewBeeNLP。今天我们分享Bing在搜索广告的最新技术细节,来自微软和北航的合作工作,发表在KDD 2022。
NewBeeNLP
2022/11/11
1.4K0
KDD'22 | 对比学习+知识蒸馏,Bing搜索广告最新利器!
利用Contrastive Loss(对比损失)思想设计自己的loss function
来源:PaperWeekly本文约4500字,建议阅读9分钟该损失函数主要是用于降维中,即本来相似的样本,在经过降维(特征提取)后,在特征空间中,两个样本仍旧相似。 1、Contrastive Loss简介 对比损失在非监督学习中应用很广泛。最早源于 2006 年Yann LeCun的“Dimensionality Reduction by Learning an Invariant Mapping”,该损失函数主要是用于降维中,即本来相似的样本,在经过降维(特征提取)后,在特征空间中,两个样本仍旧相似;而
数据派THU
2023/04/12
3.8K0
利用Contrastive Loss(对比损失)思想设计自己的loss function
万变不离其宗:用统一框架理解向量化召回
常读我的文章的同学会注意到,我一直强调、推崇,不要孤立地学习算法,而是要梳理算法的脉络+框架,唯有如此,才能真正融会贯通,变纸面上的算法为你的算法,而不是狗熊掰棒子,被层出不穷的新文章、新算法搞得疲于奔命。
阿泽 Crz
2021/02/12
2K0
万变不离其宗:用统一框架理解向量化召回
对比学习必知要点
此篇接上篇《对比表示学习必知的几种训练目标》.关于对比学习,除了那些优化目标必须知道,还必须知道以下要点.
NewBeeNLP
2022/03/03
1K0
对比学习必知要点
文本匹配开山之作--双塔模型及实战
在前面一篇文章中,总结了Representation-Based文本匹配模型的改进方法,
NewBeeNLP
2021/08/20
1.2K0
负采样方式
2、问题:头部效应很重,热门item有大量的正样本,而冷物品有大量负样本,难以均衡化;
全栈程序员站长
2022/09/07
9310
CIKM'21 | 谷歌:推荐中的自监督对比学习
毕竟,对比学习的思想就是“拉近正样本,推开负样本”,而向量化召回中,我们使用用户点击的item作为正样本,再用in-batch负采样或者随机负采样等采样方法得到不相关的负样本,模型学习的结果就是让user塔的输出embedding和点击item的embedding点积更大、未点击item的embedding点积更小。
NewBeeNLP
2022/02/26
2K0
CIKM'21 | 谷歌:推荐中的自监督对比学习
推荐阅读
相关推荐
SIGIR'21「华为」双塔模型中的CBNS负采样方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档