0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用算法开发了一种新的自然语言生成解码方式

深度学习自然语言处理 来源:夕小瑶的卖萌屋 作者:Yimin_饭煲 2022-08-02 14:44 次阅读

相信大多数学习过人工智能课程的读者,当听到算法的时候,都会有一种既熟悉又陌生的感觉。说算法熟悉,是因为一听到这个算法,就想起那本厚厚的《人工智能——一种现代的方法》,想起这个算法似乎是人工智能课程考试的重点;说算法陌生,是因为大家现在在从事人工智能相关的研究和开发工作时,似乎又很少用到这个算法,大部分时间都花在了研究数据处理和处理实验设置上面。而在NAACL2022上,一群来自AI2的自然语言处理研究者们利用算法开发了一种新的自然语言生成解码方式,还被授予了NAACL2022 Best New Method paper。看起来已经过时的A*算法,居然能在深度学习时代有如此的妙用,看完这篇论文,笔者情不自禁地打开了《人工智能——一种现代的方法》,想看看还有什么经典算法可以深挖一下!

论文标题:
NEUROLOGIC A*esque Decoding: Constrained Text Generation with Lookahead Heuristics

论文链接:
https://arxiv.org/pdf/2112.08726.pdf

问题背景

自然语言生成任务一般指给定一个输入序列,生成一个输出序列。目的是解出使得目标函数最大化的序列,其中, , 而衡量对约束条件的满足。传统的Beam Search不考虑全局的最优,而是最优化当前步骤添加的Token.

为了达到全局最优的效果,需要满足如下的优化目标

主要方法

前向启发算法

直接优化全局最优目标面临着搜索空间过大的问题。而A算法可以被用来解决这个搜索问题。A算法是一个最优优先的搜索算法,可以解决这样形式的搜索问题:

其中是迄今为止的分数,是对于未来分数的启发式估计。因此我们将优化目标修改为如下形式

同时,需要限制前向搜索的长度为,避免模型无限制地向前搜索

在前向生成的过程中有几种不同的方法。方法只生成一个序列,从开始,每次选择概率最大的Token。方法采用插值的思想,混合方法和随机选择一个Token的概率分布。方法从开始进行步的Beam Search,选择前个概率最大的序列, 而方法则是直接从按照概率进行采样。

无限制生成

在无限制生成的场景下,使用的优化函数为

其中控制的是对未来估计的重视程度,类似于加权算法

受限制生成

在受限制生成任务上,作者们基于之前的工作NeuroLogic进行改进。首先我们简要介绍一下NeuroLogic方法。首先,将对生成文本的限制表示为合取范式。其中每一个表示一个限制条件,。NeuroLogic的优化目标可以写为

其中远大于0,用来惩罚不满足的约束。在每一步搜索时,NeuroLogic利用如下的打分函数进行计算

其中是约束条件的前缀,这个优化函数的目标是奖励那些满足约束条件的样本。接下来,作者们加入了前向启发函数

这样的前向启发函数有两个好处,如果是满足多Token约束的一个Token,前向启发函数包含了全部约束的分数,如果不是约束的一部分,如果被选中,这一前向策略能考虑到未来约束的分数。

实验结果

无限制生成

0b4c6ef6-118e-11ed-ba43-dac502259ad0.png

作者们在故事生成任务上开展了实验,可以发现提出的方法不论是在流畅性,丰富性还是人工评估上都有着很好的表现。

受限制生成

在受限制生成方面,作者们在常识生成,机器翻译,表格到文本生成,问题生成等任务上开展了实验。在这里展示常识生成方面的结果。这一任务的主要内容是给定一系列概念,利用全部概念生成一个合理的句子.

0b65b0be-118e-11ed-ba43-dac502259ad0.png

可以发现,作者们提出的方法在多个指标上都明显超越了基线模型,取得了很好的效果。

0b779a5e-118e-11ed-ba43-dac502259ad0.png

从文章中给出的例子来看,作者们提出的方法确实有着更好的生成效果。

结语

本文的方法实现并不复杂,所用到的原理和思想也是非常经典的人工智能算法,但却取得了非常不错的性能,一举摘得了NAACL2022的最佳方法论文。看来,好的研究并不是追逐热点,调参魔改结构的增量式创新,而是打好数学基础,深入地思考研究问题,广泛接触各个领域的算法,才能在发现领域的关键待解决问题时取得成果~

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4454

    浏览量

    90749
  • 人工智能
    +关注

    关注

    1776

    文章

    43839

    浏览量

    230589
  • 深度学习
    +关注

    关注

    73

    文章

    5237

    浏览量

    119904

原文标题:NAACL最佳方法论文 | 课本上的A*搜索算法可以提升文本生成效果!

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

