「谷歌大脑」提出通过对长序列进行摘要提取,AI可自动生成「维基百科」

原文来源:arXiv

作者:Peter J. Liu、Mohammad Saleh、Etienne Pot、Ben Goodrich、Ryan Sepassi、Łukasz Kaiser、Noam Shazeer

「雷克世界」编译:嗯~阿童木呀


最近,经过研究证明,生成英文维基百科(English Wikipedia)文章的方法可以概述为源文档的多文档摘要。我们使用抽取式文摘(extractive summarization)来粗略地识别出显要的信息,以及一个神经抽象模型以生成文章。对于抽象模型,我们引入了一个只能解码的体系结构,它可以扩展性地处理非常长的序列,远比用于序列转换中的典型的编码器——解码器体系结构长得多。我们的研究表明,这个模型可以生成流畅、连贯的多句话段落,甚至整个维基百科的文章。当给出参考文献时,研究结果表明,它可以从诸如复杂度、ROUGE分数和人类评价所反映的信息中提取出相关的事实信息。


序列—序列框架已被证明在诸如机器翻译这样的自然语言序列转换任务上取得了成功。最近,神经技术已经被应用于对新闻文章进行单一文档、抽象(释义)文本摘要的处理。在此前的研究中,监督模型的输入范围包括文章的第一句到整个文本,并且要对其进行端到端的训练以预测参考摘要。由于语言理解是生成流畅摘要的先决条件,因此进行这种端到端的操作需要大量的并行的文章—摘要对。


图1:T-DMCA模型中使用的自注意力层(self-attention layers)的架构。每个注意力层都将一个字符序列作为输入,并产生一个相似长度的序列作为输出。左图:转换器解码器中使用的原始自注意。中:内存压缩的注意力(Memory-compressed attentionyers),减少了键/值的数量。右:将序列分割成单个较小的子序列的局部注意力。然后将这些子序列合并在一起以得到最终的输出序列。


相反,我们考虑了多文档摘要的任务,其中,输入是相关文档的集合且其摘要是精炼过的。以往研究工作的着重点在提取式摘要上,从输入中选择句子或短语以形成摘要,而不是生成新的文本。抽象神经方法的应用存在一定的局限性,一个可能的原因是缺少大型的已标记数据集。


在这项研究中,我们将英文维基百科视为一个多文档摘要的监督式机器学习任务,其中,输入由维基百科主题(文章标题)和非维基百科参考文献的集合组成,目标是维基百科的文章文本。我们对第一次试图抽象地生成基于参考文本的维基百科文章的第一部分或引文。除了在任务上运行强大的基线模型之外,我们还将转换器(Transformer)体系结构(Vaswani 等人于2017年提出)修改为只包含一个解码器,在较长的输入序列情况下,与循环神经网络(RNN)以及Transformer编码器—解码器模型相比,它具有更好的表型性能。最后,研究结果表明,我们的建模改进使得我们能够生成完整的维基百科文章。


图2:用于各种提取方法的ROUGE-L F1,抽象模型的贡献表现为用于最佳组合的d tf-idf-T-DMCA模型


用于神经抽象摘要的其他数据集


神经抽象摘要(Neural abstractive summarization)是Rush等人(于2015年)提出的,其中,他们使用包括来自多家出版商的新闻报道在内的英文Gigaword语料库(Graff和Cieri于2003年提出)对标题生成模型进行训练。然而,这个任务更像是句子的释义,而不是摘要,因为只有文章的第一句话才被用以预测标题和另一句话。而在ROUGE(一种经常用于摘要的自动度量)和人类评估((Chopra等人于2016年提出))中,基于RNN具有注意力(attention)的编码器—解码器模型(seq2seq),在该任务上具有良好的性能表现。


