词表征 1:WordNet0-1表征共现矩阵SVD
Posted cherrychenlee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了词表征 1:WordNet0-1表征共现矩阵SVD相关的知识,希望对你有一定的参考价值。
原文地址:https://www.jianshu.com/p/c1e4f42b78d7
一、基于知识的表征
参见图1.1,WordNet中包含同义词集(synonym sets)和上位词(hypernyms, is a关系)。
其存在的问题为:
- 作为资源来说是好的,但是它失去了词间的细微差别;
比如说"good"和"full"同义是需要在一定的上下文中才能成立的。 - 易错过词的新义,基本不可能时时保持up-to-date;
- 是人为分的,所以是主观的结果;
- 需要花费很多的人力去创建和调整;
- 很难计算出准确的词间相似度。
二、基于数据库的表征
(一)词本身
参见图2.1,0-1表征中,向量维度为数据库中总词汇数,每个词向量在其对应词处取值为1,其余处为0。
其存在的问题为:
- 因为不同词间相互正交,所以很难计算词间相似度。
(二)结合上下文
基本思想:相似的词有相似的上下文。
1、共现矩阵
1)基于整个文档
词-文档共现矩阵\(\in R^{|V|*M}\),其中,\(|V|\)为词汇量大小,\(M\)为文档数量。
常给出文档的主题信息。
2)基于上下文窗口
词-词共现矩阵\(\in R^{|V|*|V|}\),其中,\(|V|\)为词汇量大小。
窗口大小常取5~10,通常对称、不分左右。
常捕获语法、语义信息。
图2.2中红框部分为基于窗口大小为1、不区分左右形成的"love"、"enjoy"对应的高维稀疏词向量。
其存在的问题为:
- 共现矩阵的大小随着词汇量的增多而变大;
- 维度高;
- 数据稀疏带来的鲁棒性差。
2、低维稠密词向量
1)基于SVD进行降维
通过对共现矩阵进行SVD,得\(X=USV^T\)。选择\(U\)的前\(k\)列得到\(k\)维词向量。
通过计算\(\frac{\sum_{i=1}^{k}s_i}{\sum_{j=1}^{|V|}s_j}\)得到前\(k\)维捕获到的信息比例。
其优势为:
- 有效地利用了统计信息。
其存在的问题为:
- 难以加入新词,每次来个新词,都得更新共现矩阵,然后重新SVD;
- 由于大多数词不共现,导致矩阵十分稀疏;
- 矩阵维度通常很高(\(\approx 10^6*10^6\));
- 计算代价高,对于\(n*m\)的矩阵为\(O(nm^2)\);
- 需要对共现矩阵进行处理来面对词频上的极端不平衡现象。
其常用的解决办法为:
- 忽视"the"、"he"、"has"等功能词或者限制其次数不超过某个值(常100);
- 基于文档中词间距离对共现矩阵中的count进行加权处理,常窗口中离中心词越近的词分配给其的权重越大;
- 使用Pearson相关系数(\(C(X,Y)=\frac{cov(X,Y)}{\sigma(X)*\sigma(Y)}\))来代替原本的count,负数置0。
以上是关于词表征 1:WordNet0-1表征共现矩阵SVD的主要内容,如果未能解决你的问题,请参考以下文章