学习笔记|Generating Word Embeddings

写在最前:本篇学习笔记是我在DUTIR情感计算组组会准备主讲过程的一些记录,通过阅读了一些博客以及论文,整理的学习笔记。初出茅庐,如有错误还请多多指教。

一、前言

为了完成自然语言处理的任务我们需要将词进行向量化,即将文字数字化。最简单的词表示方法是One hot Representation,其实质就是构造一个维度是词表大小的向量,其中绝大多数元素为 0,只有一个维度的值为 1,这个维度就代表了当前的词。One hot的词表示方法很容易理解,可以将文字数字化,但是却不能很好的表达词语的含义,而且NLP任务的语料通常很大,one hot的表示方法就会形成一个特别长的向量,不利于计算。

Word embedding[1]就是融合了语言模型和NLP特征学习技术的一种低维分布式词表示。区别于one hot的词表示方法,word embedding可以避免大量词汇的数据稀疏性,同时对数据进行降维,以及在句子级上的表示融入了词与词之间的相互关系。现有的最常用、最流行的生成语言模型及词向量的方法就是Word2Vec和Glove。下面就简单介绍一下Word2Vec和Glove的原理,以及一篇用ELM方法生成词向量的论文。

二、Word2Vec

在介绍Word2Vec之前,简单介绍一下神经概率语言模型。该模型是Bengio等人[2]在2003年提出的。图1是神经概率语言模型的架构图。

图1 神经概率语言模型架构图[2]

从图中可以看出,该模型主要包括输入层,投影层,隐藏层以及输出层。在隐藏层使用双曲正切函数tanh作为激活函数,在输出层进行softmax归一化运算。了解了神经概率语言模型的基本架构,我们就可以将Word2Vec中使用的网络结构与之进行对比了。Word2Vec包含两种模型CBOW和Skip-gram,包含两种架构Hierarchical Softmax和Negative Sampling。

CBOW(Continuous Bag-of-Words Model)和Skip-gram(Continuous Skip-gram Model)都是三层的网络结构[3],包括输入层、投影层和输出层。CBOW的训练目标是通过上下文预测目标词,与之相反,Skip-gram的训练目标则是输入目标词,输出目标词上下文的词向量。由图2、3可以直观地看出这两个模型的结构。CBOW模型输入的是context中2c个词的词向量,对于从输入层到投影层的映射,没有采取神经网络的线性变换加激活函数的方法,而是采用简单的对所有输入词向量求和的方法,这也是与神经概率语言模型不一样的地方之一。对于Skip-gram模型,输入层到投影层的过程则是一个恒等的映射。

 图2 CBOW模型[4]
 图3 Skip-gram模型[4]  

2.1基于Hierarchical Softmax的CBOW和Skip-gram

首先我们要明确上述两个模型基于Hierarchical Softmax的训练目标,CBOW的目标函数与神经概率语言模型的一致:

而Skip-gram的目标函数则是:

我们的主要工作就是求解出上述公式中的两个概率值。

为了避免要计算所有词的softmax概率,Word2Vec采用了哈夫曼树来代替从投影层到输出层的映射。Word2Vec有自己的构造哈夫曼树的规则:1.这棵哈夫曼树构造的基础是在语料中每个词的词频;2.与常规不同,Word2Vec中规定,词频大的为左孩子,词频小的为右孩子;3.哈夫曼编码时将0看做正类,1看做负类。例如一个语料中有“他”、“十分”、“喜欢”、“喝”、“雪碧”这5个词,他们在语料中对应的词频分别为“15”、“8”、“6”、“3”、“2”。我们可以构造如图4的哈夫曼树。

图4 哈夫曼树

我们现在想要输出词w =“雪碧”的情况,从根节点开始向下寻找这个词,把每个分支看成一个二分类,每次分类都会产生一个概率,我们将正类的概率记为p,那么是负类的概率就是1-p,把各分支上的概率乘起来就是w =“雪碧”的概率值。也因为这种一层一层向下寻找的机制,所以这种树形的输出被称为层级式softmax。具体的梯度计算过程本文就不在介绍了。

2.2基于 Negative Sampling 的CBOW和Skip-gram

如果遇到了一个生僻词,由于它在语料中的词频特别低,我们就需要在哈夫曼树中走很久,为了解决这个问题,引入了Negative Sampling。其原理就是中心词w和context(w),存在唯一正例,我们通过唯一正例和neg个负例,进行二元逻辑回归,最终得到每个词的词向量。我们首先将语料中的每个词按照词频映射到一条长度为1的线段上:

