自然语言的智能识别简介

Word2vec在自然语言词向量中基本原理和应用的研究

朱宏 刘滨浩 邓胜林 王宏瑞 刘玲 石雨

(云南大学软件学院软件工程班,云南昆明,650500)

要:现代计算机自然语言的智能识别技术成为了时代发展的重要方向,可以说智能化的生活已经走入了大众的生活。本文研究了Word2vec在自然语言的单词向量的基本原理和应用。Word2vecGoogle公司在2013年在研究自然语言的识别模型的背景下所推出的软件工具。本文探讨了自然语言的智能识别的里程碑,并且重点研究现在最为成熟的Word2vec所采用的CBOWSkip-gram模型对于自然语言的智能识别的作用和这两种模型的异同。最后,本文还探讨了Word2vec对于自然语言智能识别的应用。

关键词:自然语言  智能识别  Word2vec  CBOW  Skip-gram  

1. 引言

计算机在现代社会各个方面中起着必不可少的作用,以计算机智能识别应用技术为核心的自然语言智能识别更是飞速发展,慢慢地走入我们大众的视线[]。智能化的普及是着力于解放人工传统的工作方式,提高效率,甚至达成传统人工所不能完成的工作。人们所处的时代每天产生海量的数据。如何高效的利用这些数据就依赖智能化的工作方式。

本文主要探究了自然语言的智能识别,如何让计算机能够正确的识别和处理自然语言,消除语言歧义,致力于代替人工的工作模式是自然语言智能识别的一大核心研究方向,而且自然语言的智能识别从基于规则的转变到了基于统计的转变[]。本文探究了自然语言智能识别的发展历程和重点介绍了Google公司2003年推出的Word2vec[]的基本原理和实际应用。其中又主要介绍了Word2vecCBOWSkip-gram模型的基本原理和实现方式。最后总结了自然语言智能识别的重要性和发展前景。

2. 自然语言智能识别的发展

2.1统计语言模型

2.1.1语言句子的二元模型

对于计算机来说,怎样判断一个句子是否合理是自然语言智能识别的重点。对于计算机,需要建立相应的语言模型才能很好的识别自然语言。统计语言模型是一个概率分布,就是已知一个词出现的条件下前后位置出现的词的概率,公式:

P(w1,w2,...,wn)=P(w1)P(w2|w1)P(w3|w1,w2)...P(wn|w1,w2,...,wn−1)[]

 

其中wi是一句话的第i个词,P表示条件概率。

后来俄国科学家马尔科夫假设该词出现的概率只与前面出现的词相关,这就是二元模型,于是公式变成:

 

P(w1,w2,...,wn)=P(w1)P(w2|w1)P(w3|w2)...P(wn|wn−1)

 

利用贝叶斯公式最后得出计算单词出现合理的概率公式:

 

P(wi−1,wi)=N(wi−1,wi)/N(wi−1)

 

 

 

2.1.2N-gram模型

基于上面的二元模型,假定文本中的每一个wiwi和前面的N-1个词有关,而与更前面的词无关,这样当前词wiwi的概率只取决于前面N-1个词P(wi−N+1,wi−N+2,...,wi−1)P(wi−N+1,wi−N+2,...,wi−1),因此: 

P(wi|w1,w2,...,wi−1)

=P(wi|wi−N+1,wi−N+2,...,wi−1)P(wi|w1,w2,...,wi−1)

=P(wi|wi−N+1,wi−N+2,...,wi−1)


上式对应的就是N元模型[]N-Gram Model)不过这样做的弊端就是当N>3时可能词的相关性就不是那么大了,计算结果准确性差.

2.2词向量

2.2.1词向量简介

词向量就是给每个单词用纬度的方式去描述[],把词语抽象出来交给计算机处理的数据结构[],每个词都有自己的定位空间和大小,可以进行比较和加减获得词语相似度[]

