文本匹配ESIM模型详解

原文链接: https://blog.csdn.net/jesseyule/article/details/100579295

ESIM(Enhanced Sequential Inference Model)是一个综合应用了BiLSTM和注意力机制的模型,在文本匹配中效果十分强大,也是目前为止我见过结构最复杂的模型,下面将会结合公式和感性的理解去一步步推导这个模型。

首先什么是文本匹配,简单来说就是分析两个句子是否具有某种关系,比如有一个问题,现在给出一个答案,我们就需要分析这个答案是否匹配这个问题,所以也可以看成是一个二分类问题(输出是或者不是)。现在主要基于SNIL和MutilNLI这两个语料库,它们包含两个句子premise和hypothesis以及一个label,label就是判断这两个句子的关系,本文主要讲解的就是如何利用ESIM分析这个问题。

就像上面提到的,这个问题简单来说就是输入两个句子,输出一个label,这里一共有三个label(neutral、contradiction、entailment),那么我们就可以简单地用下图表示这个模型:

既然输入是两个句子,首先肯定是做word embedding了,方法有很多,这里假设直接用预训练的glove把句子转换成矩阵,注意,这时候我们得到的向量因为是基于glove预训练的向量得到的,并没有反映出句子中的前后文联系,所以我们这里继续利用BiLSTM再重新转换一下,得到最终的输入变量:

a ¯ i = B i L S T M ( a , i ) a i = B i L S T M ( a , i ) a i = B i L S T M ( a , i ) a¯i=BiLSTM(a,i)a‾i=BiLSTM(a,i) \overline a_i = BiLSTM(a,i) v=[va,ave;va,max;vb,ave;vb,max]

最终,终于来到最后一步了,那就是把向量v扔到一个多层感知器分类器,在输出层使用softmax函数。

以上,就是ESIM的完整模型了。

关于ESIM的python实现在我github的自然语言教程中有详细介绍:NLPBeginner, 主要是基于tensorflow实现。

想浏览更多关于数学、机器学习、深度学习的内容,可浏览本人博客

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-095d4a0b23.css" rel="stylesheet">
                </div>
</article>
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/jesseyule/article/details/100579295

猜你喜欢

转载自blog.csdn.net/sunhua93/article/details/102488397