[关闭]
@sambodhi 2018-05-21T05:49:41.000000Z 字数 2548 阅读 1811

语义文本相似度的研究进展

作者|Yinfei Yang、Chris Tar
译者|Zhiyong Liu
编辑|Debra Chen

AI前线导读:在生活中,信息检索、文档复制检测等领域都应用到“语义文本相似度”。Google已经使用深度学习技术开发了许多新方法来解析语言,如它们发布的首款面向大众的深度学习工具word2vec。不久前,Google研究了新的方法,并发布了文章来介绍这个新方法:Advances in Semantic Textual Similarity

近年来,基于神经网络的自然语言理解研究的最新进展,特别是学习语义文本表示方面的研究,可以实现真正新颖的产品,如自动写作、“Talk to Books”等。它还可以帮助提高各种自然语言任务的性能,这些任务的训练数据数量有限,比如在只有100个带标记的样本中构建强大的文本分类器。

在本文中,我们将讨论两篇关于Google语义表示研究最新进展的论文,以及两种可在TensorFlow Hub上下载的新模型,希望开发人员能够利用它们来构建令人兴奋的新应用。

语义文本相似度

在《从会话中学习语义文本相似度》(Learning Semantic Textual Similarity from Conversations)论文中,我们引入了一种学习语义文本相似度的句子表征的新方法。人们的直觉是,如果句子具有相似的响应分布,那么它们在语义上应该是相似的。例如,“How old are you ?”、“What is your age ?”都是关于年龄的问题,这些问题都可以用类似的回答作为响应,如“I am 20 years old”。相比之下,虽然“How are you ?”和“How old are you ?”包含了几乎相同的单词,但它们的含义却大相径庭,得到的响应也不同。

如果句子可以通过相同的反应来回答,那么句子在语义上是相似的。否则,它们在语义上是不同的。

在这项工作中,我们的目标是,通过一种响应式分类任务来学习语义相似度,具体思路是:给定一个会话输入,我们希望从一批随机选择的响应中,对正确的响应进行分类。但是最终目标是学习一种模型,它可以返回代表各种自然语言关系(包括相似度和相关性)的编码。通过添加另一个预测任务(在本例中是SNLIentailment数据集),并通过共享编码层强制执行,我们在相似度度量上获得了更好的性能,例如STSBenchmark(一个句子相似度基准度量)和CQA task B(衡量一个问题/问题相似任务)。这是因为逻辑推理与简单的等价性是完全不同的,它为学习复杂的语义表示提供了更多的借鉴意义。

对于给定的输入,分类被认为是针对潜在候选者的排序问题。

通用语句编码器

在“通用语句编码器(Universal Sentence Encoder)”中,我们引入了一种模型,它通过添加更多任务来扩展上述多任务训练,并通过一种类似skip-thought的模型联合训练,该模型可以预测给定文本范围内的句子。然而,我们没有使用最初的skip-thought模型中的编码器-解码器体系架构,而是通过共享编码器的方式,利用一个只有编码器的体系架构来驱动预测任务。这种方式使得训练时间大为减少,同时保留了各种传输任务的性能,包括情绪和语义相似度分类等。其目的是提供一个单一的编码器,可以支持尽可能广泛的应用,包括释义检测、相关性、聚类和自定义文本分类等。

通过对TensorFlow Hub通用语句编码器的输出进行配对语义相似比较。

正如我们的论文所描述的,通用语句编码器模型的一个版本使用了一个深度平均网络(deep average network,DAN,https://www.cs.umd.edu/~miyyer/pubs/2015_acl_dan.pdf)编码器,而第二个版本使用了一个更复杂的自参与网络架构:Transformer(https://ai.googleblog.com/2017/08/transformer-novel-neural-network.html)。

在“通用语句编码器”中阐述的多任务训练。通过共享编码器层/参数(图中灰框处)来连接各种任务和任务结构。

在更复杂的体系结构中,该模型比简单的DAN模型在各种情绪和相似度分类任务上表现得更好,而对于短句子来说,它只是稍微慢一些。然而,随着句子长度的增加,使用Transformer的模型计算时间显著增加,而DAN模型的计算时间几乎保持不变。

新模型

除了上述的通用语句编码器模型外,我们还在TensorFlow Hub上共享两个新模型:通用语句编码器Large(https://www.tensorflow.org/hub/modules/google/universal-sentence-encoder-large/1)和通用语句编码器Lite(https://www.tensorflow.org/hub/modules/google/universal-sentence-encoder-lite/1)。这两个都是预训练的TensorFlow模型,用于返回可变长度文本输入的语义编码。这些编码可用于语义相似度度量、相关性、分类或自然语言文本的聚类。

我们很高兴能与社区分享这项研究和这些模型。我们认为,我们在本文中所述的只是一个开始,还有一些重要的研究问题有待解决,比如将技术扩展到更多的语言(上面讨论的模型目前仅支持英语)。我们还希望进一步开发这项技术,以便它能够理解段落甚至文档级别的文本。在能够实现这些任务时,通用编码器才会有望真正实现。

原文链接: Advances in Semantic Textual Similarity
https://ai.googleblog.com/2018/05/advances-in-semantic-textual-similarity.html

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注