传统的单词特征的抽取把单词作为一个不可以再分基本组成部分,认为不相同的符号之间没有任何的关系,比如:“计算机”和“电脑”被认为两个没有关系的字符串,但是这样显然不符合我们人类的思维。由此而生,人们提出了空间词向量的方法来解决这个问题,空间词向量可以从大量的数据中统计和训练得到[]1954年Harris提出分布式表示的假说,利用词语的上下文相似假说该词相似,上下文相似的词向量来自于在大量的语料中利用神经网络模型[]训练得来,使用最广泛的是Word2vec使用的连续词袋模型(CBOW (Continuous Bag-Of-Words))和Skip-gram模型。其他公开的模型还有HLBL、SENNA、Turian’s、Huang’s、Glove等。Word2vec在语义上有较好的联系性。所以Word2vec的大部分测试指标较为准确。

2.2.2 One hot representation矩阵

One hot representation矩阵就是每一个词在一个N维的数组中有唯一的标识,每一个单词有唯一的id,其余纬度标识成0.

例如: 
苹果 [0,0,0,1,0,0,0,0,0,……]

那么一句话就是由多维的数组组成,便构成了矩阵,这么做的好处是处理维度越高的自然语言可以用线性方法来表示和计算,但是同时也会造成纬度灾难和语义关联性差的不良后果,由于数据稀疏,可能出现语义关联度为0的情况。 

2.2.3 Distributed representation

为了解决One hot representation的问题,采用分布式的表示方法就会更好。分布式表示就是利用多维度来表示词的属性。

例如: 
苹果 [20,71,0,0,80,0,……]

这样的表达方式可以大大减少词向量的维度,解决了Distributed representation语义关联为0的问题,并且更好的,多方面的描述了词向量的特征。但是同时也没有从根本上解决维度灾难的问题和数据稀疏的问题。

2.3神经网络语言模型

语言模型是计算词语在语句中出现的概率来统计自然语言的正确性,是NLP研究的基础方向。神经网络语言模型的发展经过了很长的时间,期间取得了很大的研究成果。开始由Bengio等人提出NNLM(Neutwork language model)最为被人们认可。这个模型为之后的模型研究打下了坚实的基础。其模型见图一:

 

图一 神经网络语言模型

NNLM根据语料库C生成对应的词汇表V,V中的每一个词汇对应一个编号i,将语料库作为样本输入[]

经过不断的模型优化,出现了现在人们应用最为广泛的,相对于NNLM简单的连续词袋模型CBOW (Continuous Bag-Of-Words)和Skip-gram模型。在训练方法上,也出现了Hierarchical Softmax[]等优秀的算法。本文主要介绍的是Word2vec所使用的连续词袋模型CBOW (Continuous Bag-Of-Words)和Skip-gram模型。

3. Word2vec的核心架构模型

3.1Word2vec简介

2013年,Google开源了一款用于词向量计算的工具--word2vec,引起了业界的极大关注。他的强大在于可以在百万级的词典和上亿的数据上快速的进行训练。最终得到词向量,并且能很好地体现出词语之间的相关性和相似性。Google开源的Word2vec使用的就是现在最有权威的连续词袋模型CBOW (Continuous Bag-Of-Words)和Skip-gram模型。Word2vec是一款软件,不是一种训练算法。这款强大的软件的开源对于自然语言的智能研究起着很大的作用。也为我们省去了搭建模型的时间。目前也有很多的编程语言API实现Word2vec的功能。比如:python和java中都可以调用相应的包来实现文本的模型训练和词向量的统计。Word2vec的训练框架[]为如图二:

 

图二 Word2vec的训练框架

3.2深度神经网络模型

深度神经网络模型是一个具有多层感知机的模型,在未来,出现上千层的深度神经网络模型也不奇怪。深度神经网络模型在自然语言的处理中取得了很大的成效。深度神经网络模型在词性识别,命名识别和语快的识别中应用广泛。深度神经网络模型如图一所示:

 

图三 深度神经网络模型

图一中的深度神经网络模型由输出层,隐藏层和输入层组成。输入层是最底层,对应上下文的特征结合状态转移概率求得句子的最佳标注序列[]

3.3CBOW模型

