1、词语表示方法简介*MenuOne-Hot 表示方法PPMI矩阵表示基于SVD的表示方法基于神经网络的表示方法*One-Hot 表示方法NLP 中最直观,也是到目前为止最常用的词表示方法是 One-hot Representation,这种方法把每个词表示为一个很长的向量。这个向量的维度是词表大小,其中绝大多数元素为 0,只有一个维度的值为 1(或者出现的次数),这个维度就代表了当前的词。“话筒”表示为 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 “麦克”表示为 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 *One-Hot 表示方法这种 One-hot R
2、epresentation 如果采用稀疏方式存储,会是非常的简洁:也就是给每个词分配一个数字 ID。比如刚才的例子中,话筒记为 3,麦克记为 8(假设从 0 开始记)。存在问题词义鸿沟维度灾难*PPMI矩阵表示词语表示的向量长度等同于term表的长度对于单词的表示,统计所有词语与该词语作为上下文时出现的次数如要得到cat的单词向量我们就统计cat和其他所有单词在局部上下文中的共现情况假设cat和plays在语料中共现1000次plays对应的维度是55那么cat单词向量的第55维就是1000。*PPMI矩阵表示是一种和one-hot表示方法类似的稀疏表示方法能够对于共现关系进行表示同样存在维度
3、爆炸的问题(英文单词有限,目前算力可以支持,跨语言时会出现维度爆炸问题)*LSA/LSILSA(latent semantic analysis)潜在语义分析,也被称为 LSI(latent semantic index)主要对词语-文档矩阵进行SVD,对一个t*d维的矩阵(单词-文档矩阵)X可以分解为U*D*Vt其中U为t*m维矩阵U中的每一列称为左奇异向量(left singular bector)D为m*m维对角矩阵,每个值称为奇异值(singular value)Vt为d*m维矩阵, 每一列称为右奇异向量。*LSA/LSI*LSA/LSI优点1)低维空间表示可以刻画同义词,同义词会对应
4、着相同或相似的主题。2)降维可去除部分噪声,是特征更鲁棒。3)充分利用冗余数据。4)无监督/完全自动化。5)与语言无关。*LSA/LSI缺点1)LSA可以处理向量空间模型无法解决的一义多词(synonymy)问题,但不能解决一词多义(polysemy)问题。因为LSA将每一个词映射为潜在语义空间中的一个点,也就是说一个词的多个意思在空间中对于的是同一个点,并没有被区分。2)特征向量的方向没有对应的物理解释。3)SVD的计算复杂度很高,而且当有新的文档来到时,若要更新模型需重新训练。4)没有刻画term出现次数的概率模型。*共现矩阵分解类似于LSA/LSI,我们还可以对PPMI矩阵进行分解,使用
5、SVD分解设term表大小为n,则矩阵为n*n大小的方阵然后使用SVD进行分解,分解为U*D*Vt然后使用U阵作为词语表示的信息*共现矩阵分解特点对于词语的共现频率有良好的支持训练出的结果在近义词数据集上效果好(ws353等)*Word2vecWord2vec是Mikolov提出的词语表示模型主要包含两个模型:CBOWSkip-gram两个框架:Hierarchical Softmax(HS)Negative Sampling(NS)*Word2vecNerual Network Language Model(NNLM)*Word2vecNerual Network Language Mode
6、l(NNLM)三层神经网络架构输入层投影层输出层输入单词使用one-hot编码输入层是 单词数*词向量大小的矩阵,保存词向量投影层是将输入的映射后的向量 用tanh激活输出层使用softmax函数训练目标:最大化下面的函数*Word2vec*Word2vec模型与NNRM非常类似,也是输入层,投影层和输出层三层CBOW模型主要用当前词的上下文预测当前词Skip-gram模型主要用当前词来预测上下文所以CBOW目标函数为Skip-gram目标函数为*Word2vecCBOW*Word2vecCBOW输入层包含上下文中n个相关词的词向量,如我们选定n为2,则上下文长度为2,则会包含上文2个词和下文
7、2个词的词向量投影层将输入的2n个词向量做累加,即输出层输出一颗二叉树,以语料中出现过的词作为叶子节点,以词语在语料中出现的次数作为权值构造出的Huffman树,叶子节点数N为term表的长度,非叶子节点为N-1个针对NNLM中隐藏层到输出层的计算以及softmax计算等计算复杂度比较高的地方进行针对性的优化,并引入了Huffman树,为Hierachical Softmax技术奠定基础*Word2vecHierachical SoftmaxHS是word2vec中用于提高性能的关键技术我们假设词典D中的词w 使得Pw:从根结点出发到达w对应叶子节点的路径Lw:路径Pw中包含结点的个数P1w,
8、P2w,Plww:路径Pw中的Lw个结点,其中P1w表示根结点, Plww表示词w对应的结点D1w,D2w,Dlww:词w的Huffman编码,由Lw -1位编码组成,Djw表示路径Pw中第j个结点对应的编码1w, 2w, lw-1w: 路径Pw中非叶子节点对应的向量, jw表示路径Pw中第j个非结点对应的向量*Word2vecHierachical SoftmaxW=足球的时候图中红色的边构成路径Pw该路径长度为5,则Lw=5P1w,P2w, P3w,P4w, P5w为路径Pw上五个结点D2w,D3w,D4w,D5w分别为1,0,0,11w, 2w, 3w, 4w分别表示路径Pw上4个非叶子
9、结点对应的向量*Word2vecHierachical Softmax以足球为例,路径每经过一个结点都可以看成一个二分类,在word2vec中,编码为1的结点为负类,编码为0的结点为正类。根据逻辑回归,我们可以发现每个结点被分为正类概率为被分为负类的概率为*Word2vecHierachical Softmax在例子中,单词经过了4次二分类,概率分别为:基于以上的概率,我们可以表示目标词的概率如下*Word2vecHierachical Softmax对于词典D中的任意词w,Huffman树中必存在一条从根结点到词w的对应结点路径,路径上的每一个分支都可以看做是一个二分类,将这些概率乘起来就是
10、我们需要的目标词概率写成条件式为写成整体表达式为*Word2vecHierachical Softmax基于神经网络语言模型目标函数通常选用对数似然函数将概率计算式带入对数似然函数可得*Word2vecHierachical Softmax对于目标函数的最大化方式,word2vec采用了随机梯度上升法我们可以把目标函数的双重求和符号表示为可得由上式可知,该函数包含的参数包括向量 和 关于 的梯度计算如下*Word2vecHierachical Softmax对于 的更新公式可以写为,n表示学习率同理,关于 的梯度,由于目标函数中,两个变量是对称的,所以其梯度可以表示为由于 表示的是上下文词向量
11、的累加,我们通过下式对词向量进行更新*Word2vecSkip-gram*Word2vecSkip-gram输入层只包含当前样本的中心词投影层恒等投影,主要方便与CBOW模型对比输出层与CBOW一样,输出一颗二叉树*Word2vecSkip-gram参考CBOW,我们可以构造条件概率为使用HS的思想,可以将p(u|w)写为然后可以使用类似于CBOW模型中的似然函数处理方法进行处理*Word2vecHierachical Softmax把上式代回对数似然函数可得类似的,将三重求和符号简写,可以表示为*Word2vecHierachical Softmax类似于CBOW模型,我们可以把关于 的梯度用下式计算可以将该变量的更新公式写为*Word2vecHierachical Softmax同样利用 和 的对称性,可以将词向量的更新公式表示为 *基于CNN表示TextCNN 是利用卷积神经网络对文本进行分类的算法*