词嵌入(词向量/词表示)模型简介

2,092 阅读

在自然语言处理中,语言模型是用来表征一个句子概率的模型。语言模型在如语音识别、机器翻译、词性标注等自然语言处理任务中作用巨大。语言模型包括句法语言模型和统计语言模型。前者是根据专家编制的语言学文法规则而建立的模型,是一种基于规则的模型。由于语言的语法本身不规范等原因,现有的大多数语言模型都是基于统计方法的。统计语言模型借助统计语言模型的概率参数,估计自然语言句子出现的可能性。词是承载语义的最基本单元。因此,语言模型的建立离不开词表示模型。

早期,词的表示使用独热模型(one-hot representation)。即假设某种语言总词数为V,那么每个词就用一个V维的向量表示,每个词语的大多数维度都是0,只有某一个位置是1,这个位置就可以表示这个词。但是独热模型仅仅将词语符号化,不包含任何语义信息,同时也过于稀疏,缺点很多。而Harris在1954年提出了分布假说(distributional hypothesis),即上下文相似的词,其语义也相似。后来Firth在1957年进一步明确词的语义是由其上下文决定的。后来,人们利用这个假设提出了词空间模型(word space model),这个模型在后来的发展中又被称为分布表示(distributional representation)。分布表示的主要思想就是将原来每个词语的巨大向量变成一个低维的向量,并且这个向量还保留了语义或者句法等信息。

目前词的分布表示主要分为三类:基于矩阵的分布表示、基于聚类的分布表示和基于神经网络的分布表示。基于神经网络的分布表示也称为词嵌入模型。

基于矩阵的词嵌入模型和基于聚类的词嵌入模型

基于矩阵的分布表示一般是要构造一个关于词的上下文矩阵。通常是每一行代表一个词,然后各列的值表示该词的上下文关系。这类方法通常有三个步骤:

1)选取上下文。即使用词所在的文档、词附近的词语或者是词附近的n元词组作为上下文(也就是列)。 2)确定矩阵元素的值,一般是指共现次数。 3)矩阵分解(可选)。上面的矩阵可能比较稀疏、维度较高,使用矩阵分解的方法可以将词进一步压缩到隐空间中,得到更低维度的词向量。

基于聚类的分布表示是通过聚类的手段得到词语上下文之间的关系。

基于神经网络的词分布表示(词嵌入)

神经网络词向量表示技术通过神经网络技术对上下文,以及上下文与目标词之间的关系进行建模。由于神经网络较为灵活,这类方法的最大优势在于可以表示复杂的上下文。在前面基于矩阵的分布表示方法中,最常用的上下文是词。如果使用包含词序信息的 n-gram 作为上下文,当 n 增加时, n-gram 的总数会呈指数级增长,此时会遇到维数灾难问题。而神经网络在表示 n-gram 时,可以通过一些组合方式对 n 个词进行组合,参数个数仅以线性速度增长。有了这一优势,神经网络模型可以对更复杂的上下文进行建模,在词向量中包含更丰富的语义信息。

DataLearner 官方微信

欢迎关注 DataLearner 官方微信,获得最新 AI 技术推送

DataLearner 官方微信二维码