收藏 人收藏

    评论

    相关推荐

    一种基于自然语言的轨迹修正方法

    本研究提出了ExTraCT框架,利用自然语言进行轨迹校正。该框架结合了大型语言模型(LLMs)用于自然语言理解和轨迹变形函数。ExTraCT能够根据场景在线
    的头像 发表于 01-19 10:45 182次阅读
    <b class='flag-5'>一种</b>基于<b class='flag-5'>自然语言</b>的轨迹修正方法

    自然语言处理的研究内容

    自然语言处理(NLP)的最新发展改变了我们与AI系统的交互方式: 1. 预训练模型:像 GPT-3 这样的模型已经进步,使人工智能能够在聊天机器人和虚拟助手中生成更连贯的上下文感知响应。 2.
    的头像 发表于 01-18 16:39 200次阅读

    2023年科技圈热词“大语言模型”,与自然语言处理有何关系

    电子发烧友网报道(文/李弯弯)大语言模型(LLM)是基于海量文本数据训练的深度学习模型。它不仅能够生成自然语言文本,还能够深入理解文本含义,处理各种自然语言任务,如文本摘要、问答、翻译
    的头像 发表于 01-02 09:28 1385次阅读

    硬件加速自然语言理解解决方案

    电子发烧友网站提供《硬件加速自然语言理解解决方案.pdf》资料免费下载
    发表于 09-13 10:45 0次下载
    硬件加速<b class='flag-5'>自然语言</b>理解解决方案

    自然语言处理和人工智能的区别

      自然语言处理(Natural Language Processing,NLP)是人工智能(AI)中的一个分支,它利用计算机技术对自然语言进行处理,使得电脑能够理解和操作人类语言
    发表于 08-28 17:32 928次阅读

    自然语言处理和人工智能的概念及发展史 自然语言处理和人工智能的区别

    自然语言处理(Natural Language Processing, NLP)的定义是通过电脑软件程序实现人们日常语言的机器自动处理。为了帮助计算机理解,掌握自然语言处理的基本原理,需要涉及到
    发表于 08-23 18:22 528次阅读

    自然语言处理的概念和应用 自然语言处理属于人工智能吗

      自然语言处理(Natural Language Processing)是一种人工智能技术,它是研究自然语言与计算机之间的交互和通信的一门学科。自然语言处理旨在研究机器如何理解人类
    发表于 08-23 17:31 852次阅读

    自然语言处理的优缺点有哪些 自然语言处理包括哪些内容

    自然语言处理(Natural Language Processing)是一种人工智能的技术及领域,它致力于让计算机理解及处理人类语言。它可以帮助计算机对人类语言进行处理、理解和
    发表于 08-23 17:26 2551次阅读

    亚马逊云科技结合大语言模型和自然语言问答,加速的数据决策

    亚马逊云科技近日宣布,正在将Amazon Bedrock提供的大语言模型能力与支持自然语言问答的Amazon QuickSight Q相结合,在Amazon QuickSight中提供生成式BI功能
    的头像 发表于 08-14 19:04 390次阅读
    亚马逊云科技结合大<b class='flag-5'>语言</b>模型和<b class='flag-5'>自然语言</b>问答,加速的数据决策

    自然语言处理包括哪些内容 自然语言处理技术包括哪些

    Classification and Clustering):将文本按照相似性进行分类或聚类。 信息提取(Information Extraction):从文本中提取有用的信息。 自然语言生成(Natural Language Generation):
    的头像 发表于 08-03 16:22 3890次阅读

    PyTorch教程-16.7。自然语言推理:微调 BERT

    16.7。自然语言推理:微调 BERT¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook in Colab Colab
    的头像 发表于 06-05 15:44 996次阅读
    PyTorch教程-16.7。<b class='flag-5'>自然语言</b>推理:微调 BERT

    PyTorch教程-16.5。自然语言推理:使用注意力

    16.5。自然语言推理:使用注意力¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook in Colab Colab
    的头像 发表于 06-05 15:44 342次阅读
    PyTorch教程-16.5。<b class='flag-5'>自然语言</b>推理:使用注意力

    PyTorch教程16.4之自然语言推理和数据集

    电子发烧友网站提供《PyTorch教程16.4之自然语言推理和数据集.pdf》资料免费下载
    发表于 06-05 10:57 0次下载
    PyTorch教程16.4之<b class='flag-5'>自然语言</b>推理和数据集

    PyTorch教程16.7之自然语言推理:微调BERT

    电子发烧友网站提供《PyTorch教程16.7之自然语言推理:微调BERT.pdf》资料免费下载
    发表于 06-05 10:52 0次下载
    PyTorch教程16.7之<b class='flag-5'>自然语言</b>推理:微调BERT

    PyTorch教程16.5之自然语言推理:使用注意力

    电子发烧友网站提供《PyTorch教程16.5之自然语言推理:使用注意力.pdf》资料免费下载
    发表于 06-05 10:49 0次下载
    PyTorch教程16.5之<b class='flag-5'>自然语言</b>推理:使用注意力