CBOW模型的核心思想就是上下文来确定该词的出现概率来匹配词语的相似度,可以设定上下文影响的距离度,上下文对于该词的影响力度是一样的,之所以叫词袋模型,就是从袋子中取出词语,取出的顺序对于结果没有影响,但是要求就是要有足够的词语来训练,在大量的训练资料中的出我们所需要的特殊实例。这也是深度学习的方向,不再要求具体的特定模型,而是统计模型[]。CBOW模型主要包含了输入层,投影层,输出层,当前词语,词语上下文,上下文累加和。从输入层输入已经数据化的词向量,在投影层对这些向量求累加和,输出层对应一个二叉树,各词出现次数的当权值构造的赫夫曼树[],叶子节点对应词典中的词。从而构成模型。CBOW的模型复杂度为:

Q=N*D+D*|V|

其中N为输入层的窗口长度,D为发射层纬度,|V|为训练语料的词典大小(不同的词语个数)。复杂度就是简单的矩阵计算,主要的计算量为D*|V|[]CBOW的模型示意图如图二:

 

图四 CBOW模型示意图

其中输入层就是从词袋中取出的词语,W(i)中的i表示取出的词语相对于目标词语的位置。

3.4 Skip-gram模型

Skip-gram模型的提出很好的解决了语料经过模型训练后怎样体现出语义的问题,在统计语言模型的应用中,大量的语料是确定语义相似性的基本保证,语言的重复次数决定了语义模仿的程度,模型的模仿程度才会更高。其次,处理方式也是影响最终模型的学习度的一大重要因素,如果断章取义,那最后结果可能会和我们的理解偏差很大。而Skip-gram模型的提出很好的解决这些问题。Skip-gram模型是允许跳过几个词来确定上下文的对应关系,中间跳过的词数就在一定程度上解决了断章取义的问题。因为Skip-gram模型识别的不全是相邻词的出现概率,更多是附近的词出现的概率。Skip-Gram模型的图与CBOW相反,CBOW是从原始语句推测目标字词,Skip-Gram是从目标字词推测原始语句,CBOW适合小型数据库,而Skip-Gram在大型数据中更加合适。N-gramN=2N=3的实例如图四[]

 

图五 N-gramN=2N=3实例

最终效果是“中国足球踢得太烂了”,可以看到这种表达方式是能够体现出这个语义的,同时也可以看出N的取值不同,效果也会有差异。一般N>3以上效果会有偏差,所以一般N取值不大于3的。Skip-gram模型如图五:

 

图六 Skip-gram模型

 

4. Word2vec在语言智能识别的应用

4.1Word2vec的应用领域

自然语言处理技术在语音智能上的应用主要包括同声传译、智能机械的聊天以及特定人群的辅助系统等方面。特别是同声传译涉及到包括语音建模、合理的语义转换及语言的精确翻译等,是自然语言处理技术应用的直接领悟,同时同声传译中的语言翻译还要求语音和语义的转化,即音似字如何从特定的语言情景中译出,这种情况通过自然语言处理技术对其进行算法验证和语义的情景化处理,从而提高语言语义的转换质量; 智能机械的聊天,如机器人的聊天系统,也是语音智能的一个应用分支,它主要处理的是比较广泛的如自动回答互动对话系统,在这样的一个语音智能中,机器人聊 天不可避免地要具有语音和文本的转化以及逻辑规范性的自动答话,通过对智能识别自然语言处理技术的应用,做到在语义上的理解、逻辑的正确推断和具体知识的应用等得到质的提高,进而将应答 互动和聊天的准确性提高到一个较被普遍认可的程度,增强机器人之类的智能机器系统在实际中的应用; 而自然语言处理技术在自动场景和特定人群提供辅助方面的应用,将为一些特定的需要帮助的群体———如盲人提供便利的帮助,帮助他们在生活中解决一些诸如交通出行的智能提示方面的困难,对他们来说将是非常必要的。

所以,基于智能识别的自然语言处理技术对于实际的语音智能方面的应用,将会帮助社会生活的方方面面、各个领域的群体,它的价值在不远的将来,是不可估量的,因为智能识别的自然语言处理技术,是一个多学科交叉、多技术应用、多领域合作的一个技术整合[]

4.1Word2vec工作目录

Google官方推出的软件包工作目录如图七:

 

图七 Word2vec的工作目录

其中,demo-word.sh是词库训练模型的各项参数,text8是自动采用的训练样本,可自行设定自己的训练集。Distance.c可以计算词向量的余弦值。在Linux的系统下可以在命令提示符接运行demo-word.sh进行使用。Window系统需要安装Linux的虚拟环境。

