词向量及其在自然语言处理中的应用(5)
冯志伟
对于文献来说,因为相似的文献倾向于具有相似的单词, 所以可以认为相似的文献具有相似的向量。同样的原则也可以应用于单词:因为相似的单词倾向于出现在相似的文献中,所以可以认为相似的单词具有相似的向量。这样一来,我们就可以用词项-文献矩阵,通过单词倾向于出现在其中的文献来表示单词的意义。
但是,最常见的办法是使用不同种类的上下文作为词向量表示的维度。我们不使用“词项-文献矩阵”,而使用“词项-词项矩阵”(term-term matrix)作为词向量的维度,更加常见的说法,是把它叫做“单词-单词矩阵”(word-word matrix)或“词项-上下文矩阵”(term-context matrix),其中矩阵的列上标记的是单词而不是文献。这种矩阵的维度是|V| x |V|的,其中的每一个单元记录着列中单词(目标单词)的出现次数,而在训练语料库的某个上下文中出现的单词(上下文)则记录在行中。上下文可以是文献,在这种情况下,单元就表示两个单词在同一文献中出现的次数。不过,在大多数情况下,倾向于使用较小的上下文,这样的上下文一般是该单词出现的窗口,例如,在某些训练语料库中,左边为4个单词、右边为4个单词的窗口,在这种情况下,单元就表示矩阵的列中的单词在 4个上下文单词窗口的行中的出现次数。例如,这里是Brown语料库中的4个实例单词在左右为7个上下文单词的窗口中出现的例子(每一个单词只有一个实例):
对于每一个单词,我们从包围每一个出现该单词的窗口中采集了上下文单词的出现次数。图4显示了我们选出的根据Brown语料库计算出的apricot, pineapple, digital和information 4个单词的单词-上下文共现矩阵。
图4 根据Brown语料库计算出的4个单词的单词-上下文共现矩阵
图4只显示了aardvark, computer, data, pinch, result, sugar 6个维度的上下文单词。图中单词digital的词向量用框子标出: 0, 2, 1, 0, 1, 0。注意:真正的词向量计算需要的维度比这高得多,因而数据也就更加稀疏。
从图4可以看出,apricot和pineapple这两个单词与其他的诸如digital这样的单词比较起来显得更加相似(上下文单词pinch和sugar都倾向于出现在它们的窗口中),相反地,digital和information这两个单词与诸如apricot这样的单词比较起来也更加相似。
图5是这种情况的空间可视化显示。
图5 单词digital和information的词向量的空间可视化表示
图5中的单词digital和information只是与上下文中的data和result这两个单词关联,因此只是二维的。在实际的语料库中,|V|是词向量的长度,一般来说就是指词汇的规模,通常在10,000词到50,000词之间(在训练语料库中,一般使用50,000个高频词,高于50,000个高频词不会有什么帮助)。当然,这些计数大多数都是零,从而导致数据稀疏,现在已经设计了有效的算法使用数据稀疏的矩阵进行存储和计算。
用来计数的窗口的大小可以根据表示目标的不同而有所变化,不过一般是在目标单词的每一侧取1至8个单词,这样上下文的总长度就是3-17个单词。一般来说,窗口越小,表示的句法信息就越多,因为句法信息总是来自比较临近的单词,而窗口越长,表示的相关语义信息就越多。
