0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

双塔模型扩量负样本的方法比较

深度学习自然语言处理 来源:NewBeeNLP 作者:雨下 2022-07-08 10:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

之前有一段时间做过双塔的召回模型[1],线上各个指标有了不错的提升。目前双塔模型也是被各大公司钟爱的召回模型。对主流召回模型的分享整理在:总结下自己做过的深度召回模型

双塔模型在训练时是对一个batch内样本训练。一个batch内每个样本 (user和item对)为正样本,该user与batch内其它item为负样本。这样训练的方式可能有以下问题:

负样本的个数不足。训练时负样本个数限制在了batch内样本数减1,而线上serving时需要在所有候选集中召回用户感兴趣的样本。模型只能从当前batch内区分出batch内正样本,无法很好地从所有候选集中区分正样本。

未点击的item没有做负样本。由于batch内的item都是被点击过的,因此没有被点击item无法成为负样本,在线上serving容易它们被召回出来。一种解决方法是之前没被点击过的item不导出到候选集中,然而这样存在的问题是召回的item很多是之前点击的热门item,而很多冷门的item没有机会召回。

最近,有两篇文章提出了双塔模型扩量负样本的方法。这两种方法我也曾尝试过,线下线上指标也有一定的提升。

一、Two Tower Model

再介绍其它方法之前,先回顾一下经典的双塔模型建模过程。

用 表示双塔模型计算的user 和item 的相似性:

是表示user塔,输出user表示向量; 是item,输出item表示向量。最后相似性是两个向量的余弦值。batch内概率计算公式为:表示一个batch的意思。损失函数是交叉熵。

作者在计算user和item的相似度时,用了两个优化方法:

。 可以扩大相似度范围,扩大差距。

。 是item 在随机样本中被采样的概率,也就是被点击的概率。

关于优化2的解释有很多。论文中说热门item出现在batch内概率较大,因此会被大量做负样本。另一种解释是增加对冷门item的相似度。相比热门item,冷门item更能反映用户兴趣。

图1反映了双塔模型的batch采样过程。query也可以表示user。我们采样一个batch的user和对应正样本的item,计算各自的embedding后,通过点乘得到logits(B*B)的矩阵。label矩阵是一个单位矩阵。logit矩阵与label矩阵的每对行向量一起求交叉熵。

e387cbe6-f6d4-11ec-ba43-dac502259ad0.png

图1:双塔模型batch采样

二、Mixed Negative Samping(MNS)

MNS[2]与双塔模型[1]出自谷歌团队的同一批作者。用一个batch数据训练时,MNS还会在所有的数据集中采样出 个item。这样可以让所有的item参与到训练中,一些曝光未点击的item也会当作负样本。同时,双塔模型中使用的 等于训练样本中的频率加上所有数据集中的频率分布。概率公式重新定义如下:

作者在这里只对负样本的相似性减去了频率的log值。

