最近看了一些关于机器翻译领域的论文,做了一些这块的实验,算是初步入门自然语言处理了。尽管自己曾经做图像这块也很少,但是自己仅有的一些深度学习经验也就是图像这块了。刚开始做机器翻译的时候,总是将它与图像处理类比,渐渐发现图像和自然语言处理的差别还是挺大的,将图像理论用于自然语言处理中,有时会想不通。先总结一些区别,之后慢慢补充。如有错误,望提出来一起探讨。

1、图像的原始特征即图像的rgb值,他们可以准确表示一幅图。而自然语言的特征,一般都是给词汇表标号,将对应的句子或词表示为序号的集合,再通过一些拓展将其表示为向量的集合,常见的手段可用过embedding或one hot编码等。这些向量需要不断训练才可能表示句子的语义。

2、图像中主要通过卷积或其他操作不断抽象特征,而自然语言这块也可以通过卷积提取特征,但有时会通过一些如attention得到一些权重,以显示句中不同词的重要性。

3、图像中主要表现为参数空间共享性,而自然语言表现为时间的共享性。自然语言处理中如一段句子前后是有联系的,为了保存序列前面的信息,主要通过一些序列模型实现,如rnn、lstm等。

4、具体到机器翻译这块,比如中英翻译,往往输入与输出长度不相等,因此通过一个encoder与decoder实现翻译长度的不对齐性。

5、图像如果是分类的话一般种类不会太多,而如机器翻译是一个巨大的多分类问题,此时计算一些目标值或损失值时,如果不采取一些采样等措施,可能会导致消耗巨大,这个具体我还没有尝试。

6、尽管说机器翻译可以看做一个多分类问题,但是有源语句到目标语句的过程中,decoder端输入时训练与预测一般采取不同的输入,在训练时,一般decoder端直接输入目标值的embedding,而预测时,会输入上一步的输出,预测时一般为了能够得到比较好的翻译,一般通过beam search手段去实现搜索最佳的翻译组合,往往这个消耗比较多。

7、自然语言中有个很重要的词向量是未知词,因为词汇表不可能覆盖所有的语料,因此用未知词代替未出现于词表的方法,如今有许多方式来改进对未知词的处理,如bpe子词切分算法等。

8、图像中为了防止过拟合会增加一些高斯噪声,而词向量中添加一些噪声,尽管有相关文献提过,但这个具体还得实验到底有没有作用。

9、词性标注中采用采用lstm与crf,crf解码时是采用维特比解码,lstm尽管考虑了上下文的信息,但是如果计算标注时直接采用softmax输出,将不会考虑上下文的标注结果,导致如go to下面可能是地名,但softmax结果可能会产出形容词。通过添加crf,可以考虑全局信息,结合lstm提取特征,可以达到很好地效果。类似的,机器翻译中,因为没有考虑上下文的对齐信息,对于端到端的网络,源词可能会参与多个目标词的翻译,导致出现重复翻译或漏译。在解码时,机器翻译中会用到beam search ,这个和crf的维特比解码有点相似,是一个采用beamsize的维特比解码。开个脑洞,在训练过程中,能否在训练时不采用隐层或attention输出,而是将隐层输入到crf中,获得一个最优序列?

       以上是自己的简要总结,之后再陆续补充。