词表征 1:WordNet、0-1表征、共现矩阵、SVD

原文地址:https://www.jianshu.com/p/c1e4f42b78d7

一、基于知识的表征

图1.1 WordNet

参见图1.1,WordNet中包含同义词集(synonym sets)和上位词(hypernyms, is a关系)。
其存在的问题为:

  • 作为资源来说是好的,但是它失去了词间的细微差别;
    比如说"good"和"full"同义是需要在一定的上下文中才能成立的。
  • 易错过词的新义,基本不可能时时保持up-to-date;
  • 是人为分的,所以是主观的结果;
  • 需要花费很多的人力去创建和调整;
  • 很难计算出准确的词间相似度。

二、基于数据库的表征

(一)词本身

图2.1 0-1表征

参见图2.1,0-1表征中,向量维度为数据库中总词汇数,每个词向量在其对应词处取值为1,其余处为0。
其存在的问题为:

  • 因为不同词间相互正交,所以很难计算词间相似度。

(二)结合上下文

基本思想:相似的词有相似的上下文。

1、共现矩阵

1)基于整个文档

词-文档共现矩阵(in R^{|V|*M}),其中,(|V|)为词汇量大小,(M)为文档数量。
常给出文档的主题信息。

2)基于上下文窗口

词-词共现矩阵(in R^{|V|*|V|}),其中,(|V|)为词汇量大小。
窗口大小常取5~10,通常对称、不分左右。
常捕获语法、语义信息。
图2.2 基于上下文窗口的共现矩阵

图2.2中红框部分为基于窗口大小为1、不区分左右形成的"love"、"enjoy"对应的高维稀疏词向量。
其存在的问题为:

  • 共现矩阵的大小随着词汇量的增多而变大;
  • 维度高;
  • 数据稀疏带来的鲁棒性差。

2、低维稠密词向量

1)基于SVD进行降维

图2.3 基于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。
原文地址:https://www.cnblogs.com/cherrychenlee/p/10800546.html