2016年,Nallapati等人通过修改每日邮报(Daily Mail)和美国有线电视新闻网(CNN)中配有故事亮点的新闻报道的提问数据集,提出了一个抽象的摘要数据集。这个任务比标题生成更为困难,因为亮点中所使用的信息可能来自文章的多个部分,而不仅仅是第一句。数据集的一个缺点是,它有一个较少数量级的并行样本(310k VS 3.8M)以供学习。标准具有注意力的 seq2seq模型性能表现并不太好,并且还使用了大量的技术以提高性能。另一个不利之处是,目前还不清楚制定故事亮点的准则是什么,而且很显然的是,两家新闻出版商在文体上存在者显著的差异。

 

图3:在用于不同模型体系结构的组合语料库上,比较了复杂度和用于tf-idf提取问题中L之间的关系。对于T-DMCA来说,E表示专家级混合层(mixture-of-experts)的大小。


在我们的研究中,我们也对神经抽象模型进行了训练,但是是在维基百科的多文档机制中。从表1可以看出,输入和输出文本通常要大得多,并且根据文章的不同而有着明显的差异。一般来说,摘要(维基百科的主要内容)往往是多个句子,有时是多个段落,且就像维基百科风格手册中所提倡的那样,是以一种相当统一的风格编写的。但是,输入文档可能包含任意来源的任意风格的文档。


 

表1:摘要数据集的数量级输入/输出大小和一元(unigrams)回调


我们还在表1中给出了ROUGE-1给定输入的输出回调(recall)得分,即同时出现在输入输出中的一元(unigrams)/单词的比例。更高的分数对应于一个更易于进行抽取式摘要处理的数据集。特别是,如果输出完全嵌入到输入的某个地方(例如wiki复制),则得分将为100。相对于对于其他摘要数据集分数为76.1和78.7,而我们的分数为59.2的情况下,表明我们的方法是最不适合进行纯抽取方法的。


涉及维基百科的任务


其实,有许多研究工作都将维基百科用于机器学习任务中,包括问题回答(questionanswering)、信息提取(information extraction)以及结构化数据中的文本生成等。


与我们最为接近的涉及维基百科生成的研究工作是Sauper和Barzilay(于2009年)所进行的,其中文章是使用学习模板从参考文档中抽取式(而不是像我们案例中的抽象式)生成的。维基百科文章限于两类,而我们使用的是所有文章类型。参考文档是从搜索引擎获的,其中,用作查询的维基百科主题与我们的搜索引擎参考颇为相似。不过,我们也会在维基百科文章的“参考文献”部分中显示文档的结果。


图4:同一样本在不同模型中的预测结果显示。


在图4中,我们展示了来自三个不同模型(使用tf-idf提取和组合语料库)的预测结果,以及维基百科的基本事实。随着复杂度的降低,我们看到模型的输出在流畅性、事实准确性和叙述复杂性方面都有所改善。特别是,T-DMCA模型提供了维基百科版本的一个可替代性选择,并且更为简洁,同时提到了关键事实,例如律师事务所所在位置,什么时间、如何形成的,以及该事务所的崛起和衰落。


图5:来自Transformer-ED,L = 500的翻译


在模型输出的手动检查中,我们注意到一个意想不到的副作用:模型试着学习将英文名称翻译成多种语言,例如,将Rohit Viswanath翻译成印地语(见图5)。虽然我们没有对翻译进行系统的评估,但我们发现它们往往是正确的,而且在维基百科文章本身中并没有发现它们。我们还证实,一般情况下,翻译不仅仅是从诸如示例样本这样的源头复制的,其中,目标语言是不正确的(例如名称从英文到乌克兰语的翻译)。


