首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏炼丹笔记

    双塔模型中的负采样

    作者:十方 推荐模型双塔模型早已经普及.一个塔学用户表达.一个塔学item表达.很多双塔模型用各种各样的in-batch负采样策略.十方也是如此.往往使用比较大的batchsize,效果会比较好,但是由于内存限制 CBNS 关于问题定义就不赘述了,双塔已经写了很多了,计算用户与item相似度也是用简单的点积。 接下来就要说到cross-batch negative sampling,这个方法可以解决in-batch负采样中,存在batch size受到gpu显存大小,从而影响模型效果。 实验 对比不同采样策略下的表现: 以及在不同模型下验证集的召回和NDCG曲线: 同时论文还对比了M大小/负样本数对效果的影响:

    2.1K30发布于 2021-09-02
  • 来自专栏阿泽的学习笔记

    【CTR】Youtube:双塔召回模型

    作者:阿泽 本文是 Google 在 RecSys 2019 上的最新论文,作者采用了目前主流的双塔模型,并基于此设计了一个使用双塔神经网络的建模框架,其中一个塔为 item 塔,编码了 item 大量的内容特征 这类双塔模型的的优化方法通常是对 mini-batch 进行负采样的方式进行训练,但是这样做会存在问题。比如说,当样本分布出现明显倾斜的时候,潜在的会破坏模型的性能。 随着深度学习在诸多领域的成功应用,本文将探讨双塔 DNN 在构建检索模型中的应用,下图为双塔模型: ? 其中,左塔和右塔分别对 {user、context} 和 {item} 进行编码。 MLP 模型通常可以采用从 item 的固定语料库中通过负采样得到训练,但由于双塔模型体系是同时对 item 的结构和内容特进行建模的,两者共享网络参数,所以无法通过类似的方式进行采样训练。 正如上面的那个双塔模型所示,然后通过内积来求得两个 Embedding 的相似度: 其中, 为模型的参数。

    3.4K20发布于 2020-07-21
  • 来自专栏算法进阶

    电影推荐项目实战(双塔模型

    如关联规则推荐,可以将物与物共现度看做为某种的相似度; 协同过滤算法可以基于物品或者基于用户计算相似用户或物品; 以及本文谈到的双塔模型,是通过计算物品与用户之间的相似度距离并做推荐。 DSSM双塔模型 2.1 DSSM模型的原理 DSSM(Deep Structured Semantic Models)也叫深度语义匹配模型,最早是微软发表的一篇应用于NLP领域中计算语义相似度任务的文章 输入层 将用户、物品的信息转化为数值特征输入; 表示层 进一步用神经网络模型学习特征表示; 匹配层 计算用户特征向量与物品特征向量的相似度; 结构如下图所示: 3.双塔模型代码实践 读取电影数据集 UserID_idx","Gender_idx","Age_idx","Occupation_idx","MovieID_idx","Genres_idx"]] y = df_sample["Rating"] 构建双塔模型 def get_model(): """搭建双塔DNN模型""" # 输入 user_id = keras.layers.Input(shape=(1,), name=

    92250编辑于 2022-06-02
  • 来自专栏NewBeeNLP

    双塔模型如何选择负样本?

    作者 | 雨下 整理 | NewBeeNLP 之前有一段时间做过双塔的召回模型[1],线上各个指标有了不错的提升。目前双塔模型也是被各大公司钟爱的召回模型。 对主流召回模型的分享整理在:总结下自己做过的深度召回模型 双塔模型在训练时是对一个batch内样本训练。 最近,有两篇文章提出了双塔模型扩量负样本的方法。这两种方法我也曾尝试过,线下线上指标也有一定的提升。 一、Two Tower Model 再介绍其它方法之前,先回顾一下经典的双塔模型建模过程。 图1:双塔模型batch采样 二、Mixed Negative Samping(MNS) MNS[2]与双塔模型[1]出自谷歌团队的同一批作者。 同时,双塔模型中使用的 p_y 等于训练样本中的频率加上所有数据集中的频率分布。

    1.4K40编辑于 2022-11-11
  • 来自专栏NewBeeNLP

    双塔模型的瓶颈究竟在哪?

    但这些模型通常会带来更大的查询时延和更大的存储开销。 但是,单向量表示模型的性能瓶颈真的完全在于简单的点积交互吗? 「如果我们固定表示向量的维度,增大编码模型的尺寸,模型性能是不是也会像大规模预训练模型那样服从Scaling Law呢?」 另外,为了有效地利用大模型的容量优势,训练出泛化性能更好的模型,作者还设计了一个预训练+微调的训练策略。 而作者发现使用大模型除了能提指标,同时也提升了样本效率。作者尝试仅使用10%的训练数据来微调模型,并对比了不进行预训练的模型(GTR-FT)和进行预训练的模型(GTR),结果如下表所示。 一方面,随着模型的增大,除了GTR-PT(仅预训练)以外,其余模型的性能都变得越来越好;另一方面,微调对模型的域外泛化能力也有较大的影响,如果没有在MS MARCO数据集上微调,模型在BEIR基准上的NDCG

    47210编辑于 2024-04-26
  • 来自专栏NewBeeNLP

    文本匹配开山之作--双塔模型及实战

    作者 | 夜小白 整理 | NewBeeNLP 在前面一篇文章中,总结了Representation-Based文本匹配模型的改进方法, 基于表征(Representation)的文本匹配、信息检索 DSSM框架简要介绍 作为文本匹配方向的开山之作,已经有非常多的博客介绍了这个模型,这里我就简单介绍一下,重点放在后面训练源码的阅读。 模型结构 DSSM也是Representation-Based模型,其中Query端 Encoder 和 Doc端 Encoder都是使用 MLP实现,最后Score计算使用的是cosine similarity ,后续模型的改进很多都是使用更好的Encoder结构。 Encoder层处理很简单,就是MLP,计算公式如下: 可以看出就是标准的全连接层运算 相似度Score计算 DSSM中最后的相似度计算用的是 cosine similarity,计算公式如下: 模型训练好之后

    1.4K20发布于 2021-08-20
  • 来自专栏ShowMeAI研究中心

    ​大厂技术实现 | 腾讯信息流推荐排序中的并联双塔CTR结构 @推荐与计算广告系列

    巧妙并联CTR模型应用于双塔的方案。 使用LR学习"并联"的多个双塔的权重,LR 权重最终融入到 User Embedding 中,使得最终的模型仍然保持的内积形式。 图片二、并联双塔模型结构并联双塔模型可以分总分为三层: 输入层、表示层和匹配层 。对应图中的3个层次,分别的处理和操作如下。 五、腾讯业务效果以下为腾讯QQ浏览器小说推荐业务上的方法实验效果(对比各种单CTR模型并联双塔结构):图片5.1 团队给出的一些分析如下① CIN2 在单结构的双塔模型中的效果是最好的,其次是 DCN ② 并联的各双塔结构,各模型不共享底层 feature Embedding,分别训练自己的 Embedding。

    4.1K113编辑于 2022-08-15
  • 来自专栏深度学习自然语言处理

    ACL2022 | 融合标签语义的双塔BERT模型

    ---- 来源:炼丹笔记 作者:SinGaln 这是一篇来自于 ACL 2022 的文章,总体思想就是在 meta-learning 的基础上,采用双塔 BERT 模型分别来对文本字符和对应的label 1.1 架构 ▲图1.模型整体构架 从上图中可以清楚的看到,作者采用了双塔 BERT 来分别对文本的 Token 和每个 Token 对应的 label 进行编码。 在进行 Token 编码时,对应每个 通过 BERT 模型可以得到其对应的向量 ,如下所示: 这里需要注意的是 BERT 模型的输出取 last_hidden_state 作为对应 Token 的向量 ,表明了数据量越大,模型对于 label 语义的依赖越小。 双塔 BERT 代码实现(没有采用 metric-based 方法): #!

    72910编辑于 2022-07-21
  • 来自专栏炼丹笔记

    ACL 2022:融合标签语义的双塔BERT模型

    ↑↑↑关注后"星标"炼丹笔记 炼丹笔记·干货 SinGaln 这是一篇来自于 ACL 2022 的文章,总体思想就是在 meta-learning 的基础上,采用双塔 BERT 模型分别来对文本字符和对应的 1.1 架构 ▲图1.模型整体构架 从上图中可以清楚的看到,作者采用了双塔 BERT 来分别对文本的 Token 和每个 Token 对应的 label 进行编码。 在进行 Token 编码时,对应每个 通过 BERT 模型可以得到其对应的向量 ,如下所示: 这里需要注意的是 BERT 模型的输出取 last_hidden_state 作为对应 Token 的向量 ,表明了数据量越大,模型对于 label 语义的依赖越小。 双塔 BERT 代码实现(没有采用 metric-based 方法): #!

    1K11编辑于 2022-10-27
  • 来自专栏小小挖掘机

    RS Meet DL(72)-采样修正的双塔模型

    近几年来,随着深度学习的发展,双塔模型常用来用做召回阶段的模型双塔模型的一般结构如下: 可以看到,双塔模型两侧分别对{用户,上下文} 和 {物品} 进行建模,并在最后一层计算二者的内积。 对于每一个正样本,需要随机采样一些负样本,当物品数量十分巨大的时候,上述结构的双塔模型很难得到充分训练。 那么如何对双塔模型进行一定的改进呢? 2.4 Normalization and Temperature 文中还介绍了双塔模型在使用时两点工业经验。 3、双塔模型应用于Youtube推荐 双塔模型应用于Youtube视频推荐的框架如下: 训练Label:这里训练集Label并不是点击即为1,未点击为0。 线上结果同样如此: 5、总结 本文作为一篇工业实战类型的推荐文章,详细介绍了双塔模型在使用时的一些小技巧,一起简单来回顾下: 1)使用batch softmax optimization来训练模型

    3.7K40发布于 2019-12-19
  • 来自专栏炼丹笔记

    双塔模型没效果了?请加大加粗!

    炼丹笔记·必读论文 作者:十方 很多研究表明,双塔在一个域表现不错,在其他域表现不好了。一个广泛被认同的观点就是双塔仅仅用了最后一层的点积算分,这限制了模型的召回能力。 这篇论文<Large Dual Encoders Are Generalizable Retrievers>就否认了这个观点,通过扩展双塔的网络,就能提升模型对各个召回任务的效果,特别是那些跨域的。 值得注意的是,扩展双塔网络的capacity和预训练模型(像是bert)的扩展不同,因为有瓶颈层(用于点积的那层)的存在。 GTR T5模型算是大力出奇迹的典范了,靠着统一框架和所有NLP任务都转换成Text-to-Text任务,同样的模型,同样的loss,同样的训练,同样的编码解码,完成了所有的NLP任务。 本文用的T5的预训练模型,直接把模型capacity从百万提升到亿,模型架构如下所示: 编码query和passage用的是encoder的mean pooling,并固定输出是768维度。

    1.5K40编辑于 2022-02-11
  • 来自专栏工程师看海

    电源模块可以并联使用吗?!

    在实际工程中,经常出现一个电源模块无法满足负载的电流需求,或是想进一步提高DCDC效率,此时大部分工程师首先会想到并联电源来提高更大的电流,对于这样的设计,通常的评估结果是:不要粗暴的并联。 诚然,电源并联,有利于减小散热,提高效率,以及提供更大的输出功率,然而简单的并联设计并不是可靠的。 有人说电源并联时容易反灌,导致一个电源模块电流流入第二个电源模块,只要加入防止倒灌的二极管就可以了。 然而这考虑的还不够全面,实际应用过的工程师,可能会发现,并联电源模块时,有时候一个电源模块会持续输出,而另一个电源模块却没有输出,或者是某一路发热严重,结果没有达到预期。 但是在实际项目应用中,我还是不建议直接并联使用,最好选择支持放电均衡的电源模块并联,对于大部分通用电源,还是单用最好。

    1.6K40编辑于 2022-06-23
  • 来自专栏算法修养

    POJ 2609 Ferry Loading(双塔DP)

    Input 50 2500 3000 1000 1000 1500 700 800 0 Sample Output 6 port starboard starboard starboard port port双塔

    83760发布于 2018-04-26
  • 来自专栏算法修养

    HDU 3578 Greedy Tino(双塔DP)

    Sample Input 1 5 1 2 3 4 5 Sample Output Case 1: 7 双塔DP注意如果有一个橘子是0,那么就符合条件dp[i][j] 表示第i个橘子,两边差值#include

    55550发布于 2018-04-26
  • 来自专栏C语言及其他语言

    「优质题解」Hanoi双塔问题

    这道题的地址,想尝试的小伙伴可以来试哦: https://www.dotcpp.com/oj/problem.php?id=1109 这是大家熟悉的汉诺塔问题,每次只能移动一次,问最少的移动次数。 思

    1.4K10发布于 2019-12-23
  • 来自专栏秋枫学习笔记

    SIGIR21「华为」双塔模型中的CBNS负采样方法

    Two-Tower Recommenders https://dl.acm.org/doi/pdf/10.1145/3404835.3463032 1.背景 本文是SIGIR'21上的一篇短文,主要是对召回阶段的双塔模型中的负采样方法的改进 本文主要利用网络模型训练到一定程度后是相对稳定的,从而得到的embedding相差不大。 2.方法 双塔模型在这里不做详细介绍,主要就是对user和item的embedding求相似度从而得到推荐分数,最终进行召回。得分或者说概率计算方式如下,这里用到的是sampled softmax。 其中负样本的分布符合一元模型分布(unigram distribution),即和样本出现的频率有关,频率越高的越有可能被选为负样本。 3.结果 在不同召回模型上的实验结果表明所提采样方法能够使Recall和NDCG明显提升,这也说明利用之前的embedding的信息能够进一步促进模型的性能。

    1.3K30编辑于 2022-09-19
  • 来自专栏算法修养

    ZOJ 3331 Process the Tasks(双塔DP)

    Sample Input 4 1 1 2 2 1 2 2 1 2 1 2 90 95 3 1 3 1 3 1 3 Sample Output 1 1 90 3双塔DPdp[i][j] 表示执行第i个任务 ,机器A和机器B的时间差双塔DP 顾名思义可以把A机器和B机器看作是两座塔,如果把当前任务放在哪个塔上,那么哪个塔的高度就会增加每次放任务,都会有两个选择,要么放在A塔,要么放在B塔。

    53950发布于 2018-04-26
  • 来自专栏yuyy.info技术专栏

    P1096 Hanoi双塔问题

    // P1096 Hanoi双塔问题.cpp : 定义控制台应用程序的入口点。

    27610编辑于 2022-06-28
  • 来自专栏算法修养

    POJ 1015 Jury Compromise(双塔DP)

    2 0 0 Sample Output Jury #1 Best jury has value 6 for prosecution and value 4 for defence: 2 3 双塔

    70740发布于 2018-04-26
  • 来自专栏NLP/KG

    NLP文本匹配任务Text Matching 有监督训练:PointWise(单塔)、DSSM(双塔)、Sentence BERT(双塔)项目实践

    双塔模型:计算速度快,准确率相对低一些。 下面我们对这两种方法分别进行介绍。 0.1 单塔模型 单塔模型顾名思义,是指在整个过程中只进行一次模型计算。 这里的「塔」指的是进行「几次模型计算」,而不一定是「模型个数」,这个我们会放到双塔部分解释。 0.2 双塔模型 单塔模型的劣势很明显,有多少类别就需要算多少次。但事实上,这些类别都是不会变的,唯一变的只有新的评论数据。 这就是双塔模型的思想。双塔模型的「双塔」含义就是:两次模型计算。即,类别特征计算一次,评论特征计算一次。 而上图中左右两个两个模型可以使用同一个模型(这种方式叫:同构模型),也可以用两个不同的模型(这种方式叫:异构模型)。因此「双塔」并不一定代表存在两个模型,而是代表需要需要进行两次模型计算。

    1.7K20编辑于 2023-08-14
领券