图5 对应关系

三、Glove

Word2Vec主要利用了局部上下文的关系,GloVe模型就是既使用了语料库的全局统计特征,也使用了局部的上下文特征,以此引入了词对的共现矩阵(记为X)。词对共现矩阵X中的元素Xij表示语料库中词j出现在词i上下文中的次数,那么Xi就表示语料库中所有词出现在词i上下文中的总次数。由此我们可以得出词j出现在词i上下文的概率Pij:

Glove的作者以目标词语ice和steam为例,讨论他们的共现概率。

图6 概率和比率

作者在这里引入了Ratio这个值,通过观察发现了Ratio这个值的一些规律,Glove模型就是利用的Ratio值的规律:

表1 Ratio值规律总结[5]

GloVe模型的训练目标就是得到每一个词的向量表示。假设现在已知词i,j,k的词向量wi,wj,wk。作者认为,这三个向量通过某种函数的作用后所呈现出来的规律和Ratio=Pik/Pjk具有一致性,即相等,也就可以认为词向量中包含了共现概率矩阵中的信息。所以这里的问题就是寻找一个函数F使得下式成立:

这个函数的构造过程可以看出作者的胆大心细。感兴趣的可以自行阅读GloVe模型 - Weirping - 博客园

四、论文

《Generating Word Embeddings from an Extreme Learning Machine for Sentiment Analysis and Sequence Labeling Tasks》是发表在Cognitive Computation2018上的论文。

4.1模型介绍

这篇论文使用了极限学习机(ELM)与自动编码器结合来生成词向量。对ELM感兴趣的可以参阅极限学习机(ELM)的使用 - CSDN博客

图7 ELM模型

ELM的工作原理十分简单,已知输入X和期望T的输出,可以求得隐藏层的输出H。由已知的H和T,就可以求解出隐藏层到输出层的权重值β。自动编码器是一种神经网络,通过压缩隐藏层中的输入特征向量,然后将其解压缩到输出层,实现特征提取和降维。将ELM模型与自动编码器相结合,即让期望输出近似等于输入,计算得到的权重β作为最终的词向量。

在设置词对共现矩阵权重的时候,作者参考了文献[6]的思想,认为上下文单词在单词-上下文矩阵中越接近目标单词,单词对就越重要,因此应该给出更高的权重,然后随着距离的线性下降。用1/distance给每个词对分配权重。

4.2实验部分

实验中用来训练词向量的语料如图8所示。

图8

实验步骤如下:

1.统计预料中最短文本次数记为M,统计每个词的词频F,通过F≥M构建词表V。

2.设置窗口大小C,给词对分配权重

3.对单词-上下文矩阵进行归一化

4.计算隐藏层输出H

5.得到结果

作者将训练好的词向量应用到了情感分类和序列标注的任务中。情感分类任务使用的是逻辑回归,序列标注任务使用的是RNN。

图9


图10

图9、图10显示了论文中生成词向量的算法较之Glove和Word2Vec在完成NLP任务中有细微提升。

4.3小结

ELM和Word2Vec都是三层网络,Word2Vec需要不断迭代得到最终结果,而ELM只需要一次计算,同时ELM借鉴了Glove的思想,既考虑了局部上下文,又考虑了全局上下文。论文通过完成NLP实验和语义分析论证算法的有效性。

参考文献:

[1]Lauren P, Qu G, Yang J, et al. Generating Word Embeddings from an Extreme Learning Machine for Sentiment Analysis and Sequence Labeling Tasks[J]. Cognitive Computation, 2018(3):1-14.

[2]Journal of Machine Learning Research 3 (2003) 1137--1155 Submitted 4/02; Published 2/03 A Neural Probabilistic Language Model

[3]博客:word2vec 中的数学原理详解https://blog.csdn.net/itplus/article/details/37969519

[4]Mikolov T, Le Q V, Sutskever I. Exploiting Similarities among Languages for Machine Translation[J]. Computer Science, 2013.

[5]博客:Glove模型https://www.cnblogs.com/Weirping/p/7999979.html

[6]Bullinaria J A, Levy J P. Extracting semantic representations from word co-occurrence statistics: a computational study[J]. Behavior Research Methods, 2007, 39(3):510-526.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容