Neil Zhu,简书ID Not_GOD,University AI 创始人 & Chief Scientist,致力于推进世界人工智能化进程。制定并实施 UAI 中长期增长战略和目标,带领团队快速成长为人工智能领域最专业的力量。
作为行业领导者,他和UAI一起在2014年创建了TASA(中国最早的人工智能社团), DL Center(深度学习知识中心全球价值网络),AI growth(行业智库培训)等,为中国的人工智能人才建设输送了大量的血液和养分。此外,他还参与或者举办过各类国际性的人工智能峰会和活动,产生了巨大的影响力,书写了60万字的人工智能精品技术内容,生产翻译了全球第一本深度学习入门书《神经网络与深度学习》,生产的内容被大量的专业垂直公众号和媒体转载与连载。曾经受邀为国内顶尖大学制定人工智能学习规划和教授人工智能前沿课程,均受学生和老师好评。
Paragraph2vec 是一种非监督学习方式,输入为文本,输出则是文本对应的向量表示。
连续分布式向量表示。文本可以是可变的长度(对应于 sentence 及 documents)。
向量表示可以用来预测文章中的 word。可以连接 paragraph vector和 word vector,预测给定的 context 下将要出现的 word。 word 向量和 para 向量都是通过 GD 和 BP 计算出来的。para 向量唯一对应于相应的文章,而 word 向量则是全局共享的。在 predict 时,固定 word 向量,并训练新的 para 向量直到收敛获得 para 向量的预测。
word 向量一般是通过对 context 下得 word 向量进行连接或者平均获得。结果向量用来预测在这个 context 下的其他 word。例如在NNLM(Bengio 06)中,使用前面出现的 word 向量的连接作为神经网络的输入,目的是预测下面的 word。在 model 训练完成,word 向量被映射到一个向量空间,使得语义相似的 word 拥有相似的向量表示。(如“strong” 靠近 “powerful”)
在此基础上,出现了 phrase 和 sentence 层的表示。使用文档中出现的 word 的平均权重来表示一个 document。更复杂的是使用 sentence 的分析树,使用矩阵向量操作。这两种方式都有弱点,因为他们都忽略了 word 在 document 中出现的顺序。第二种由于依赖于分析(parsing)则只能处理 sentence。
para 向量可以用来构造可变长度的输入序列的表示。不同于前面的一些方法,para 向量是通用的并可以用在任意长度的文本上。例如,在情感分析人物中,我们获得新的结果,比那些复杂的方法还要好。在文本分类的工作中,我们的方法相较于bag-of-words方法有超过30%的提升。
算法
学习 word 的向量表示
每个 word 都被映射到一个唯一的向量,也就对应于矩阵 M 中得一个列。列则是有词在词汇表中的位置索引。那么这些 word 向量的连接和求和就可以作为这个句子中下一个 word 预测的前提。
给定
word 向量模型的目标就是优化下面的平均 log 概率
这个预测的任务使用了多类分类器完成,例如 softmax。我们有:
每个
y_i
是对应于每个输出 word i
的一个未正规化的 log 概率,计算公式如下:其中
U
,b
是 softmax 参数。h
由 word 向量的连接或者平均获得。层次化 softmax 通过一个二叉 Huffman 树完成,短的编码对应于出现频繁的 word。这样常用词可以很快的查到。
基于 word 向量的神经网络通常使用 SGD 训练,其中gradient 通过 BP 获得。这是比较常见的 NNLM。
paragraph 向量:分布式记忆模型
每篇文档映射在一个唯一的向量上,由矩阵D中的一列表示,每个 word 则类似地被映射到向量上,这个向量由矩阵 M
的列表示。同样是使用连接或者平均的方式获得新 word 的预测。在实验中,使用的连接的方式进行。
也就是说,唯一与 word2vec 不同的地方就是公式(1):
h
由 W
和 D
共同构造。
算法本身两个关键步骤:
- 训练获得word向量
W
,softmax权值U
,b
和在已经见过的para 向量D
上; - 推断步骤:获得新 paragraph 的 para 向量
D
和在固定W
,U
,b
时的D
上的下降的 gradient。我们使用D
并借助通常的分类器做出预测特定的标签。
para 向量的优点:从未标记数据学得,因此可以应用在没有太多标签得数据上。还有 para 向量解决了 bag-of-words 的没有 word 顺序的问题。并且极大地降低了表示的维度。