MNS的batch采样方法见图2。最终计算的logits和label矩阵是一个B*(B+B')维的。其实就是在图1展示的基础上再增加B'列。logits的最后B'列是user与B‘内的item计算的相似性,label的最后B'列是全0矩阵。

相比于每个样本都随机采样出一定量的负样本,为每个batch都采样出B‘个负样本的不仅有先前双塔模型的计算效率,也缓和负样本不足的问题,并且让每个样本均有机会做负样本。

e3a3695a-f6d4-11ec-ba43-dac502259ad0.png

图2:MNS的batch采样

三、Cross Batch Negative Samping(CBNS)

CBNS[2]是清华大学和华为合作提出的方法。文中提到,双塔模型的计算优势在于利用了batch内的负样本,减小的计算量。如果我们想扩大batch内样本个数,加大负样本个数,需要很多的内存。因此,作者提出一个使用之前训练过的item作为负样本的方法。

神经网络训练达到一定轮数后,会对相同的样本产生稳定的向量。作者在论文中定义了这个想法。因此把之前训练过的item作为当前训练的负样本时,模型只需要把这些item的向量拿过来使用,不需要再输出到神经网络中产生新的向量,毕竟这两种向量的差距较小。

作者使用了FIFO(先进先出)队列,item塔输出向量时,会放进FIFO中。当warm-up training达到一定的轮数后,训练模型时,会从FIFO拿出一批向量作为负样本的向量。这样做不仅减少了计算量,在扩充负样本的时候也减少了内存的使用。计算公式与MNS差别不大:

也就是内容一中的优化2。B'在这里是从FIFO中取出的一批向量。

图3展示了CBNS与只用batch内负样本的不同。CBNS维持了一个memory bank。在训练时,会从里面拿出一定量的向量。

然而,CBNS的负样本只有点击过的样本,未点击的样本无法作为负样本。

e3b87548-f6d4-11ec-ba43-dac502259ad0.png

图3:CBNS采样方法

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4827

    浏览量

    106799
  • fifo
    +关注

    关注

    3

    文章

    406

    浏览量

    45493

原文标题:双塔模型如何选择负样本?

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    模板驱动 无需训练数据 SmartDP解决小样本AI算法模型开发难题

    。但是这个平台不适用于小样本AI模型开发,特别是一些特殊行业,数据本来就不多,但又有着需求,因此陷于两难。面临这种市场困境,慧视光电推出了一个全新的AI平台Sma
    的头像 发表于 09-09 17:57 1164次阅读
    模板驱动  无需训练数据  SmartDP解决小<b class='flag-5'>样本</b>AI算法<b class='flag-5'>模型</b>开发难题

    模型推理显存和计算估计方法研究

    过程中需要占用大量显存,导致推理速度变慢,甚至无法进行。 计算量过大:大模型的计算较大,导致推理速度慢,难以满足实时性要求。 为了解决这些问题,本文将针对大模型推理显存和计算的估计
    发表于 07-03 19:43

    EastWave应用:折射现象实时演示

    本案例使用“自定义模式”演示折射现象。 模型示意图 本案例为二维结构,将Y、Z 方向设置为周期边界,即Y、Z 方向为无限大拓展的平板,X 方向设置开放边界。本案例主要采用点光源入射到平板上来实时
    发表于 06-13 08:41

    嵌入式AI技术漫谈:怎么为训练AI模型采集样本数据

    Q 需要为嵌入式AI模型提供多少样本数据? 我在向客户介绍如何使用AI方法设计一款客户产品时,客户理解,AI嵌入式项目的开发都是围绕数据展开的,如此,我经常会被问到这样的问题:客户的工程师需要采集
    的头像 发表于 06-11 16:30 1076次阅读

    FA模型访问Stage模型DataShareExtensionAbility说明

    FA模型访问Stage模型DataShareExtensionAbility 概述 无论FA模型还是Stage模型,数据读写功能都包含客户端和服务端两部分。 FA
    发表于 06-04 07:53

    Stage模型绑定FA模型ServiceAbility的方法

    Stage模型绑定FA模型ServiceAbility 本小节介绍Stage模型的两种应用组件如何绑定FA模型ServiceAbility组件。 UIAbility关联访问
    发表于 06-04 06:54

    Stage模型启动FA模型PageAbility方法

    Stage模型启动FA模型PageAbility 本小节介绍Stage模型的两种应用组件如何启动FA模型的PageAbility组件。 UIAbility启动PageAbility
    发表于 06-04 06:36

    西门子伺服电机简明样本

    西门子伺服电机简明样本
    发表于 04-14 15:36 2次下载

    ADHV4702压电路和流电路是否可以同时使用吗?

    ADHV4702压电路和流电路是否可以同时使用吗,芯片8脚和5脚是否可以NC
    发表于 03-21 06:25

    请问是否有任何OpenVINO™样本可以推断批次大小大于1的检测模型

    是否有任何OpenVINO™样本可以推断批次大小大于 1 的检测模型
    发表于 03-06 07:19

    海康威视发布多模态大模型文搜存储系列产品

    多模态大模型为安防行业带来重大技术革新,基于观澜大模型技术体系,海康威视将大参数量、大样本的图文多模态大模型与嵌入式智能硬件深度融合,发布
    的头像 发表于 02-18 10:33 1019次阅读

    EastWave应用:折射现象实时演示

    本案例使用“自定义模式”演示折射现象。 模型示意图 本案例为二维结构,将Y、Z 方向设置为周期边界,即Y、Z 方向为无限大拓展的平板,X 方向设置开放边界。本案例主要采用点光源入射到平板上来实时
    发表于 02-17 09:48

    【「基于大模型的RAG应用开发与优化」阅读体验】+大模型微调技术解读

    重复项或使用编辑距离算法比较文本相似度。数据标注:高质量的数据标注直接影响模型的性能。标注过程应遵循明确标注规则、选择合适的标注工具、进行多轮审核和质量控制等原则。数据增强:提高模型泛化能力的有效
    发表于 01-14 16:51

    AI模型部署边缘设备的奇妙之旅:目标检测模型

    准确性。 类别不平衡问题:当某些类别的样本数远多于其他类别时,分类器可能会偏向多数类别,导致少数类别的预测精度较低。 过拟合风险:复杂的模型容易在训练数据上过拟合,即学到了训练数据中的特定特征而不是一般化
    发表于 12-19 14:33

    天数智芯新申请多输入比较方法专利

    专利是科技企业的护城河,我们看到国家知识产权局公开信息显示,天数智芯申请一项名为“多输入比较方法、装置、电路和处理器”的专利,公开号 CN 119093936 A。 据悉;多输入比较方法
    的头像 发表于 12-11 14:22 750次阅读