“躲避”or“鸭子”:看深度学习如何解释多义词
2018-10-15 12:27
脱离上下文时,每个英文单词都有多重含义。例如,“bank”可以指银行或河岸;“Fair”可以指展览会,也可以指对展览会的评价;“Duck”可以是躲避伤害的动作,也可以指鸭子。
对于人类来说搞清楚一个单词在某场景中适用的含义是非常简单的。但是,对于自然语言处理模型就是另一回事了。
近些年已经出现很多用于解析文本的AI工具,但是当涉及到多重含义的单词时,这些工具往往会陷入困境。来自艾伦人工智能研究所(Allen Institute for Artificial Intelligence)和华盛顿大学的研究人员正在努力解决这一难题,他们使用了可以根据上下文来确定英文单词含义的神经网络。
向前和向后阅读
通常,NLP模型通过词向量(在每个单词中附加语言含义和单词语法的基础元素)中的结构化数据进行训练。此算法基于假设每个单词只有一种向量表示,但实际上英文单词并非如此。
研究人员利用名为“ELMo”的神经系统打破了这一假设,此神经系统可以为每个单词创造出无限数量的向量。
“‘ELMo’是‘Embeddings from Language Models’的缩写,而不是毛茸茸的红色芝麻街角色”,论文“Deep contextualized word representations”的第一作者Matthew Peters解释道。
ELMo喜欢阅读:这不是美国幼儿教育电视节目《芝麻街》中的Elmo,而是使用双向语言模型的神经系统ELMo。
常规语言模型尝试预测句子中即将出现的下一个单词。如果片段是“The people sat down on the …,”,那么算法将预测出“bench”或“grass”之类的单词。为了给单词附加所有潜在含义的词向量,这个团队使用了双向语言模型。
使用双向模型意味着,该模型可以通过一个二次的回顾性算法,获取句子的结尾并尝试预测出现在句子结尾前边的单词。当模型尝试分析的单词出现在句首,并且相关上下文随即出现时,这会非常有用。
“就像‘He lies to his teacher’与‘He lies on the sofa’这种情况”,Peters说道。
为测试ELMo的技能,该团队利用六种不同的NLP任务(包括情绪分析和问答等)对算法进行测试。与之前使用相同训练数据的方法相比,ELMo每次都会得到更新、更出色的结果,在某些情况下可以比之前的领先模型提升25%的速度。
“在NLP中,很重要的一点是,单一的方法能够提高多样化任务的性能”,Peters指出。
ELMo在半监督式学习领域大放异彩
在进行自然语言处理时,训练数据的类型非常关键。例如,问答系统使用的模型无法在任何旧文本上进行训练。通常,此类模型需要在由带标注的问题和答案对组成的大型数据库中训练,以学习如何做出正确的回答。
标注数据非常耗时并且成本高昂。因此,研究人员首先选择使用包含大约十亿个单词的大型无标记学术数据库来训练ELMo。然后,针对特定任务(例如问答)将此数据库调整为一个带标注的小型数据库。对于这种结合使用大量无标记数据和一小部分已标记数据的方法,统称为“半监督式学习”。
减少对已标记和带标注数据的依赖后,研究人员可以更轻松地在现实问题中应用其NLP模型应用。
“在我们的示例中,我们选择了一个未标记的学术数据库来训练语言模型”,Peters说道。但是研究人员能够调整算法,以便在任何其他未标记的数据库中运行该算法,也可以将其应用于生物医学论文、法律合同或其他语言等专业领域中。
与之前最先进(SOTA)的基准相比,ELMo在六个基准NLP任务中都增强了神经模型的性能。从左到右,这些任务依次是:语义推理、命名实体识别、问题回答、指代消解、语义角色标注和情感分类。
研究人员通过Amazon Web Service,使用NVIDIA Tesla V100和K80 GPU助力训练和推理。
在后续论文中,研究人员指出其仅使用了几百个已标记示例,便可应用ELMo模式回答几何问题。人工需要花费几个小时便能完成此标记工作,但却会显著提高NLP模型的性能。