读论文《Natural Language Processing (Almost) from Scratch》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31456593/article/details/77504902

读论文《Natural Language Processing (Almost) from Scratch》


原文地址:http://blog.csdn.net/qq_31456593/article/details/77504902

introduce

本文也是神经网络语言模型和词嵌入的经典论文,本文与之前的《A Neural Probabilistic Language Model》模型的不同在于,本文的核心目标是训练好的word embedding以完成词性标注 (POS)、短语识别(CHUNK)、命名实体识别(NER) 和语义角色标注 (SRL)等任务。

本文的语言模型网络只是用来预训练word embedding,最后要做的是拿word embedding作为具体任务(其共同目标就是标注)网络第一层(将词的one-hot表示变为word embedding)的参数继续在具体任务中训练。最后获得在POS,CHUNK,NER,SRL上的良好表现。

本文用到了多任务训练的思路,即共享one-hot到word embedding的转化层的参数,在多项任务上进行训练。

method

本文设计了2个网络来完成这些nlp任务,其中一个叫window approach,另一个叫sentence approach,网络结构见下图

其中window approach是基于n-gram模型的改造,窗口大小为n,中心的那个词为中心词,上下文各(n-1)/2个词。而sentence approach是利用卷积获取上下文并将其变成大小一致的中间表示(通过修改卷积核的大小和步伐实现)。两个模型最后都是最大化softmax输出的正确标签类别。

window approach适用于POS,CHUNK,NER, sentence approach 适用于LRS。

word embedding

本文以无监督的方法预训练word embedding以提高在具体工作上的效果。其网络结构与window approach的模型相同,只是最后的输出层只有一个神经元,表示该中心词与上下文语义关联程度的得分。得分高则说明该中心词在当前位置是符合上下文语言的,得分低则说明该中心词在当前位置不符合上下文语义。
训练时的正例就是中心词为原语料的中心词,负例就是把语料的中心词以其他词语代替。作者这么做的主要原因就是较少神经网络语言模型在大规模数据集上的训练时间。

如果用f(x)表示输入通过神经网络到输出的变化,那么基于打分机制构造的神经网络语言模型的优化目标是最小化下面的函数:

其中fθ(x)fθ(x(w))是负例的打分这函数的目的就是增加两者之间打分的差距,使其至少在1以上。

my view

1、本文利用神经网络模型执行POS,CHUNK,NER和LRS的任务,算是把神经网络用于具体自然语言处理处理任务的很好思路。
2、卷积模型或许可以发挥出跟大的力量。
3、词嵌入的训练由训练语言模型变成了输出评价的分,该评分的思路是否可以迁移到其他领域。
4、到底怎么样的方法可以获得更好的词嵌入,值得我们探究。

没有更多推荐了,返回首页