本文将探讨近期自然语言处理(NLP)领域中备受关注的概念——注意力机制(Attention)。注意力机制的核心思想是,在处理阅读理解、文本分类、翻译等任务时,机器应能识别并聚焦于关键信息。例如,在阅读理解中,机器应当抓住与问题相关的关键句子或词汇;在情感分析中,应侧重于与情感相关的关键词;而在翻译过程中,则需关注主谓宾等主要语法成分。希望机器能够精准地理解和处理信息,而非简单地机械阅读。许多研究显示,注意力机制在多种NLP任务中均表现出色。本文将重点介绍两篇具有代表性的论文:《Attentive Pooling Networks》和《Attention Is All You Need》。前者是对前文(自然语言处理入门学习十)中CDSSM模型的改进,后者则在2017年引起广泛关注,主要用于机器翻译。
CDSSM模型用于句子匹配,其基本思路是利用两个向量表示句子对,再用余弦函数计算两个句子间的语义距离,最后将此距离作为损失函数进行优化。
《Attentive Pooling Networks》提出了一种用于问答匹配的模型。该模型在向量表示和余弦距离之间引入了注意力层,使得问题向量能够包含答案的信息,而答案向量也能反映问题的信息。例如,“How old are you?”和“How are you?”的问题向量可能非常接近,但在结合答案后,如“I am 18.”和“I’m fine”,可以清晰地区分这两个问题。因此,在进行问题匹配时,不仅需要考虑问题本身,还需要结合答案信息。
文章中巧妙地构建了注意力池化层G,通过以下公式实现:
[ G = text{softmax}(Q^T U A) ]
其中,Q是问题的向量表示,A是答案的向量表示,U是参数矩阵,可通过神经网络学习得到。接下来分别进行基于行的最大池化和基于列的最大池化,以提取注意力层中的重要信息。
这样,问题向量中会包含答案的信息,答案向量中也会包含问题的信息。再通过softmax归一化后,分别乘以原始问题和答案的向量表示,从而得到经过注意力机制处理后的向量表示。
损失函数的计算方式与CDSSM模型相同。
这个模型最值得借鉴之处在于,进行问答匹配时,不能只对问题和答案分别进行向量表示,而应综合考虑两者信息,判断哪些词汇是关键信息。
本文重点介绍了《Attentive Pooling Networks》这一模型,它不仅是对CDSSM模型的改进,也为后续研究(如IRGAN)提供了基础。
论文中展示的模型效果如下:
(注:原文链接已省略)