赞
踩
此博客内容是本人在学习自然语言模型中的一些学习和总结,之所以记录下来,也是自己对相关知识的一种巩固,正所谓好记性不如烂笔头。好啦!闲话不多说,开始进入正题!
随着近几年deep learning 的发展,已在图像、视频、语音、自动驾驶等领域得到了空前的发展和进步,与此同时,在NLP领域,deep learning 的应用也是与日俱增。虽然目前仍然存在着一些诟病和困难,但是不可否认deep learning给NLP领域注入了新的血液,产生了不少的研究成果。
本文,旨在对NLP领域的词向量问题作一些梳理,首先我们来看看,人类是怎么来理解语言的,以及机器对自然语言的理解应该如何完成?
认知语言学(cognitive linguistics)是认知科学(cognitive science)与语言学交叉的一个研究分支,是研究人脑的思维、心智、智能、推理和认识等认知机理及其对语言进行分析和理解过程的一门学问。人脑处理语言的能力十分强大,可以快速、准确地阅读和理解各种类型的文本,即使文本中含有少量的错误,也不影响正常的理解,而且对语言的理解是增量式的,可以不断地将当前阅读的词汇语义与上文的含义进行整合,形成新的含义,并可在一定程度上推断下文的内容。另外,人脑在语言理解时只利用有限的记忆空间就可处理与当前词汇距离较远的词汇。如何对这些特性进行数学建模和模拟,一直是神经语言学家和计算语言学家关注的问题。
而语言认知计算模型就是刻画人脑语言认知和理解过程的形式化模型。理想情况下,希望建立可计算的、复杂度可控的数学模型,以便在计算机系统上实现对人脑语言理解过程的模拟。尤其近几年随着人工智能研究的再度兴起,人们在对人脑理解语言的生物过程尚不清楚的情况下,也在尝试通过模拟人脑神经系统的结构和功能,或者借鉴人脑的某些认知行为(记忆、编码、搜索、概念形成、缺省推理、隐喻投射、概念整合等)的表现,或受人脑某些功能和表现的启发,建立实用、有效的自然语言处理模型或方法,实现所谓的“类脑语言信息处理”。
这种连续的表示方式最常用的就是Distributed Representation(分布式表示),Distributed representation 最早由 Hinton在 1986 年提出。它是一种低维实数向量,这种向量一般长成这个样子:
[-0.1223,0.5561,0.7768,-0.2991,...]
向量的维度一般以50-200维比较常见。当然,向量的维度是可以自己定的。Distributed representation的思想是将语言的潜在语法或语义特征分散式地存储在一组神经元中,可以用稠密、低维、连续的向量来表示,也叫嵌入(Embeddings)。不同的深度学习技术通过不同的神经网络模型来对字、词、短语、句子以及篇章进行建模。除了可以更有效地进行语义计算之外,Distributed representation也可以使特征表示和模型变得更加紧凑。将词语映射到一个新的空间中,并以多维的连续实数向量进行表示叫做“Word Represention”或“Word Embedding”。自从21世纪以来,人们逐渐从原始的词向量稀疏表示法过渡到现在的低维空间中的密集表示。用稀疏表示法在解决实际问题时经常会遇到维数灾难,并且语义信息无法表示,无法揭示word之间的潜在联系。而采用低维空间表示法,不但解决了维数灾难问题,并且挖掘了词语之间的关联属性,从而提高了向量语义上的准确度。
向量之间的距离通常使用欧氏距离或者cos余弦距离进行计算。使用分布式表示,将所有的词语投射到低维的空间中,使得相似语义的词语距离越近,比如“计算机”和“电脑”应该在低维空间中距离应该大于“计算机”和“面包”之间的距离。
最近几年刚刚火起来的算法,通过神经网络机器学习算法来训练N-gram 语言模型,并在训练过程中求出word所对应的vector的方法。
在接下来的文章中,主要来介绍word2vec模型,以及如何训练自己的word2vec模型,敬请关注。本文是个人第一篇博客,写的不好或者有错误的地方望大家指出,并与本人联系,对NLP感兴趣的同学也可以与本人联系,相互学习。本人邮箱:1179632655@qq.com。
特别感谢:
1.[Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec词向量模型
3.Deep Learning in NLP (一)词向量和语言模型
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。