Word2Vec: 词向量技术的基础与模型 - 深度学习与自然语言处理1

本课程介绍自然语言处理中的基本工具:Word2Vec,它的历史渊源、原理、架构以及实现技术。 主要内容包括: 词嵌入问题:为什么要研究词嵌入,以及目前词嵌入方法的分类,Word2Vec的简单历史。 1、Word2Vec介绍:Word2Vec是在2013年Google开发的一套词嵌入方法,它包含CBOW和Skip-Gram两种方法。目前,人们使用比较多的是Skip-Gram方法。2、Skip-Gram:详细介绍了Skip-Gram的工作原理。3、进一步,课程介绍了什么是负采样(Negative sampling),它的目的是为了解决什么问题。

讲师:   李嫣然

Word2Vec是目前基于深度神经网络的自然语言处理方法的基础,它可以为每一个单词计算得到一个向量表示。当进行句法翻译等高级自然语言处理任务的时候,这些向量表示可以作为神经网络的输入信息。


本课程主要内容包括:


  • 词嵌入问题:为什么要研究词嵌入,以及目前词嵌入方法的分类,Word2Vec的简单历史。

  • Word2Vec介绍:Word2Vec是在2013年Google开发的一套词嵌入方法,它包含CBOW和Skip-Gram两种方法。目前,人们使用比较多的是Skip-Gram方法。

  • Skip-Gram:详细介绍了Skip-Gram的工作原理。进一步,课程介绍了什么是负采样(Negative sampling),它的目的是为了解决什么问题。

更多相关课程:

有关Word2Vec原理的讲解:

083c206d6642814be00973fbac1649c4.png

李嫣然:Word2Vec: 编码与实践-自然语言处理与深度学习2


WechatIMG32.jpg

李嫣然:词嵌入的相关问题-深度学习与自然语言处理3


g3.png

谷伟伟:浅谈Word2Vec:自然语言处理的基石






Word2Vec课堂笔记


  • 作者:AndreaSunshine、甄慧玲、祁辉记录,Jake整理、综合

  • 课件下载:Word2Vec介绍



一、背景


传统自然语言处理的表达,一般以词为单位。自然语言字符表达成计算机能处理的信息,采取离散表达。假设有个词表,可以理解为字典,如何在这一万个字中表达这一个字。用一万维的向量表达这个字,某个字只可能在某一维地方为1,其他位置都为0。如下图所示:


blob.png


这种方法特点:根据词表大小决定向量长度。很占空间,即使稀疏表示。缺乏泛化性(lack of generalization)。这种表示没法表达相似的概念。所以希望能够有一种方式计算这种泛化性,稠密向量。


“You shall know a word by the company it keeps.”--J.R. Firth(1957)基于同一种思想,生出很多方法,主要有两种假说。





微信截图_20170216183448.png



假说一:The distributional hypothesis 分布式假说


一个词由周围词来推断。相似的词会出现在相似的语境里。例如今晚的天空有很多星星。句子中天空和星星相关,横向共现。这样,我们可以由词跟语境的关系来判断相似度,天空和星星就是想死的。BOW, LSI, LDA等模型都是由这种假说出发的,产生的很多种方法来计算这个实值向量。1954年BOW模型不考虑语序,出现一次加1。2003年LDA模型,是主题模型中的某一个特例。PMI/PPMI等方法都研究共现,相关词共同出现几次,然后再做SVD矩阵分解等。



假说二:Distributed models


相似词在相似语境contex下。例如今天天空有很多星星。今天天空有个太阳。这两个句子中的星星和太阳这两个词出现在了同样的上下文之中,它们是相似的,但它们是一种纵向的相似性。基于这种假说诞生的方法,最重要的就是这个Word2Vec。


微信截图_20170216183508.png


因此,我们可以看到,对于这两种方法来说,两个词的相似性依赖于它们彼此所处的环境,而环境又有两种,一种是同一个句子之中,另一种是在不同句子,但是相似的上下文之中。


当然,我们要讲解的重点是Word2Vec。事实上,Word2Vec是由神经网络语言模型得到的一个副产物。这就是Bangio的那篇经典的论文:(http://citeseerx.ist.psu.edu/showciting?doi=10.1.1.133.9693),文中提出了一种利用神经网络的方法来做自然语言理解的思路:


微信截图_20170216183537.png


尽管这一框架本身并不实用,但是却包含了将单词进行向量编码的操作,而这却成为了后来词向量算法Word2Vec的前身。

于是,到了2013年Google的Mikolov提出了两套实用的算法,它们统称为Word2Vec。Word2vec 是代码项目的名字,只是计算词嵌入(word embedding)的一个工具,是CBOW和Skip-Gram这两个模型的合体,目前这套工具完全开源。。

如下图所示,左边的CBOW是利用词的上下文预测当前的单词;而Skip-Gram则是利用当前词来预测上下文。

微信截图_20170216183548.png



要了解更多详情,请学习该课程……

讲师介绍
李嫣然

香港理工大学在读博士生,集智科学家,著名公众号:程序媛的日常 的运营者之一,人称小S。研究方向为自然语言处理中的语义表达和语言生成,致力于利用深度学习、认知科学等相关领域的方法和成果探究人类语言习得和语言表达的奥秘。