文本生成任务通常采用 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 改写为更贴近服务表达的方式,从而更好的匹配到目标服务。如下是一些改写示例:
以上是提升支付宝搜索体验,蚂蚁、北大基于层次化对比学习文本生成框架的详细内容。更多信息请关注PHP中文网其他相关文章!

尽管它无法提供训练有素的治疗师的人类联系和直觉,但研究表明,许多人很乐意与相对无面和匿名的AI机器人分享他们的担忧和担忧。 这是否总是好我

人工智能(AI)是一种技术数十年的技术,正在彻底改变食品零售业。 从大规模的效率提高和成本降低到精简的各种业务功能的流程,AI的影响是Undeniabl

让我们来谈谈。 对创新AI突破的分析是我正在进行的AI中正在进行的福布斯列覆盖的一部分,包括识别和解释各种有影响力的AI复杂性(请参阅此处的链接)。此外,对于我的comp

保持专业形象需要偶尔的衣柜更新。 在线购物方便时,它缺乏面对面尝试的确定性。 我的解决方案? AI驱动的个性化。 我设想AI助手策划服装Selecti

谷歌翻译新增语言学习功能 据Android Authority报道,应用专家AssembleDebug发现,最新版本的谷歌翻译应用包含一个新的“练习”模式的测试代码,旨在帮助用户通过个性化活动来提高他们的语言技能。此功能目前对用户不可见,但AssembleDebug能够部分激活它并查看其一些新的用户界面元素。 激活后,该功能会在屏幕底部添加一个新的“毕业帽”图标,标有“Beta”徽章,表明“练习”功能最初将以实验形式发布。 相关的弹出提示显示“练习为你量身定制的活动!”,这意味着谷歌将生成定制的

麻省理工学院的研究人员正在开发Nanda,这是为AI代理设计的开创性的Web协议。 Nanda的缩写是网络代理和分散的AI,通过添加Internet功能,使AI Agen能够构建人类的模型上下文协议(MCP)。

Meta的最新冒险:与Chatgpt竞争的AI应用程序 Facebook,Instagram,WhatsApp和Threads的母公司Meta正在启动新的AI功能应用程序。 这个独立的应用程序Meta AI旨在直接与Openai的Chatgpt竞争。 杠杆

导航AI网络攻击的上升潮流 最近,CISO的杰森·克林顿(Jason Clinton)拟人化,强调了与非人类身份相关的新兴风险 - 作为机器对机器的通信增殖,维护这些“身份”


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版
中文版,非常好用

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)