Press enter to see results or esc to cancel.

【Abstract Meaning Representation for Paraphrase Detection】

Abstract Meaning Representation是一种将自然语言转换进AMR图的一种方式,这样做的目的是为了从表面的句子的之中挖掘到其内在的含义。可以看成是一种对于语言的规范性的表示。 下面的三句话

1. He described her as a curmudgeon,

2. His description of her: curmudgeon

3. She was a curmudgeon, according to his description.

都可以使用这样的一个边上有定义(Edge Labeled ),节点有定义(Node Labeled) , 有向(Directed)的AMR图进行表示

在AMR图之中的节点表达了事件(Events)或者是概念(Concepts),而其的边(Edge)表达了他们之间的关系。

而这样的AMR的表示,对于句子的含义的表达肯定是一种更加Straight Forward的方式,或者说也提供了另外的一种形式的信息,那么这种信息对于我们在做下游任务,比如说句意的匹配的时候自然也就可以给了另外的一个角度的Information,那么本文就是讲如何吧AMR的信息给融入一个解决句意匹配的任务(Paraphrase Detection)之中的。

但是提一嘴:需要注意的是在现实的实践之中,并没有一个AMR 工具(Parsers)可以仅仅得到Text的信息,现有的机器学习的技术用于在Data之中获得Parasers的结果仍然还有许多的错误。这个首先是由于我们的模型并不是那么的有效,并且还有一层原因就是在人类进行标注的时候也无法达到完美的标注。而且由于语意这种东西永远无法离开上下文,仅仅看一个Sloely Sentence,对于语意的表达肯定会有残缺。比如各种句子指代,脱离了上下文就完全无法理解。所以本文使用的AMR信息也不能过于依赖,在应用层方面并不一定是那么有效的。

Approach

假设$S$是一组Sentences,输入的Data形如$(x_{1}^{i},x_{2}^{i},b^{i})$,其中的$x_{j}^{i} \in S, j \in \{1,2\} ,  b^{i}\in \{0,1\}$,其中的$b$是判断两个$x$是不是Paraphrase的变量。

模型的目标也很简单,也就是判断一个矩阵

$$S\times S \to \{0,1\}$$

中的元素是否属于0或者1。

第一步是对于句子建立低维度的向量化的表示。文章之中使用的方法是Latent Semantic Analysis(LSA)进行表达。也就是说,给定一组句子$S = \{x_{j}^{i}| j\in \{1,2\}\}$,建立一个Sentence-Term Matrix $T$,其中的元素$T_{kl}$表示在第$kth$个句子之中使用了第$lth$个单词。其行是句子的个数而其列是词典的大小。而其值在文中使用了两种方法进行度量,第一种方式是使用简单的计数(Count)而第二种方法是使用TF-IDF的方法进行度量。

得到了这个$T$之后,就使用SVD来搞

$$T\simeq U\Sigma V^{T}$$

而最终的句子的表达的方式就是$U$矩阵的Rows的信息。(我又抄了一遍LSA)

一旦获得了句子的表示之后,我们就可以使用函数$f$来将训练数据之中的句子对$(x_{1}^{i},x_{2}^{i})$转换成为两个向量$f(x_{1}^{i})+f(x_{2}^{i})$以及$|f(x_{1}^{i})-f(x_{2}^{i})|$,然后将这两个向量组合成为一个特征向量$\phi(x_{1}^{i},x_{2}^{i})$,然后使用SVM来预测$b$的值。也就成功的完成了一个决定两个句子是不是相互的Paraphrase的任务。

但是在上面的任务之中,作者认为并没有很好的利用AMR的信息,所以其做了一些改进

Graph Similarity and Bag of AMR Concepts

对于两个AMR图之间的比较的很直接的方法就是计算这两个图之间的Similarity,并使用这样的一个Score作为Additional Feature。这里的Score就是Smatch ,大概的含义就是说,有两个图,现在我们要使得这两个图之间有最大的重合或者说尽可能的多匹配。而这个Overlap的数量也就是一个非常好的Indicator以表示两个句子之间的可以相互Paraphrases的程度。而以这个作为New Feature丢进SVM之中。

PageRank and TF-IDF Reweighting for LSA

这里的思路就是对于LSA矩阵进行重新的赋权,而重新赋权的方法则是通过PageRank的方法,简单的介绍一下,这种方法是在处理WebPage 的时候所提出的方法,对于节点进行排序,排序的依据是他们对于其他的节点的影响力。(这个好像在经济学之中叫做网络外部性).在用PageRank之前,首先是需要把两个图给合成为一个图,如下图所示

然后对于其中的每一个节点都计算一个PageRank Score,具体的计算流程如下,给定一个图$G = (V,E)$,其中的$E$代表是边

$$E = \{(n_{i},m_{i})\}$$

这个就是Page Rank的输入,而对于每一个Node输出一个Score,通过计算下面的等式

$$PG(n) = \sum_{m\in I(n)} \frac{PG(m)}{l(m)}$$

其中的$I(n)$是节点$n$的Input Edges,而$l(m)$是节点$m$的Output Edges.

那么LSA矩阵可以计算为

$$T_{kl} = PG(l,k)\times count(l,k)$$

也就成功的考虑了节点的重要性(这招好厉害).

Comments

这篇文章自己看的是挺懵的,因为文中的很多的方法自己也并不熟悉,还以为是写怎么提升AMR的效果的一篇文章,说明自己的NLP的基础还是不扎实,不过到后面也算是逐渐看懂了吧。图结构的信息的直观程度是深度学习这样的方法所缺乏的,而图结构的信息也是人类可以比较容易让计算机所读懂的信息,如何利用图结构的信息还有很长的路要走吧。这里的利用网络外部性对于LSA进行改善的方法自己真的是觉得非常非常的漂亮,同时也是在现在的铺天盖地的深度学习下所走出的一股清流吧。

提一嘴就是,感觉这种粒度的信息在再大的预料上面的效果可能未必能真的好多少,在句子的这种等级的信息上还是可以有比较明确的结构,但是一旦到了文章甚至是更高的层级上,就显得无力了许多。不过这个对于财务领域的各种股权结构的交叉和汇集,的确可以搞个网络外部性的研究,然后使用这样的一个方法评判公司的好坏,边也都有明确的含义。

Reference

Abstract Meaning Representation for Paraphrase Detection

Comments

Leave a Comment