当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > 提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

来源:51CTO.COM 2023-04-30 07:48:14 0浏览 收藏

对于一个科技周边开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

文本生成任务通常采用 teacher forcing 的方式进行训练,这种训练方式使得模型在训练过程中只能见到正样本。然而生成目标与输入之间通常会存在某些约束,这些约束通常由句子中的关键元素体现,例如在 query 改写任务中,“麦当劳点餐” 不能改成 “肯德基点餐”,这里面起到约束作用的关键元素是品牌关键词。通过引入对比学习给生成的过程中加入负样本的模式使得模型能够有效地学习到这些约束。

现有的基于对比学习方法主要集中在整句层面实现 [1][2],而忽略了句子中的词粒度的实体的信息,下图中的例子展示了句子中关键词的重要意义,对于一个输入的句子,如果对它的关键词进行替换(e.g. cosmology->astrophysics),句子的含义会发生变化,从而在语义空间中的位置(由分布来表示)也会变化。而关键词作为句子中最重要的信息,对应于语义分布上的一个点,它很大程度上也决定了句子分布的位置。同时,在某些情况下,现有的对比学习目标对模型来说显得过于容易,导致模型无法真正学习到区分正负例之间的关键信息。

基于此,来自蚂蚁集团、北大等机构的研究者提出了一种多粒度对比生成方法,设计了层次化对比结构,在不同层级上进行信息增强,在句子粒度上增强学习整体的语义,在词粒度上增强局部重要信息。研究论文已被 ACL 2022 接收。

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

论文地址:https://aclanthology.org/2022.acl-long.304.pdf

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

方法

我们的方法基于经典的 CVAE 文本生成框架 [3][4],每个句子都可以映射成为向量空间中的一个分布,而句子中的关键词则可以看成是这个分布上采样得到的一个点。我们一方面通过句子粒度的对比来增强隐空间向量分布的表达,另一方面通过构造的全局关键词 graph 来增强关键词点粒度的表达,最后通过马氏距离对关键词的点和句子的分布构造层次间的对比来增强两个粒度的信息表达。最终的损失函数由三种不同的对比学习 loss 相加而得到。

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

句子粒度对比学习

在 Instance-level,我们利用原始输入 x、目标输出

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

及对应的输出负样本构成了句子粒度的对比 pair

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

。我们利用一个先验网络学习到先验分布

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,记为

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

;通过一个后验网络学习到近似的后验分布

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,分别记为

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

。句子粒度对比学习的目标就是尽可能的缩小先验分布和正后验分布的距离,同时尽可能的推大先验分布和负后验分布的距离,相应的损失函数如下:

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

其中为正样本或负样本,为温度系数,用来表示距离度量,这里我们使用 KL 散度(Kullback–Leibler divergence )[5] 来度量两个分布直接的距离。

关键词粒度对比学习

  • 关键词网络

关键词粒度的对比学习是用来让模型更多的关注到句子中的关键信息,我们通过利用输入输出文本对应的正负关系构建一个 keyword graph 来达到这个目标。具体来说,根据一个给定的句对

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,我们可以分别从其中确定一个关键词

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

(关键词抽取的方法我采用经典的 TextRank 算法 [6]);对于一个句子

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,可能存在与其关键词

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

相同的其他句子,这些句子共同组成一个集合

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,这里面每一个句子

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

都有一对正负例输出句子

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,他们分别又有一个正例关键词

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

和负例关键词

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

。这样在整个集合中,对任何一个输出的句子

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,可以认为它所对应的关键词

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

和每一个周围的

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

(通过句子之间的正负关系关联)之间都存在一条正边

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,和每一个周围的

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

之间都存在一条负边

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

。基于这些关键词节点和他们直接的边,我们就可以构建一个 keyword graph

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架


我们使用 BERT embedding[7] 来作为每个节点

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

的初始化,并使用一个 MLP 层来学习每条边的表示

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

。我们通过一个 graph attention (GAT) 层和 MLP 层来迭代式地更新关键词网络中的节点和边,每个迭代中我们先通过如下的方式更新边的表示:

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

这里

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

可以是

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

或者

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架


然后根据更新后的边

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,我们通过一个 graph attention 层来更新每个节点的表示:

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

这里

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

都是可学习的参数,

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

为注意力权重。为了防止梯度消失的问题,我们在

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

上加上了残差连接,得到该迭代中节点的表示

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

。我们使用最后一个迭代的节点表示作为关键词的表示,记为 u。

  • 关键词对比

关键词粒度的对比来自于输入句子的关键词

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

和一个伪装(impostor)节点

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

。我们将输入句子的输出正样本中提取的关键词记为

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,它在上述关键词网络中的负邻居节点记为

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,则

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,关键词粒度的对比学习 loss 计算如下:

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

这里

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

用来指代

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

或者

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,h(·) 用来表示距离度量,在关键词粒度的对比学习中我们选用了余弦相似度来计算两个点之间的距离。

  • 跨粒度对比学习

