Deep Learning, NLP, and Representations翻译学习
基本
- 原文作者:Chris Olah
- 原文地址:Deep Learning, NLP, and Representations
- 阅读时间:2018年04月21日
内容
- 《深度学习,自然语言处理和表征方法》
- keywords:neural networks, deep learning, representations, NLP, recursive neural networks
- 关键词:神经网络,深度学习,表征方法,自然语言处理,递归神经网络
简介
- 深度神经网络在模式识别(pattern recognition),计算机视觉(computer vision),语音识别(voice recognition)任务上表现出色。
- 本文综述深度神经网络应用在NLP上的成果
单隐层神经网络
- 单隐层神经网络(One Hidden Layer Neural Networks)
- 单隐层神经网络有一个普适性(universality):给予足够的隐结点,它可以估算任何函数
- 本质上这个理论是正确的,因为隐层可以用来做查询表(lookup table)
- 感知器网络(perceptron network)
- 一个感知器是一个非常简单的神经元:它在超过某个阈值(threshold)时才会触发
- 感知器网络的输入和输出都是二进制的(0和1)
- 注意:可能的输入个数是有限的
- 对于每个可能的输入,可以在隐层中构建一个仅对该特定输入才能触发的神经元
然后就可以利用该神经元和输出神经元之间的连接来控制该输入下的输出结果
备注1:如果有n个输入神经元,则为所有可能的输入构建case需要2^n个隐层神经元。不过实际中情况通常不会那么糟糕:You can have cases that encompass multiple inputs. And you can have overlapping cases that add together to achieve the right input on their intersection.
- 普适性意味着一个网络能适应任何你给它的训练数据,但这并不意味着它在插入新数据点时能表现得很理想。
- 所以普适性并不能解释为什么神经网络如此有效。
- 备注2:不仅感知器网络有普适性,多层感知器(sigmoid neurons)网络(及其他激活函数)也具有普适性。
词嵌入(Word Embeddings)
词嵌入其实早在十多年前就由Bengio等人提出(2001,2003)
Bengio, Yoshua, et al. “A neural probabilistic language model.” Journal of machine learning research 3.Feb (2003): 1137-1155.
distributed representations for symbols则更早 (Hinton 1986)
- 词嵌入是一个参数化函数(paramaterized function):将词语映射成向量
- 一般这个参数化函数就是一个查询表(lookup table)
- 通过任务训练学习得到参数W,例如预测句子中下一个词,或是预测5-gram是否成立
可以用t-SNE来对词嵌入空间可视化(t-SNE是一个高维数据可视化技术)
意义相似的词拥有相似的向量
词嵌入另一个属性:单词间的类比仿佛是被编码在了单词向量的区别中:
词嵌入中的关系对:
神经网络能自动学习更好的数据表征的方法
共同表征(Shared Representations)
利用任务A学习到的单词特征表示应用到其他NLP任务中:
- 预训练(pretraining)
- 迁移学习(transfer learning)
- 多任务学习(multi-task learning)
双语单词嵌入:把汉语和英语嵌入到同一个空间去
Zou, Will Y., et al. “Bilingual word embeddings for phrase-based machine translation.” Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing. 2013.
我们也可以学习把非常不同的几种数据嵌入到同一个空间去
- 例如,把单词和图像嵌入到同一个表征下的模型
基本思路就是可以通过单词嵌入输出的向量来对图像进行分类:
- 狗的图像会被映射到“狗”的单词向量附近
- 马的图像会被映射到“马”的单词向量附近
- 汽车的图像会被映射到“汽车”的单词向量附近
- 以此类推
递归神经网络(没有细看)
- 递归神经网络(RNN)是两种人工神经网络的总称
- 一种是时间递归神经网络(recurrent neural network)
- 另一种是结构递归神经网络(recursive neural network)
- 时间递归神经网络的神经元间连接构成矩阵
- 结构递归神经网络利用相似的神经网络结构递归构造更为复杂的深度网络
- RNN一般指代时间递归神经网络
结论
- 在优化多层模型的过程中,更好的数据表征方法会自动浮现出来