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

    文章

    4732

    浏览量

    100393
  • fifo
    +关注

    关注

    3

    文章

    386

    浏览量

    43484

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

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

收藏 人收藏

    评论

    相关推荐

    常见AI大模型比较与选择指南

    在选择AI大模型时,明确具体需求、了解模型的训练数据、计算资源要求和成本,并考虑模型的可解释性和社区支持情况等因素至关重要。以下是对常见AI大模型
    的头像 发表于 10-23 15:36 315次阅读

    BP神经网络样本的获取方法

    的训练样本是至关重要的。 数据收集 数据收集是构建BP神经网络模型的第一步。根据研究领域和应用场景的不同,数据来源可以分为以下几种: 1.1 实验数据:通过实验或观察获得的数据,如生物实验、化学实验等。 1.2 传感器数据:通过传感器收集的数据,如温度、湿度、压力等。
    的头像 发表于 07-11 10:50 439次阅读

    助听器降噪神经网络模型

    用提前停止。该模型以 32 的批量大小进行训练,每个样本的长度为 15 秒。 Nvidia RTX 2080 TI 上一个训练周期的平均时间约为 21 分钟。使用尺度敏感的 SNR [20] 作为
    发表于 05-11 17:15

    【大语言模型:原理与工程实践】大语言模型的应用

    类任务上表现出色,甚至在零样本条件下也能取得良好效果。另一类则需要逐步推理才能完成的任务,类似于人类的系统2,如数字推理等。然而,随着参数量的增加,大语言模型在这类任务上并未出现质的飞跃,除非有精心
    发表于 05-07 17:21

    浅析比较器出现输入电压的原因、影响及其解决办法

    比较器是一种常见的电子元件,用于将两个输入电压进行比较,并输出相应的电平。在实际应用中,有时会出现输入电压的情况,这可能会对比较器的正常工作产生影响。
    的头像 发表于 02-17 14:56 3025次阅读
    浅析<b class='flag-5'>比较</b>器出现<b class='flag-5'>负</b>输入电压的原因、影响及其解决办法

    小红书搜索团队研究新框架:样本在大模型蒸馏中的重要性

    在思维链(CoT)提示的帮助下,大语言模型(LLMs)展现出强大的推理能力。然而,思维链已被证明是千亿级参数模型才具有的涌现能力。
    的头像 发表于 01-30 10:37 986次阅读
    小红书搜索团队研究新框架:<b class='flag-5'>负</b><b class='flag-5'>样本</b>在大<b class='flag-5'>模型</b>蒸馏中的重要性

    模型Reward Model的trick应用技巧

    借助对比学习和元学习的方法。增加对比学习的loss,对比学习通过增强模型区分能力,来增强RM的对好坏的区分水平。元学习则使奖励模型能够维持区分分布外样本的细微差异,这种
    发表于 01-25 09:31 827次阅读
    大<b class='flag-5'>模型</b>Reward Model的trick应用技巧

    2023年LLM大模型研究进展

    作为做LLM应用的副产品,我们提出了RLCD[11],通过同时使用正例和例prompt,自动生成带标签的生成样本不需人工标注,然后可以接大模型微调,或者用于训练reward models
    发表于 01-19 13:55 458次阅读

    传导的测试与测介绍

    、最直接的传导测试方法。该方法通过使用万用表或示波器等仪器,直接测量电路中的电压和电流值,从而计算出电阻值。这种方法适用于简单的电路和低电阻值的场合。 比较
    的头像 发表于 01-18 14:57 1609次阅读
    传导的测试与<b class='flag-5'>量</b>测介绍

    新技术在生物样本冷冻中的应用案例分析

      一、冷冻样本的新技术应用   1. 低温离心   低温离心是一种比较先进的生物样本冷冻处理技术,它可以在较低温度下将样本进行离心,从而有效地分离和保存其中的细胞和分子。相比传统的液
    发表于 12-26 13:30

    LabVIEW进行癌症预测模型研究

    病例和癌症相关死亡人数有所增加。其中,乳腺癌是女性中最常见的癌症类型。 本研究采用ML技术对乳腺癌进行预测,比较了当前方法和提出的方法。 使用诊断乳腺癌数据集包含699个样本,9个变量
    发表于 12-13 19:04

    探索高效的大型语言模型!大型语言模型的高效学习方法

    在大型语言模型(LLMs)的应用中,提示工程(Prompt Engineering)是一种关键技术,用于引导模型生成特定输出或执行特定任务。通过精心设计的提示,可以显著提高LLMs的性能和适用性。本文将介绍提示工程的主要方法和技
    发表于 12-13 14:21 556次阅读
    探索高效的大型语言<b class='flag-5'>模型</b>!大型语言<b class='flag-5'>模型</b>的高效学习<b class='flag-5'>方法</b>

    异构信号驱动下小样本跨域轴承故障诊断的GMAML算法

    论文提出了一种通用的模型不可知元学习(GMAML)方法,用于在异质信号驱动的不同工况下,进行轴承的少样本故障诊断。
    的头像 发表于 12-06 15:07 983次阅读
    异构信号驱动下小<b class='flag-5'>样本</b>跨域轴承故障诊断的GMAML算法

    比较器中出现输入电压的原因和影响

    比较器中出现输入电压的原因和影响  比较器是一种电子器件,用于将输入信号与参考电压进行比较,并产生输出信号。当输入信号的电压大于参考电压时,输出为高电平,反之输出为低电平。然而,在某
    的头像 发表于 11-24 14:26 1854次阅读

    解读大模型FP量化的解决方案

    63.1 的分数,只比完整精度模型低了 5.8 分,且比之前的 SOTA 方法平滑高出了 12.7,这是目前少数已知可行的 4-bit 量化方案了。
    发表于 11-24 11:15 859次阅读
    解读大<b class='flag-5'>模型</b>FP量化的解决方案