1.32 词嵌入
自然语言由词构成。深度学习模型首先需要将词表示为稠密向量,也叫词嵌入。早期研究者并没有太多关注词嵌入的语言学解释,仅仅将其作为模型参数。因为词嵌入是一个稠密向量,这样不同词嵌入就存在了距离(或相似度)。一个好的词嵌入模型应该是:对于相似的词,它们对应的词嵌入也相近。因此很多研究者开始关注于如何得到高质量的词嵌入。Mikolov等[1]最早发现通过循环神经网络模型可以学习到词嵌入之间存在类比关系。比如 apple-apples ≈ car-cars、man-woman ≈ king-queen 等。Levy 等 人[2]在Skp-Gram 模型[3]的基础上,利用依存句法路径作为上下文来学习词嵌入。Pennington 等人[4]直接利用词和它的上下文的共现矩阵,加上一些正则化约束,通过加权最小二乘回归来获得词嵌入。和 Skip - Gram 等模型相比,该方法能更好地利用全局信息,在语义类比等任务上取得了更好的结果。总体来说,这些方法都可以直接在大规模无标注语料上进行训练。词嵌入的质量也非常依赖于上下文窗口大小的选择。通常大的上下文窗口学到的词嵌入更反映主题信息,而小的上下文窗口学到的词嵌入更反映词的功能和上下文语义信息。
在此基础上,也有研究者关注如何利用已有的知识库来改进词嵌入模型。Wang 等人[5]结合知识图谱和未标注语料在同一语义空间中来联合学习知识和词的向量表示,这样可以更有效地实体词的嵌入。Rothe等人[6]直接利用 WordNet 知识库的词和语义集的关系来学习词嵌入,能更好地利用已有的知识库。该论文获得了 ACL2015 的最佳学生论文奖。
在上述研究中,一个词只有一个向量表示。但是在自然语言中,一词多义的现象经常存在。因此,如何表示一个词的多个义项也是词嵌入研究中的一个热点。Neelakantan 等人[7]在 Skip - Gram 模型的基础上将一个词的每个义项都用一个向量表示,在不同的上下文中选择一个最相关的义项进行更新。然后通过非参估计的方法来自动学习每个词的义项个数。Liu 等人[8]利用主题模型来建模一词多义的词嵌入。首先利用率主题模型来确定一个词在不同上下文中的主题,然后用联合建模词和主题的嵌入。通过结合不同的主题,
可以得到一个词不同义项的向量表示。