词向量表示技术是将自然语言中的每一个词语转换为稠密向量形式. 这种表示方法能够充分的发挥计算机的计算能力, 并且在现有的自然语言处理任务中具有广泛的应用, 例如通过计算向量之间的距离表示词语的相似程度可以应用在信息检索[1]、文档分类[2]和问答系统[3]等任务.
近几年来, 有许多关于词向量表示技术的相关研究. Mikolov[4]提出了Word2Vec模型通过引入负采样和哈夫曼编码, 使得训练速度比传统的神经网络模型[5]得到了大幅的提升, 也使得Word2Vec模型得到了广泛的应用. Pennington[6]提出了GloVe模型, 该模型通过利用共现矩阵分解的方式得到词向量. Vilnis等人[7]提出了一种概率模型训练词向量的方法, 他们将每一个词映射为一个多维高斯分布然后训练该高斯分布的均值和方差, 其中均值就是对应词语的词向量. 由于Word2Vec、GloVe等模型并不能有效表示自然语言中广泛存在的多义词, 为了解决这个问题, 提升词向量的表示, Huang[8]引入了多原型词向量训练模型, 通过对上下文词向量聚类给出目标词的准确语义, 然后利用全局得分和局部得分定义损失函数训练多原型词向量. Facebook智能研究室提出了fastText文本分类器模型[9–11], 该模型可以在保证分类质量的同时, 大大缩短文本分类的训练时间. FastText模型也能够用来训练词向量, 通过借鉴Skip-gram构建哈夫曼编码树思路加速模型的计算. 但是fastText通过加入n-gram特征保留了词语的语序信息提高分类的准确率, 同时也使得其训练的词向量能够对生成的低频词词向量有较好的表示效果, 并且对于词典以外的单词, 可以通过叠加它们字符级别的n-gram向量获得该词典外单词的词向量.
本文提出一种改进的GloVe模型训练词向量的方法. GloVe模型是一种基于共现矩阵分解生成词向量的基本模型, 同Word2Vec、wordrank[12]等模型一样可以根据语料库的统计信息训练词向量并捕捉词语间的语法和语义信息. 本文通过分析GloVe模型共现矩阵的特点, 利用分布式假说[13,14]过滤不能够代表目标词语义的无关词和噪声词, 减少共现矩阵中非零元素数目, 进而提高模型的训练速度. 最后,利用Mikolov[15]提出的词汇类比方法和人为标注的词汇相似性数据集对词向量的训练效果给出评价.
2 研究基础 2.1 Global Vector模型(GloVe)GloVe模型是一种对 “词-词”共现矩阵X分解而得到的词向量表示方法. 共现矩阵X中的第i行第j列的值Xij为目标词Vi与上下文词Vj在语料库中的共同出现次数. GloVe模型由于只在全局的非零矩阵元素Xij上进行训练, 其训练速度比Word2Vec更加高效. 该模型使用最小二乘法作为损失函数, 同时对共现矩阵X中的行和列加入了偏移项. 其损失函数为:
${{J}} = \sum\limits_{i,j = 1}^{{\rm{|}}V{\rm{|}}} {\;f({X_{ij}}){{(w_i^{\rm T}{w_j} + {b_i} + {b_j} - \log{X_{ij}})}^2}} $ | (1) |
其中, |V|为词典的大小, wi为目标词的词向量, wj为上下文词的词向量, bi, bj为共现矩阵X行和列的偏移值, f(x)是一个加权函数, 用于对从语料库中统计的低频词对进行衰减, 减少低频噪声带来的误差, 其定义为:
${{f(x) = }}\left\{ {\begin{aligned}& {{{(x/{x_{\max }})}^\alpha }}\quad {{\rm{if }}x \leqslant {{{x}}_{\max }}} \\ & 1\quad {{\rm{otherwise}}} \end{aligned}} \right.$ | (2) |
同时GloVe模型作者Pennington给出了xmax, α的经验值分别为100, 3/4.
2.2 分布式假设我们知道, GloVe模型的共现矩阵中的值Xij是通过滑动窗口对语料库中所有存在窗口内的目标词与上下文词的词频统计信息. 根据分布式假说[13,14]如果两个词语具有相似的上下文那么它们的语义相近. 为了能够清晰的表达这种相似, 我们从维基百科中抽取出以下三个句子:
(1) Several species of pear are valued for their edible fruit and juices.
(2) The peach is seen as the fruit of happiness, riches, honours and longevity.
(3) One type of commonly known gas is steam.
对于上面句子划线的三个词pear, peach和gas, 由我们的经验可知词对(pear, peach)关系要大于词对(pear, gas)或(peach, gas)之间的关系, 因为前者共同属于水果类别, 而后者并没有特别明显的相关性. 同时, 词对(pear, peach)相关性我们可以从句子(1), (2)中看出,它们拥有共同上下文词语fruit、of等, 如果当语料库足够大时在pear和peach的上下文中会有更多的词语代表它们的共同含义例如tree、leaf、delicious等, 但是gas的上下文中几乎不可能出现tree, delicious等上下文词语,这说明词语fruit, tree, delicious能够代表pear和peach的语义信息而不能表示gas的语义信息. 但是在上面的句子中也存在大量的既不能代表pear和peach的语义, 也不能代表gas语义的词语例如of, and, is等无关词或噪声词, 并且在对语料库做统计的过程中会存在大量的无关词或者噪声词, 它们的存在使得模型训练需要较长的时间, 同时由于引入噪声对词向量的训练质量造成一定的影响, 所以这些词语是没有必要参与公式(1)的运算.
3 研究方法 3.1 共现矩阵分析设共现矩阵X中每一个元素Xij表示上下文词j在目标词i窗口内出现的次数.
从表1可以看出pear和peach的上下文为k时, 比如当k为tree, delicious, fruit时它们的概率比P(k|pear)/P(k|peach)接近于1, 但是对于P(k|pear)/P(k|gas)的比值却远远的大于1或小于1, 也就是越相似的词它们的上下文词的共现概率比值越接近于1, 越不相似的词它们的上下文词的共现概率比值越不接近与1. 当k为the, of等无关词时, P(k|pear)/P(k|gas)的比值也接近于1. 通过分析可以概括出以下规律:
1)对于词义相似的词a,b和它们的上下文词k有:
$\left\{ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {\frac{{{P_{ak}}}}{{{P_{bk}}}} \approx 1}&{{\rm {if}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {P_{ak}} \geqslant {P_{bk}}} \end{array}} \\ {\begin{array}{*{20}{c}} {\frac{{{P_{bk}}}}{{{P_{ak}}}} \approx 1}&{{\rm {if}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {P_{ak}} < {P_{bk}}} \end{array}} \end{array}} \right.$ | (3) |
2)对于词义不相似的两个词a,c和上下文词k, 当k不为无关词, 则有:
$\left\{ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {\frac{{{P_{ak}}}}{{{P_{ck}}}} \gg 1}&{{\rm {if}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {P_{ak}} \geqslant {P_{ck}}} \end{array}} \\ {\begin{array}{*{20}{c}} {\frac{{{P_{ck}}}}{{{P_{ak}}}} \gg 1}&{{\rm {if}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {P_{ak}} < {P_{ck}}} \end{array}} \end{array}} \right.$ | (4) |
当k为无关词时, 此时可以得到与公式(3)相似的公式:
$\left\{ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {\frac{{{P_{ak}}}}{{{P_{ck}}}} \approx 1}&{{\rm{if}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {P_{ak}} \geqslant {P_{ck}}} \end{array}} \\ {\begin{array}{*{20}{c}} {\frac{{{P_{ck}}}}{{{P_{ak}}}} \approx 1}&{{\rm {if}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {P_{ak}} < {P_{ck}}} \end{array}} \end{array}} \right.$ | (5) |
从上节的分析可以看出当词语a,c不相似时,给定上下文词k可以从他们的的共现概率比值中获得k是否为无关词信息. 例如从表1中我们发现当上下文词k为tree, steam时, P(tree|pear)/P(tree|gas)=404.55, P(steam|gas)/P(steam|pear)=55,它们的比值都要远远大于1, 所以上下文词tree, steam不为无关词, 并且tree能够用来表示pear的语义, 而steam表示gas的语义. 而上下文词为无关词the, of时, P(the|pear)/P(the|gas)=1.05、P(of|gas)/P(of|pear)=1.09它们的共现概率比值接近于1. 如果假设词语a、c在给定上下文词k时, 共现概率比值为:
$\left\{ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {\frac{{{P_{ak}}}}{{{P_{ck}}}}{\rm{ = }}\gamma }&{{\rm {if}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {P_{ak}} \geqslant {P_{ck}}} \end{array}} \\ {\begin{array}{*{20}{c}} {\frac{{{P_{ck}}}}{{{P_{ak}}}}{\rm{ = }}\gamma }&{{\rm {if}}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {P_{ak}} < {P_{ck}}} \end{array}} \end{array}} \right.$ | (6) |
其中, γ为设置的超参数. 我们可以归纳以下结论:
若a, c为不相似的两个词, 给定上下文词k时:
1)若共现概率比值γ≈1时(公式(5)), 此时k为无关词;
2)若共现概率比值γ>>1 时(公式(4)), 此时k可以用于代表a或c的语义词.
根据上面的结论我们考虑如何选择与a不相似的词c来过滤无关词. 例如要过滤出pear上文中的无关词,如何选择与pear不相似的词语gas. 这里给出了以下式子选择与a不相似的词语c:
${\rm {set}}(c) = \left\{ {c|\cos ({w_a},{w_c}) < 0,c \in V} \right\}$ | (7) |
其中, a, c∈V, wa, wc分别为a, c对应的词向量. 由分布式假设我们知道如果两个词语上下文越相似, 那么它们的语义越相似, 它们的余弦距离越大, 它的逆否命题为如果两个词语的余弦距离越小, 那么这两个词语的上下文越不相似, 它们的语义相差越远, 所以两个词语的相似关系可以使用余弦距离给出. 公式(7)给出选择不相似词语的一般公式, 即从所有与a的余弦距离小于0的集合c中随机的选择N个不相似的词语过滤a中的无关词, 这样既可以减小共现矩阵中非零元素数量, 加快训练时间, 又可以使得实验效果得到改进, 然后结合公式(6)给出的结论过滤出无关词.
总而言之, 为了能够过滤出共现矩阵中的无关词与噪声词, 提高词向量的训练质量, 并加快词向量的训练效率, 本文方法可以概括为以下三个步骤:
1)对于词典中的每个词a利用余弦距离找到与其余弦距离小于0的词语集合set(c);
2)从集合set(c)中随机的选择N个词语, 结合公式(6)及其结论从原共现矩阵中过滤出无关词、噪声词, 生成新的共现矩阵;
3)将新的共现矩阵代入公式(1)训练新的词向量.
4 实验分析我们使用维基百科数据集(wiki2010)训练词向量.该数据集包含大约10亿个单词, 用NLTK工具包中的方法对该数据集进行分词, 并且将所有大写字母转换为小写形成新的语料库, 然后使用30 000个出现最频繁的单词形成字典, 利用字典和左右为10的滑动窗口处理新的语料库构成共现矩阵.
在使用公式(1)训练后每个单词会得到两份词向量分别是目标词向量W和上下文词向量
在对词向量训练效果评价上, 我们使用Mikolov[4] 提出的词语类比数据集进行实验, 该类比数据集包含19 544个问题, 分为语义类比和语法类比两部分. 另外, 本文给出了超参数N, γ在不同取值时对词向量质量的影响, 同时在几个标准的词语相似度数据集上对训练的词向量质量进行评估.
4.1 词语相似度我们使用了标准的词语相关性数据集对训练的词向量结果进行评估,其中包括SimLex[17], WordSim-353、WS-S (similarity)、WS-R (relatedness)[18], MC[19], MEN[20], RG[21], YP[22]和RW[23]. 这些数据集包含一系列的单词对列表, 每个单词对的相似度都有人为的评分, 我们通过计算人为打分和训练的词向量之间的皮尔逊系数[24]得出词向量与人为打分之间的相关性, 皮尔逊系数越高, 则相关性越大, 词向量的训练效果也就越好.
表2给出了Skip-gram、CBow、LG (Gaussian embedding)[7]、Glove以及GloVe-r15在词语相似度数据集的皮尔逊系数. 所有这些模型使用相同的维基数据集, 词向量维度均为300维, 其中GloVe-r15使用了N=3, γ=15的训练结果. 从总体上来看, 这些不同模型在所有的词语相似度数据集得到的皮尔逊系数都非常接近, 并且各个模型在不同的数据集皮尔逊系数都有最大值. Skip-gram在WS和MC数据集上的皮尔逊系数最高. 本文模型GloVe-r15在数据集MEN, YP上取得较好的效果, 在其它不同的数据集上与其它模型差距也非常小. 从表格中看出, 我们的方法可以有效的捕捉词语相似性关系, 并且与其它模型训练在词语相似度皮尔逊系数也非常接近.
4.2 词语类比Mikolov[4]提出了通过词语类比实验检验词向量的训练质量. 该方法主要通过回答类似于“如果a与b相似, 正如c与d相似”的问题, 这些问题又分为语义问题和语法问题两部分. 语义问题主要是对称谓和地点进行类比检验, 比如“boy”与“girl”相似, 正如“brother”与“sister”相似. 语法问题主要来对动词时态, 单复数等形式进行验证, 比如“dance”与“dancing”相似, 正如“decrease”与“decreasing”相似. 在计算的过程中, 方法是假设实验中的某个单词是未知的, 例如假设d未知, 通过余弦距离找到与wb–wa+wc最相近的词向量wd', 检查词d'是否与d一致, 若一致则认为类比正确.
表3给出了使用不同模型在不同的维度下词语类比实验准确率, 其中GloVe-r15是本文提到的方法将N设置为3, γ设置为15时所得到的实验结果. 我们主要对比了流行的词向量训练方法Skip-gram, CBow, GloVe模型, 同时给出了fasttext在词向量300维时的训练结果.这些模型使用了wiki2010数据集进行训练, 并且词典大小、滑动窗口大小等超参数也都尽可能的保持相同. 从表3中可以得出以下结论.
1) 随着词向量维度的增加, 所有模型的词语类比实验准确率都在提高. 因为维度越大词向量对共现矩阵信息拟合的越准确, 故而词语类比实验准确率也会越高.
2) fasttext训练时间最长, 除fasttext之外, 在其他模型的相互比较中Skip-gram在相同的维度下训练时间最长. fasttext主要是用于文本分类, 通过使用字符间的n-gram信息提高分类的准确性. 我们在训练词向量时也加入词的n-gram特征, 其在训练过程中主要训练单词的组成成分[9], 需要训练的词向量也由原来的K扩大为K'(K'的取值与n-gram的n取值范围有关), 由于fasttext采用了层次Softmax优化[10], 需要训练词向量K大小变化相对于算法复杂度
3) 在相同的词向量维度下本文的方法是所有相关模型中用时最短, 语义类比实验结果最好的模型, 但是在语法类比实验中其准确率相对于原始GloVe模型在下降, 这是因为在使用分布式假设过滤共现矩阵时主要考虑的是语义信息, 使得模型在语法信息捕捉下降. 我们可以通过引入对单词的语法信息提高语法实验准确性, 本文第5节给出了处理方法.
由于词向量的训练质量会受到N, γ值的影响, 图1给出了当N=3时, γ不同取值时词语类比实验准确率. 从图1可以发现, γ对于词向量的训练质量影响较小. 但是当γ取较大值时准确率有稍微下降. 图2给出了γ=15, N的不同取值时对实验准确率的影响. 当N取较大值时, 词语类比实验的准确率有明显下降, 实验表明, 当N取值在[3, 7]之间, γ在[10, 20]区间时可以取得相对较好的实验结果.
5 结论与展望
本文通过分析GloVe模型共现矩阵特点, 提出了一种过滤出共现矩阵中无关词的方法, 该方法可以在不影响词向量质量的前提下, 缩短词向量的训练时间, 并且能够更好的捕捉词语间的语义信息. 但是, 本文方法虽然在语义类比实验得到提升,同时也会造成语法类比实验结果的下降, 未来可以从两个方向利用语法信息对实验结果进行改进: 1)保留共现矩阵中形态变化词的词频统计信息. 即使用NLTK对词典进行词形归一化, 找到所有能够进行词形归一化的形态变化词,保留这些的词频统计信息, 只对非形态变化词进行共现矩阵中词频统计处理. 2)借鉴fasttext在词语层面的n-gram思路. 将形态变化词进行词干提取形成词干+词尾的形式, 此时
最后, 本文给出一种提升词语语义相似度新方法, 实验表明, 该方法在语义相似度实验中比传统词向量训练方法能够获得了更好的结果, 也为深度学习在自然语言处理上层应用提供了更好的表示.
[1] |
Manning CD, Raghavan P, Schütze H. Introduction to Information Retrieval. New York, NY, USA: Cambridge University Press, 2008.
|
[2] |
Sebastiani F. Machine learning in automated text categorization. ACM Computing Surveys, 2002, 34(1): 1-47. DOI:10.1145/505282.505283 |
[3] |
Tellex S, Katz B, Lin J, et al. Quantitative evaluation of passage retrieval algorithms for question answering. Proceedings of the 26th Annual International ACM SIGIR Conference on Research and Development in Informaion Retrieval. Toronto, Canada. 2003. 41–47.
|
[4] |
Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space. arXiv: 1301.378, 2013.
|
[5] |
Bengio Y, Ducharme R, Vincent P, et al. A neural probabilistic language model. The Journal of Machine Learning Research, 2003, 3: 1137-1155. |
[6] |
Pennington J, Socher R, Manning CD. GloVe: Global vectors for word representation. Proceedings of 2014 Conference on Empirical Methods in Natural Language Processing. Doha, Qatar. 2014.
|
[7] |
Vilnis L, McCallum A. Word representations via gaussian embedding. arXiv:1412.6623, 2014.
|
[8] |
Huang EH, Socher R, Manning CD, et al. Improving word representations via global context and multiple word prototypes. Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics: Long Papers. Jeju Island, Korea. 2012. 873–882.
|
[9] |
Bojanowski P, Grave E, Joulin A, et al. Enriching word vectors with subword information. Transactions of the Association of Computational Linguistics, 2017, 5(1): 135-146. |
[10] |
Joulin A, Grave E, Bojanowski P, et al. Bag of tricks for efficient text classification. In Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics: Volume 2, Short Papers 2017. 2017. 427–431.
|
[11] |
Joulin A, Grave E, Bojanowski P, et al. FastText.zip: Compressing text classification models. arXiv:1612.03651, 2016.
|
[12] |
Ji SH, Yun H, Yanardag P, et al. WordRank: Learning word embeddings via robust ranking. Proceedings of 2016 Conference on Empirical Methods in Natural Language Processing. Austin, TX, USA. 2016. 658–668.
|
[13] |
Harris ZS. Distributional structure. WORD, 1954, 10(2–3): 146-162. DOI:10.1080/00437956.1954.11659520 |
[14] |
Firth JR. A Synopsis of Linguistic Theory 1930–1955. In: Studies in Linguistic Analysis. Oxford: The Philological Society, 1957: 1–32.
|
[15] |
Mikolov T, Yih WT, Zweig G. Linguistic regularities in continuous space word representations. Proceedings of North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Atlanta, GA, USA. 2013. 746–751.
|
[16] |
Cireşan DC, Giusti A, Gambardella LM, et al. Deep neural networks segment neuronal membranes in electron microscopy images. Advances in Neural Information Processing Systems, 2015, 25: 2852-2860. |
[17] |
Hill F, Reichart R, Korhonen A. SimLex-999: Evaluating semantic models with (genuine) similarity estimation. Computational Linguistics, 2015, 41(4): 665-695. |
[18] |
Finkelstein L, Gabrilovich E, Matias Y, et al. Placing search in context: The concept revisited. ACM Transactions on Information Systems (TOIS), 2002, 20(1): 116-131. DOI:10.1145/503104.503110 |
[19] |
Miller GA, Charles WG. Contextual correlates of semantic similarity. Language and Cognitive Processes, 1991, 6(1): 1-28. DOI:10.1080/01690969108406936 |
[20] |
Bruni E, Tran NK, Baroni M. Multimodal distributional semantics. Journal of Artificial Intelligence Research, 2014, 49(1): 1-47. |
[21] |
Rubenstein H, Goodenough JB. Contextual correlates of synonymy. Communications of the ACM, 1965, 8(10): 627-633. DOI:10.1145/365628.365657 |
[22] |
Yang DQ, Powers DW. Verb similarity on the taxonomy of WordNet. Proceedings of the 3rd International WordNet Conference. Jeju Island, Korea. 2006.
|
[23] |
Luong MT, Socher R, Manning CD. Better word representations with recursive neural networks for morphology. Proceedings of the Seventeenth Conference on Computational Natural Language Learning. Sofia, Bulgaria. 2013. 104–113.
|
[24] |
Spearman C. The proof and measurement of association between two things. The American Journal of Psychology, 1904, 15(1): 72-101. DOI:10.2307/1412159 |