昨日,Google Research 发布博客称开源了在 Annotated English Gigaword 上进行新闻标题生成任务的 TensorFlow 模型代码:https://github.com/tensorflow/models/tree/master/textsum。
人们每天都依赖大量信息源,从新闻到社交媒体推送,再到各种搜索结果。因此,开发出能够自动提取长文本摘要的机器学习模型对消化如此大量的信息非常有帮助,这也是 Google Brain 团队的长期目标。
摘要也可作为对机器阅读理解能力的测试。为了更好的进行摘要,机器学习模型需要能够理解文本并提取重要信息,这对计算机而言是具有高度挑战性的任务,特别是在文本长度增加时。
为努力推动这一研究的前进,我们开源了在 Annotated English Gigaword 上进行新闻标题生成任务的 TensorFlow 模型代码。Annotated English Gigaword 是一个在机器摘要研究中经常使用的数据集。我们也详细说明了取得比如今公开的顶级模型(在常用的度量标准上)更好成果的超参数。下面,我们也提供了由该模型生成的样本。
提取和概括摘要
进行摘要的一种方式是提取文档中因一些度量标准(例如,逆文档频率)被认为有趣的部分内容,并将它们结合在一起形成摘要。里面的算法被称为提取摘要。
原始文本: Alice and Bob took the train to visit the zoo. They saw a baby giraffe, a lion, and a flock of colorful tropical birds.
提取摘要: Alice and Bob visit the zoo. saw a flock of birds.
上面我们提取了原始文本中加粗的词,并将它们连起来形成一个摘要。我们可以看到,提取摘要有时让句子读起来很怪,语法也很奇怪。
另一种方法是像人一样做简单摘要,这种方法不会强加以提取限制,允许改变措辞。这种方法被称为概括摘要(abstractive summarization)。
概括摘要: Alice and Bob visited the zoo and saw animals and birds.
在这个例子中,我们用了几个原始文本中没有的词,用数量差不多的词保留了原始文本中包含的更多的信息。所以我们当然更倾向于使用概括摘要,但是一个算法要怎么做概括摘要呢?
关于 TensorFlow 模型
事实证明它可以用于更短的文本,在这个模型中,能用序列到序列的深度学习技巧以端到端的方式进行摘要,类似于让收件箱做智能回复。特别地是,我们可以训练这类模型来产生非常好的新闻标题。在这个案例中,该模型读取了文章文本,并写下一条适当的标题。
为了了解该模型产生了什么,你可以看一下下面的例子。第一栏显示新闻的第一句话作为模型输入,第二栏显示为模型写出的标题。
未来的研究
我们已经观察到,由于新闻标题的天然性质,该模型只要读取文章开头的几个句子就能生成较好的标题。但是这项任务只是很好地证明了这个概念,我们要开始寻找比新闻文章更难的数据集,需要读取整个文档来生成好的摘要。在这些任务中,从头开始训练这个模型架构不需要做那些我们正在研究的其他技术中需要做的事情,但是我们以它为基准。我们希望这个开源也能作为其他研究者的摘要研究的基准。