文章目录
1. 文本编码方式
1.1 one-hot
缺点:
- 维度大
- 词和词之间都是孤立的,无法表示词与词之间的语义信息
1.2 分布式表示
正所谓:“物以类聚,人以群分”,所以分布式表示的主要思想为:上下文相似的词,其语义也相似。其主要分为三种方法。
- 基于矩阵的分布式表示
- 基于聚类的分布式表示
- 基于神经网络的分布式表示
2. 分布式表示
如节1.2所述,分布式表示主要分为三种方式。这三种方式使用了不同的技术手段,但都是基于分布假说,核心思想由两部分组成:
- 选择一种方式描述上下文
- 选择一种模型刻画目标词与上下文的关系
2.1 基于矩阵的分布式表示
这类方法需要构建一个“词-上下文”矩阵,每行对应一个词,每列表示一种不同的上下文,矩阵中的每个元素对应相关词和上下文的共现次数。该方法分为以下三步:
步骤 | 内容 | 解释 |
---|---|---|
step1 | 选取上下文 | 法1:将词所在的文档作为上下文,形成“词-文档”矩阵 法2:将词附近的上下文中的词(例如上下文窗口中的5个词)作为上下午,形成“词-词”矩阵 法3:将词附近的n元词组作为上下文,形成“词-n元组”矩阵 |
step2 | 确定矩阵中各元素的值 | 常用的有tf-idf、PMI和直接取log |
step3 | 矩阵分解 | 奇异值分解(SVD)、非负矩阵分解(NMF)、典型关联分析(CCA)、HPCA |
LSA:使用“词-文档”矩阵,tf-idf作为元素值,并用SVD分解
Global Vector(GloVe):使用“词-词”矩阵进行分解从而得到词向量
2.1.1 GloVe
正如论文的标题而言,GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。我们通过对向量的运算,比如欧几里得距离或者cosine相似度,可以计算出两个单词之间的语义相似性。总体上看,GloVe模型是一种对“词-词”矩阵进行分解从而得到词表示的方法。
步骤
GloVe的实现可以分为三步:
- 构建共现矩阵: 根据语料库构建共现矩阵 X X X,矩阵第 i 行与第 j 列的值为 v i v_i vi 与 v j v_j vj 在特定大小的上下文窗口的共现次数 x i j x_{ij} xij 。一般而言,这个次数的最小单位是1,但是GloVe不这么认为:它根据两个单词在上下文窗口的距离d,提出了一个衰减函数: d e c a y = 1 / d decay = 1/d decay=1/d 用于计算权重,也就是说距离越远的两个单词所占总计数(total count)的权重越小。
- 构建词向量和共现矩阵之间的共现关系: 论文作者提出下面的公式可以近似表达二者的关系。 l o g ( x i j ) = w i T w ~ j + b i ( 1 ) + b j ( 2 ) log(x_{ij})=w_i^T\tilde{w}_j+b_i^{(1)}+b_j^{(2)} log(xij)=wiTw~j+bi(1)+bj(2) 其中 w i w_i wi 为词 v i v_i vi 作为目标词时的词向量, w ~ j \tilde{w}_j w~j 为词 v j v_j vj 作为上下文时的词向量 b ( 1 ) b^{(1)} b(1) 、 b ( 2 ) b^{(2)} b(2)为针对词表中各词的偏移向量。
- 在矩阵分解步骤,GloVe模型借鉴了推荐系统中的基于隐因子分解(Latent Factor Model)的方法,在计算重构误差时,只考虑共现次数非零的矩阵元素,同时对矩阵中的行和列加入了偏移项。具体为最小化下式:
L o s s = ∑ i , j ∈ V , x i j ≠ 0 f ( x i j ) ( w i T w ~ j + b i ( 1 ) + b j ( 2 ) − l o g ( x i j ) ) 2 Loss=\sum_{i,j \in V,x_{ij} \neq 0}f(x_{ij})(w_i^T\tilde{w}_j+b_i^{(1)}+b_j^{(2)}-log(x_{ij}))^2 Loss=i,j∈V,xij=0∑f(xij)(wiTw~