可以注意到上述句子粒度和关键词粒度的对比学习分别是在分布和点上实现,这样两个粒度的独立对比可能由于差异较小导致增强效果减弱。对此,我们基于点和分布之间的马氏距离(Mahalanobis distance)[8] 构建不同粒度之间对比关联,使得目标输出关键词到句子分布的距离尽可能小于 imposter 到该分布的距离,从而弥补各粒度独立对比可能带来的对比消失的缺陷。具体来说,跨粒度的马氏距离对比学习希望尽可能缩小句子的后验语义分布

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

之间的距离,同时尽可能拉大其与

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

之间的距离,损失函数如下:

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

这里

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

同样用来指代

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

或者

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

,而 h(·) 为马氏距离。

实验 & 分析

实验结果

我们在三个公开数据集 Douban(Dialogue)[9],QQP(Paraphrasing)[10][11] 和 RocStories(Storytelling)[12] 上进行了实验,均取得了 SOTA 的效果。我们对比的基线包括传统的生成模型(e.g. CVAE[13],Seq2Seq[14],Transformer[15]),基于预训练模型的方法(e.g. Seq2Seq-DU[16],DialoGPT[17],BERT-GEN[7],T5[18])以及基于对比学习的方法(e.g. Group-wise[9],T5-CLAPS[19])。我们通过计算 BLEU score[20] 和句对之间的 BOW embedding 距离(extrema/average/greedy)[21] 来作为自动化评价指标,结果如下图所示:

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

我们在 QQP 数据集上还采用了人工评估的方式,3 个标注人员分别对 T5-CLAPS,DialoGPT,Seq2Seq-DU 以及我们的模型产生的结果进行了标注,结果如下图所示:

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

消融分析

我们对是否采用关键词、是否采用关键词网络以及是否采用马氏距离对比分布进行了消融分析实验,结果显示这三种设计对最后的结果确实起到了重要的作用,实验结果如下图所示。

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

可视化分析

为了研究不同层级对比学习的作用,我们对随机采样的 case 进行了可视化,通过 t-sne[22] 进行降维处理后得到下图。图中可以看出,输入句子的表示与抽取的关键词表示接近,这说明关键词作为句子中最重要的信息,通常会决定语义分布的位置。并且,在对比学习中我们可以看到经过训练,输入句子的分布与正样本更接近,与负样本远离,这说明对比学习可以起到帮助修正语义分布的作用。

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

关键词重要性分析

最后,我们探索采样不同关键词的影响。如下表所示,对于一个输入问题,我们通过 TextRank 抽取和随机选择的方法分别提供关键词作为控制语义分布的条件,并检查生成文本的质量。关键词作为句子中最重要的信息单元,不同的关键词会导致不同的语义分布,产生不同的测试,选择的关键词越多,生成的句子越准确。同时,其他模型生成的结果也展示在下表中。

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

业务应用

这篇文章中我们提出了一种跨粒度的层次化对比学习机制,在多个文本生成的数据集上均超过了具有竞争力的基线工作。基于该工作的 query 改写模型在也在支付宝搜索的实际业务场景成功落地,取得了显著的效果。支付宝搜索中的服务覆盖领域宽广并且领域特色显著,用户的搜索 query 表达与服务的表达存在巨大的字面差异,导致直接基于关键词的匹配难以取得理想的效果(例如用户输入 query“新上市汽车查询”,无法召回服务 “新车上市查询”),query 改写的目标是在保持 query 意图不变的情况下,将用户输入的 query 改写为更贴近服务表达的方式,从而更好的匹配到目标服务。如下是一些改写示例:

提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架

以上就是《提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架》的详细内容,更多关于研究,搜索的资料请关注golang学习网公众号!

版本声明
本文转载于:51CTO.COM 如有侵犯,请联系study_golang@163.com删除
如何在 Windows 11 22H2 中启用桌面贴纸如何在 Windows 11 22H2 中启用桌面贴纸
上一篇
如何在 Windows 11 22H2 中启用桌面贴纸
如何使用 iOS 16 在 iPhone 和 iPad 上复制照片
下一篇
如何使用 iOS 16 在 iPhone 和 iPad 上复制照片
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 笔灵AI生成答辩PPT:高效制作学术与职场PPT的利器
    笔灵AI生成答辩PPT
    探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
    28次使用
  • 知网AIGC检测服务系统:精准识别学术文本中的AI生成内容
    知网AIGC检测服务系统
    知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
    42次使用
  • AIGC检测服务:AIbiye助力确保论文原创性
    AIGC检测-Aibiye
    AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
    39次使用
  • 易笔AI论文平台:快速生成高质量学术论文的利器
    易笔AI论文
    易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
    51次使用
  • 笔启AI论文写作平台:多类型论文生成与多语言支持
    笔启AI论文写作平台
    笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
    42次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码