探秘Word2Vec(二)-背景知识

word2vec是用来生成词向量的工具,而词向量与语言模型有着密切的关系,为此,不妨先来了解一些语言模型方面的知识。

1、统计语言模型

统计语言模型(Statistical Language Model)是所有NLP的基础,被广泛应用于语音识别,机器翻译,分词,词性标注和信息检索等任务。
简单的说,统计语言模型是用来计算一个句子的概率的概率模型,它通常基于一个语料库来构建,那什么叫做一个句子的概率呢?假设一个由(w1,w2,....wT)这T个词按顺序构成的一个句子W,则(w1,w2,....wT)的联合概率:


上面的这个式子就是这个句子的概率,利用贝叶斯公式,可以将上式链式分解为:

所以,可以看到,上面模型需要估计的参数有T个,拆借出的每个条件概率都是语言模型的参数,如果这些参数都已经算得,则可以算出一个句子的概率。
看起来很简单,但是稍微分析一下,就可以知道具体实现起来有多麻烦。例如,先来看看模型参数的个数,刚才考虑的是一个长度为T的句子,就需要计算T个参数,不妨假设语料库对应词典D的大小为N,那么考虑长度为T的仁义句子,理论上就有NT种可能,每种可能都要计算T个参数,总共就需要计算TNT个参数。这个量级非常吓人,此外,这些概率计算之后需要保存下来,存储这些信息也需要巨大的空间开销。
那么,这些参数如何计算呢?常见的方法有n-gram模型,决策树,最大熵模型,最大熵马尔可夫模型,条件随机场,神经网络方法等。这里只介绍n-gram模型和神经网络模型。

2、N-Gram模型


可以看出,一个词出现的概率跟它前面的所有词都相关,如果假定一个词的出现概率只跟他前面固定数目的词相关呢?这就是n-gram模型的基本思想,它做了一个n-1阶的马尔可夫假设,认为一个词的出现的概率就只与它前面的n-1个词想管,即:

于是我们便有:

以n=2为例,即每个词的出现的概率只与它前面一个词有关,即:

这样一件话,不仅使得单个参数的统计变得更容易,也使得参数的总数变少了。
那么,n-gram中参数n一般取多大比较合适呢?一般来说,n的选择需要同时考虑计算复杂度和模型效果两个因素。
在计算复杂度方面,假定我们的词典大小N=200000,则模型参数数量随着n逐渐增大的情况如下表所示:

可以看到,随着n的增大,模型参数数量呈指数级增长,所以实际中n不能取太大,一般取n=3左右。
在模型效果方面,理论上是n越大,效果越好,现如今,互联网的海量数据以及机性能的提升使得计算更高阶的语言模型(n>10)成为课呢呢个,但需要注意的是,当n大到一定程度的时候,模型效果的提升幅度会变小,比如n从1到2,再从2到3,模型效果上升显著,但从3到4时,模型效果的提升就不显著了。另外,n-gram中还有一个叫做平滑化的重要环节,主要考虑以下两个问题:

有关平滑化的问题,大家可以参考博客:
http://blog.csdn.net/baimafujinji/article/details/51297802
总结起来,n-gram模型就是这样一种模型,其主要工作就是在语料中统计各种词串出现的次数以及平滑化处理,概率值计算好之后存储起来,下次需要计算一个句子的概率时,只需找到相关的概率参数,将它们连乘起来就好了。

然而在机器学习领域有一种通用的招数是这样的,对所考虑的问题建模后现为其构造一个目标函数,然后对这个目标函数进行优化,从而求得一组最优的参数,最后利用这组最优参数对应的模型来进行预测。
对于统计语言模型而言,利用最大似然,可把目标函数设为:



上式中,C表示语料,Context(w)表示词w的上下文,即w周边的词的集合。
当然,实际应用中通常采用最大对数似然,把目标函数设为:



然后对上面的函数进行最大化,可以看到,概率p(w|context(w))被视为关于w和Context(w) 的函数,即:

其中Θ为待定参数集。这样的话,但我们得到最优的参数Θ后,F也就唯一确定了,以后任何概率p(w|context(w))都可以通过F来计算了,与n-gram相比,这种方法不需要事先保存所有的概率,而是通过直接计算来获取,而且通过选取合适的模型可以使参数Θ的个数远小于n-gram中参数的个数。

显然,对于这样一种算法,最关键的地方就在于函数F的构造了,接下来我们会介绍一种通过神经网络来构造F的方法,这种方法也可以视为word2vec种算法框架的基础或者前身。

3、神经概率语言模型

本节介绍的神经概率语言模型,用到了一个重要的工具-词向量。什么是词向量呢?简单来说,就是对辞典D中任意的词w,将词w转化为一个固定长度的向量v(w),这个向量就称为词向量。
既然是神经概率语言模型,那么当然要用到一个神经网络啦。下图是神经网络的示意图:



神经网络包括四个层,输入层,投影层,隐藏层,输出层,W和U分别表示投影层与隐藏层以及隐藏层和输出层之间的权值矩阵,p和q分别为隐藏层和输出层上的偏置向量。
对于语料C中任意一个词w,将Context(w)取为其前面n-1个词,如果不满n-1个词,那么可以人为添加用以填充,这样二元对(Context(w),w)就是一个训练样本了,接下来,讨论(Context(w),w)经过上面的神经网络时是如何运算的。如果语料C和词向量长度m给定后,投影层和输出层的规模就确定了,投影层的规模为(n-1)m,而输出层为N即语料C的词汇量大小。而隐藏层的规模是可调参数可任意调整。
为什么投影层规模是(n-1)m呢,因为输入层是n-1个词,每个词的词向量长度为m,输入层到投影层只是做了一个简单的向量连接操作,所以长度为(n-1)m。那么,神经网络的计算过程就很清楚了:



经过上述两步得到的输出是一个长度为N的向量,其分量不能表示概率,我们还需要做一个softmax归一化:

上式就给出了概率p(w|context(w))的函数表示,即得到了上一节中提到的函数F,那么在神经概率模型中,待确定的参数Θ有哪些呢?

上面的参数都是通过训练算法得到的。那么神经网络模型的运算量多大呢?投影层的规模为(n-1)m,隐藏层的规模是nh,输出层的规模为N:



不难发现,整个模型的大部分计算集中在隐藏层和输出层之间的矩阵向量运算,以及输出层上的softmax归一化运算,因此后续的很多工作,包括word2vec都是在这一部分上进行改进的。
那么神经网络概率模型相比于n-gram的优势在哪呢?主要有以下两点:
1、词语之间的相似性可以通过词向量来体现
2、基于词向量的模型自带平滑功能,不需要进行额外的处理
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容