我们已经证明,维基百科的生成可以看作是一个多文档摘要问题,它具有一个大的、并行的数据集,并且演示了一个用以实现它的两阶段的抽取—抽象框架。第一阶段使用的粗提取方法似乎对最终性能有显著的影响,这表明进一步的研究将会取得成果。在抽象阶段,我们引入了一种全新的、仅具有解码器序列的转换模型,能够处理非常长的输入—输出样本。该模型在长序列上的性能表现明显优于传统的编码器—解码器架构,从而使得我们能够在基于许多参考文献的条件下,生成连贯且信息丰富的维基百科文章。


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。由互联网进化论作者,计算机博士刘锋与中国科学院虚拟经济与数据科学研究中心石勇、刘颖教授创建。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis基本用法学习(C#调用CSRedisCore操作redis)

除了NRedisStack包,csredis也是常用的redis操作模块(从EasyCaching提供的常用redis操作包来看,CSRedis、freeredis、StackExchange.Redis应该都属于常用redis操作模块),本文学习使用C#调用CSRedis包操作redis的基本方式…

简明Python教程学习笔记_3_模块

模块 如果你想要在其他程序中重用很多函数,那么你该如何编写程序呢?你可能已经猜到了,答案是使用模块。模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。 pyt…

年轻的程序员该如何规划自己的未来

下面是网友良少给我的回信,觉得其中一些内容具有警世作用,征得良少本人同意后,特公开其回信-------------------------------------------------------------------------------------------------------------------------- 孝祥:您好!非常感谢您的邀请…

C++学习之路 | PTA乙级—— 1006 换个格式输出整数 (15分)(精简)

1006 换个格式输出整数 (15分) 让我们用字母 B 来表示“百”、字母 S 表示“十”&#xff0c;用 12…n 来表示不为零的个位数字 n&#xff08;<10&#xff09;&#xff0c;换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234&#xff0c;因为它有 …

python: 使用socket实现局域网不同主机通信。解决ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

目录1 socket的使用1.1 TCP方法1.2 UDP方法2 局域网内连接2.1总结1 socket的使用 1.1 TCP方法 在socket中使用socket.socket建立会话&#xff0c;如果是服务器&#xff0c;需要绑定服务器地址和端口号&#xff0c;然后进行循环监听&#xff0c;当有客户端连接时再接收数据。 …

Replace Parameter with Explicit Methods(以明确函数取代参数)

函数的行为&#xff0c;完全取决于参数值 public void setValue(final String name, final int value) {if ("height".equals(name)) {this.height value;return;}if ("width".equals(name)) {this.width value;return;}Assert.shouldNeverReachHere();…

德勤:2018年科技、传媒和电信行业未来趋势预测

来源&#xff1a;亿欧近日&#xff0c;德勤发布了《2018科技、传媒和电信行业预测》报告&#xff0c;对世界与中国的科技、传媒和电信行业在未来1-5年的趋势进行了预测。该报告通过与世界各国行业主管和评论家的数百场访谈及对世界各地数万名消费者进行的调查&#xff0c;分析了…

简明Python教程学习笔记_4_数据结构

在Python中有三种内建的数据结构——列表、元组和字典。 列表 list是处理一组有序项目的数据结构&#xff0c;即你可以在一个列表中存储一个 序列 的项目。假想你有一个购物列表&#xff0c;上面记载着你要买的东西&#xff0c;你就容易理解列表了。只不过在你的购物表上&…

動態修改SiteMapPath路徑

http://www.purecs.net/Threads/t376.aspx在網頁上放置一個SiteMapPath可以提供使用者一個清楚的瀏覽路標指示&#xff0c;如果你的SiteMap是靜態不會變動的倒是很簡單&#xff0c;只要編寫好一個XML檔放上去&#xff0c;其它的事就可以不用管了&#xff0c;但是在動態網頁中Si…

C++学习之路 | PTA乙级—— 1007 素数对猜想 (20分)(精简)

1007 素数对猜想 (20分) 让我们定义d ​n ​​ 为&#xff1a;d ​n ​​ p ​n1 ​​ −p ​n ​​ &#xff0c;其中p ​i ​​ 是第i个素数。显然有d ​1 ​​ 1&#xff0c;且对于n>1有d ​n ​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给…

python: SHA256算法的实现和消息的哈希散列值计算

目录1 SHA2562 实现原理2.1 消息预处理2.2 使用的常量和循环移位函数2.3 主循环3 结果4 对中文编码1 SHA256 SHA256是SHA-2下的一个子算法&#xff0c;与之类似的还有SHA224、SHA384、SHA512&#xff0c;算法原理基本一致。 哈希算法通过对消息进行计算&#xff0c;生成一定长…

财报上的云计算战场: 巨头们垄断加剧

来源&#xff1a; 第一财经一周之内&#xff0c;四大云业务巨头公司前后脚发布财报。亚马逊的云业务&#xff08;AWS&#xff09;依然跑在了最前面&#xff0c;以174亿美元排在首位。微软、谷歌、阿里巴巴也没有放慢步伐。阿里云去年累计的营收超过了百亿&#xff1b;微软的Azu…

Preserve Whole Object(保持对象完整)

从某个对象中取出若干值&#xff0c;将它们作为某一次函数调用的参数 int low daysTempRange().getLow(); int height daysTempRange().getHigh(); withinPlan plan.withinRange(low, high); 重构&#xff1a;改为传递整个对象 withinPlan plan.withinRange(daysTempRan…

简明Python教程学习笔记_5_解决问题

问题 我提出的问题是&#xff1a; 我想要一个可以为我的所有重要文件创建备份的程序。 尽管这是一个简单的问题&#xff0c;但是问题本身并没有给我们足够的信息来解决它。进一步的分析是必需的。例如&#xff0c;我们如何确定该备份哪些文件&#xff1f;备份保存在哪里&#…

【开始研究Community Server,转贴一点东西】Community Server资料收集

Community Server学习资料 uGoer 系列文章 Community Server专题一&#xff1a;概述Community ServerCommunity Server专题二&#xff1a;体系结构Community Server专题&#xff1a;附件(DOC&PPT)--2005年10月10日更新Community Server专题三&#xff1a;HttpModuleCommuni…

python实现RSA算法,对数据进行加密认证

RSA算法RSA一、数学原理二、实现代码1 生成素数2 生成秘钥3 对数据进行加密、解密总结RSA RSA是一种非对称加密体制&#xff0c;由公钥和私钥组成&#xff0c;数学原理是实数域的模余法。在使用私钥对数据进行加密后&#xff0c;可用公钥对数据进行解密。 在RSA算法中&#xf…

C++学习之路 | PTA乙级—— 1008 数组元素循环右移问题 (20分)(精简)

1008 数组元素循环右移问题 (20分) 一个数组A中存有N&#xff08;>0&#xff09;个整数&#xff0c;在不允许使用另外数组的前提下&#xff0c;将每个整数循环向右移M&#xff08;≥0&#xff09;个位置&#xff0c;即将A中的数据由&#xff08;A ​0 ​​ A ​1 ​​ ⋯A …

他研究了5000家AI公司,说人工智能应用该这么做!

来源&#xff1a;公众号InfoQ编辑&#xff1a;陈思 Eva&#xff1b;视频剪辑&#xff1a;汪春良 概要&#xff1a;本文作者 Henry Shi是美国人工智能的博士&#xff0c;连续创业者&#xff0c;专注于 AI 领域的早期投资&#xff08;AI List Capital管理合伙人&#xff09;。无…

Replace Parameter with Methods(以函数取代参数)

对象调用某个函数&#xff0c;并将其结果传递给另一个函数 int basePrice quantity * itemPrice; double discountLevel getDiscountLevel(); double finalPrice discountPrice(basePrice, discountLevel); 重构&#xff1a;让参数接受者移除该项参数&#xff0c;并直接调…

简明Python教程学习笔记_6_面向对象编程

面向对象编程&#xff1a;https://www.liaoxuefeng.com/wiki/897692888725344/923030496738368面向对象高级编程&#xff1a;https://www.liaoxuefeng.com/wiki/897692888725344/9230305380126401、类、对象 类 和 对象 是面向对象编程的两个主要方面。 类 是创建一个 新类型&a…