4.2Word2vec的训练参数

Word2vec的训练参数表[]如图八:

 

图八 Word2vec的训练参数

4.3Google Word2vec软件包的使用

(1)Google官网或者相关平台上下载Word2vec的文件夹包。

 

图九 word2vec

(2)打开Linux运行环境。

(3)切换到trunk目录下执行make命令。

 

图十 切换到trunk工作目录

(4)执行demo-word.sh并下载再带的text8训练集或者自己的分词训练集。

 

图十一 下载自带的text8训练集

(5)加载完毕输入单词。

(6)得到输出结果。

 

图十二 Word2vec输出结果

5. 结语

相比于上个世纪的两次工业革命,计算机智能时代来的更为快速,对我们的生活也起到了很大的提高作用,在这个充满智能化的时代,自然语言的智能识别是尤为重要的研究方向,也是我们需要全力突破的瓶颈,Google推出的Word2vec是代表现在最为先进的自然语言处理技术,实用性比较大,Word2vec应用了CBOWSkip-gram模型,结合使用了hierarchy softmaxnegative sampling等优化技术,在自然语言智能化表达方面起了非常大的推动作用。在未来的自然语言的智能识别还会有长足的进步,同时也是值得研究的方向和值得涉足的领域。

参考文献:

[] 李翠霞.现代计算机智能识别技术处理自然语言研究的应用与进展[A].中国知网.2012

[] 周练.Word2vec的工作原理及应用探究[A].中国知网.2015.吴军.数学之美[M].北京:人民邮电出版社.2012

[] Tomas Mikolov.Word2vec project [EB/OL].[2014-09-18].https://code.google.com/p/ word2vec/.

[]维基百科.语言模型 [OL].[2013-3-12]

[] 一夜了.自然语言处理-统计语言模型(数学之美).CSDN博客.2017

[] Huang Xian-ying, Chen Hong-yang, Liu Ying-tao, et al.A novel feature word selecting method of micro-blog short text[J].Computer Engineering&Science, 2015, 37 (9) :1761-1767. (in Chinese)

[] 涂楚成.基于CUDA的Word2Vec设计与实现[D]西安:西安电子科技大学,2015.12.29

[] 刘培磊,唐晋韬,王挺,谢松县,岳大鹏,刘海池.基于词向量语义聚类的微博热点挖掘方法[J].计算机工程与科学,2018,40(02):313-319.

[] Mikolov T, Yih W, Zweig G.Linguistic regularities in continuous space word representations[C]∥Proc of NAACLHLT’13, 2013:746-751.

[] 路佳佳.神经网络语言模型[D]山西:山西大学,2017.2.9

[] 周练.Word2vec的工作原理及应用探究[A].中国知网.2015.吴军.数学之美[M].北京:人民邮电出版社.2012

[] Frederic M.Yoshua B.Hierarchical probabilistic neural network language model[C]//Proceedings of the International Work-shop on Artificial Intelligence and Statistics.Barbados:MIT Press.2005:246-252

[] 周练.Word2vec的工作原理及应用探究[A].中国知网.2015.吴军.数学之美[M].北京:人民邮电出版社.2012

[] 游飞,张激,邱定,于铭华.基于深度神经网络的武器名称识别[J].计算机系统应用,2018,27(01):239-243.

[] 熊富林,邓怡豪,唐晓晟.Word2vec的核心架构及其应用.中国知网.2015

[] 许莹.赫夫曼树遍历算法的优化[D]安徽:安徽电子信息职业技术学院,2009

[] 熊富林,邓怡豪,唐晓晟.Word2vec的核心架构及其应用.中国知网.2015

[] 熊富林,邓怡豪,唐晓晟.Word2vec的核心架构及其应用.中国知网.2015

[] 李翠霞.现代计算机智能识别技术处理自然语言研究的应用与进展[J].科学技术与工程,2012,12(36):9912-9918.

[] 周练.Word2vec的工作原理及应用探究[A].中国知网.2015.吴军.数学之美[M].北京:人民邮电出版社.2012

猜你喜欢

转载自blog.csdn.net/Mr_carry/article/details/80360540
今日推荐