服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

闲鱼深度语义相关性计算:融合检索和生成任务

日期: 来源:闲鱼技术收集编辑:涤生

引言

深度语义匹配在闲鱼搜索相关性计算中扮演重要角色,相关工作在文章[1]《闲鱼搜索相关性——体验与效率平衡的背后》中有简单的介绍。如题,本文介绍前段时间在深度匹配任务上的另一种尝试,通过检索和生成任务联合训练的方法提升相关性匹配的效果。

融合生成任务提示匹配主任务的思路并不新颖,而在BERT流行的今天,本文则参考[2]《鱼与熊掌兼得:融合检索和生成的SimBERT模型》,稍加改动,使用BERT为Backbone来重新实现类似的思路,模型暂且仍叫SimBert。

现状

闲鱼搜索的深度语义匹配前期做过多种尝试,但最终全量策略有两种:

  1. 1. 基于双塔语义匹配:以BERT为基模型的双塔模型,使用对比学习loss和难样本负采样的模型训练。预测阶段Query和Item的向量离线计算,线上计算二者的余弦距离作为相关性分。

  2. 2. 基于Later-Fusion的深度语义匹配:在双塔模型的基础上,增加多层全连接的后融合模块,全连接网络的输入为双塔模型的输出向量,最后使用人工标注数据训练分类任务(相关或不相关)。此外通过非双塔结构的交互式BERT匹配模型作为Teacher模型进行模型蒸馏。线上双塔模型仍为离线向量计算,多层全连接部署实时预测服务,预测Query和商品的相关性分。

图1 双塔和后融合模式的深度语义匹配

前者离线和在线分离,线上运行效率高,但模型匹配能力不足,缺少底层细粒度信息的对齐信息(Alignment);后者在双塔基础上将内积替换成全连接网络,并使用人工标注数据训练分类模型,虽然一定程度上强化了Query和Item信息的交互,但更多的还是基于上层抽象语义的特征融合,对于底层更基础信息的特征对齐仍然不足。

回头简单看,非双塔结构的BERT做语义匹配之所以强,是因为Query和Item在最底层的特征就开始进行Self-Attention交互,模型既可以考虑Token粒度的特征匹配,又能学习上层更加抽象的语义特征。但交互型BERT匹配模型虽然效果好,直接部署线上却比较困难,解决效率问题的方案很多,如蒸馏、量化等。而本文则考虑在匹配主任务基础上加入Item Title生成相关Query的辅助任务,通过生成任务中的Attention机制,来增加底层基础特征之间的Alignment信息。在预测阶段只使用主任务模块进行预测,实现效果和效率的平衡。

实现细节

方案的实现描述可以从模型、训练和目标函数以及训练数据的构造几个方面进行介绍。

模型

SimBert承接Later-Fusion的模型结构,底部为BERT双塔模型,分别提取Query和Item Title向量([CLS] Token的输出),而后通过多层全连接网络融合并进行相关性分类任务。不同的是在此基础上,SimBert在Item塔部分增加了生成Query的辅助任务,如图所示。

图2 融合匹配和生成任务的SimBert模型

生成任务部分的要点有两个:(1)Item塔的[CLS]需要遮住待生成Query部分的信息,避免对于匹配任务的特征穿越;(2)待生成Query的每个Token只能看到当前位置之前的信息,不能看到“未来”部分的信息,模拟自回归过程。

实现这两个目标只要对原BERT的Attention Mask矩阵进行变形即可,如对于正样本对<Query:手机,Title:出华为手机>的生成任务,Item塔的输入和对应的Attention Mask矩阵如下:

图3 生成任务特征输入和Attention Mask示意图

简单来说,Attention Mask矩阵中,白色的方块位置为0,灰色的位置为1,实现各个token位置的视野范围。如[CLS]所在的位置看不到生成域中的“手机”,因此提取出的向量仍只是表征Item部分信息。这部分更加详细的介绍可以参考论文UniLM[3],可以算是最早的在BERT结构中引入生成任务的工作之一。

训练和目标函数

模型的训练分为两个阶段,预训练和微调。预训练阶段同样是采用多任务,主任务是双塔向量匹配任务(剔除Later-Fusion全连接),目标是使用大规模质量相对低的数据先训练一个比较鲁棒的Bert Encoder,Loss函数则是对比学习中常用的InfoNCE。辅助任务为上述的生成任务,二者线性融合后作为预训练任务的Loss函数:

微调阶段,使用人工标注的高质量数据,同时加入Later-Fusion全连接,对应任务变为二分类任务,判别输入的Query和Item是否相关,融合生成任务后即为微调Loss函数:

其中为超参数,可根据实验效果调整。

数据

与训练过程对应,训练数据的构造同样包括两部分。在预训练阶段,对于匹配任务我们以点击日志为主,有点击行为的Query-Title对为正样本,取Batch内的随机样本为负样本。同时为了增加任务难度,对于Batch的构造进行了一定的设计:

(1)30%的Batch为随机样本;

(2)70%的Batch内为难负样本集合,如要求一个Batch内的数据为同父类目组成等。

由于训练数据的输入形式为正样本对集合,因此对于生成任务,可以和匹配任务共享数据,使用正样本对中的Title生成对应Query。

在微调阶段,我们使用历史积累的人工标注数据来进一步提升模型的准确率。数据的形式变为<Query, Title,Label(相关/不相关)>,适用于分类目标任务。对于生成任务,不相关的样本对则通过Loss Mask的方式不进行反向传播,做到只对正样本对进行Title到Query的生成。

离线与AB效果

