A Hierarchical Neural Autoencoder for Paragraphs and Documents

论文链接:A Hierarchical Neural Autoencoder for Paragraphs and Documents

这篇文章的核心目标是:输入一个文段,通过神经网络,将该文段压缩为一个低维特征向量,尽可能的记住尽量多的东西,再通过神经网络,将低维特征向量映射回原文段。整个模型就是一个自编码器(Autoencoder)。

其中,模型输入的文段是一个包含若干句话的文段,其中每句话又包含若干单词,单词可以用词向量算法转化为向量表示。模型运用了LSTM模型以及Autoencoder模型的思想,在这里就不赘述了。

paper提出的模型有三个,都是从LSTM出发改良而成的,分别是:基础LSTM,带有层次信息的LSTM,带有层次信息和注意力机制的LSTM。这三种模型的流程图如下:

第一个模型就是将一个LSTM的模型的尾部接到第二个LSTM模型的头部完成的。显然,由于LSTM本身对于信息的承载量优先,而一篇文章通常由上千个单词组成,完全无法指望LSTM能够提取出太多有用的信息。

第二个模型,增添了层次结构,其设计初衷就是为了解决第一个模型的不足之处:单词本身携带的信息太少了,要让模型从一篇文章中定位到一个关键词太过复杂。解决方式是在“文段”和“单词”之间增添一个过渡桥梁,即“句子”。通过一个LSTM从句子中提取出一个特征向量,对于每个句子提出的特征向量,我们再通过另一层LSTM提取出文段的特征向量。

第三个模型就比较玄学了。可以感性理解其优于第二个模型的地方。即,由于LSTM每次只提取最后一个Cell的输出,等同于默认了最后一个Cell的输入,即最后一个词是最重要的,这与实际不符。因此对于压缩器LSTM的所有节点,同时增加一个判别器D,可以通过该节点本身的输出与最终编码器总结出来的特征向量,求出一个类似于相关程度的量v。实际上解码器所获得的输入,应该是每个Cell的v值通过类softmax的函数进行加权求和得到的。用这样的特征向量替代之前的特征向量,等于说将重要的东西变得更重要了。

总之,这篇文章里面的内容其实挺基础的,LSTM本身是15年发明出来的东西,在现在已经有3年的时间了,很多特性已经被挖掘出来,Autoencoder思想则更早。也就是说时效性可能已经过了。

不过算法本身非常的general,可以套用到NLP中的很多地方,我们需要做的还有实现词向量算法。

原创文章地址:【A Hierarchical Neural Autoencoder for Paragraphs and Documents】转载时请注明出处mhy12345.xyz