本次实验对离线指标和在线指标都进行了对比,同样的训练方式,引入生成任务在最终的相关性任务准确率相对提升+3.6%;新模型上线同样取得不错的效果,人工Side by Side评测top query的badcase率-3.88%,随机query的badcase率-6.15%。

思考与优化方向

本文介绍了在闲鱼场景下实践使用BERT融合检索和生成任务的方案,当前实践过程相对粗糙,还没做细致的调参和策略调整,后续可以从以下三个方面做进一步优化:

(1)一方面补充更多的数据并进行数据增强尝试,另一方面通过主动学习的方法,并对人工标注数据做进一步清洗。数据清洗的原因是从模型预测来看,不少FN(False Negtive)样本,实际上是数据Label有误,FP同样有类似情况;

(2)引入知识和关键词信息,Case分析发现,即使是增加生成辅助任务或全交互的BERT匹配模型,仍还有一些核心属性匹配能力不足的情况,这部分计划尝试增加知识和关键词的监督信号,来强化核心词的匹配。

(3)引入更多维度的信息,一方面当前商品信息的输入单纯为Title,然而部分Case会有title信息量不足的情况,在闲鱼场景下更是如此,因此后续需要尝试增加更多域的信息,如描述关键词、结构化信息、多模态信息等;另一方面,Query侧也可以通过相似Query的挖掘进行相应关键词的补充。

参考文献

1、闲鱼搜索相关性——体验与效率平衡的背后

2、鱼与熊掌兼得:融合检索和生成的SimBERT模型:https://kexue.fm/archives/7427 

3、Unified Language Model Pre-training for Natural Language Understanding and Generation:https://arxiv.org/abs/1905.03197

相关阅读

  • 节后综合征如何满血复活?4招带你找回状态!

  • 告别春节吃喝养膘状态急速进入搬砖模式后你是否轻则神情呆滞、哈欠连天重则头晕眼花、恶心反胃无数次怀疑人生:“我真的需要这份工作吗?”如果你出现了以上症状很可能已经陷入
  • 如何使用滴答清单在忙碌的工作中保持平衡?

  • 作者简介Lin试图在忙碌琐碎的工作中抓住一根稻草的社畜我的工作状态非常忙碌,经常被很多突发的琐碎任务填满,不断被切分的时间和永远闪动的消息框,极大地损耗了我的注意力和专
  • 使用PyTorch-LSTM进行单变量时间序列预测!

  • ↓推荐关注↓作者Zain Baquar时间序列是指在一段时间内发生的任何可量化的度量或事件。尽管这听起来微不足道,但几乎任何东西都可以被认为是时间序列。一个月里你每小时的平
  • 3D to H5工作流应用手册 [理论篇]

  • 前言设计师需求中3D视觉平移到互动H5中的项目越来越多,three.js和PBR工作流的结合却一直没有被系统化地整理。和各位前端神仙一起做项目,也一起磕磕碰碰出了爱与痛的领悟。小
  • 那些年我们欠北落的图钱

  • 那些年都看过的图上周韭圈的小伙伴们寄了一份23版基金投资地图给我,同时羞涩地说,裴老师能不能在朋友圈帮推广一下?我毫不犹豫的说,不,我要免费专门为你们发一篇文章来推荐。大家
  • 展望2023 | 新视角下的多元资产配置

  • 2023 STRATEGY编者按:2022年,黑天鹅层出不穷。我们经历着百年不遇的疫情,75年以来欧洲与俄罗斯的首次直接冲突,40年来罕见的全球性通货膨胀,新的时代悄然到来,不确定性成为市场的
  • 兰陵王的2022年「年度复盘」报告

  • 时光匆匆如流水,哪有岁月可回头。树友们好久不见,我是兰陵王。好久没写文章了,实在有点想念大家,这是我在2023年写的第一篇文章。2023年的第一篇文章写啥好呢?老读者们都知道,自从

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 闲鱼深度语义相关性计算:融合检索和生成任务

  • 引言深度语义匹配在闲鱼搜索相关性计算中扮演重要角色,相关工作在文章[1]《闲鱼搜索相关性——体验与效率平衡的背后》中有简单的介绍。如题,本文介绍前段时间在深度匹配任务
  • 11月后百亿主观股票私募跑输大盘

  • 本文内容对合格投资者开放,观看转发视为您同意和了解以下要求。私募基金的合格投资者,是指具备相应风险识别能力和风险承担能力,投资于单只私募基金的金额不低于100万元,并且符
  • 三张图结束今年吧

  • 到大西北过年,风寒地冻,也无心在做最终的总结了。用一个瓜图(网络流传)、一张风格分位图(来源华泰)、一份业绩归因图(自制)结束今年,一切尽在不言中。预祝大家新年好!
  • 2022年TOP20海外私募,仅5家亏损!

  • 本文内容对合格投资者开放,观看转发视为您同意和了解以下要求。私募基金的合格投资者,是指具备相应风险识别能力和风险承担能力,投资于单只私募基金的金额不低于100万元,并且符
  • 私募基金产品择时表 | 工具包来了

  • 本文内容对合格投资者开放,观看转发视为您同意和了解以下要求。私募基金的合格投资者,是指具备相应风险识别能力和风险承担能力,投资于单只私募基金的金额不低于100万元,并且符
  • Chatgpt教你买基金 | 它竟然会打分

  • 本文内容对合格投资者开放,观看转发视为您同意和了解以下要求。私募基金的合格投资者,是指具备相应风险识别能力和风险承担能力,投资于单只私募基金的金额不低于100万元,并且符