前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深入机器学习系列之Word2Vec

深入机器学习系列之Word2Vec

作者头像
数据猿
发布2019-07-26 16:32:28
3710
发布2019-07-26 16:32:28
举报
文章被收录于专栏:数据猿数据猿

★ 前言 ★

word2vec的核心是神经网络的方法,采用 CBOW(Continuous Bag-Of-Words,即连续的词袋模型)和 Skip-Gram 两种模型,通过训练,可以把对文本内容的处理简化为 K 维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。

举个例子,第21届世界杯落幕,法国队取胜。假设反过来想,给你一个法国队的关键词,你会联想到哪些词呢?一般而言,应该是世界杯、冠军、姆巴佩、德尚、克罗地亚等等;这也就涉及相似词语、相关词语的选取了,这类算法非常多。也有许多人用了很简单的办法就能求得两样东西的相似性,比如购物车里物品的相似度,最简单的办法就是看看同时买了这样东西的用户还同时买了什么,用简单的数据结构就很容易实现这样的一个算法,但也会忽略一些问题。

归结到数学问题上,最经常用的是把每个词都归结到一个坐标系下,再用距离公式(如:皮尔逊公式)可方便的求出各个词语之间的相似度。

这就是word2vec的方法,word2vec 通过训练,可以把对文本内容的处理简化为 K 维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度。算法的关键步骤就是如何求出词语的向量空间。

下面我们就来了解一下word2vec的基本模型和方法吧。

  1. 统计语言模型
  2. 神经概率语言模型
  3. 基于Hierarchical Softmax的CBOW模型
  4. 基于Negative Sampling的Skip-gram模型

统计语言模型

  • 定义:

给定一个特定顺序的词串,统计语言模型计算该词串是一个有意义的句子的概率

p(w 1 , w 2 ,…, w t )=p(w 1 )·p(w 2 |w 1 )· … ·p(w t |w 1 , w 2 ,…, w t-1 )

  • 例子:

p(“Today is Friday”)≈0.001 > p(“Today Friday is”)≈0.00000001

  • 复杂度估计:

假设词典大小为N,句子的长度为t,则共有N t 种组合。每一种组合包含t个参数,总共需要计算和存储t·N t 个参数。

神经概率语言模型

  • 基本思想:

一个词出现的概率只与其前面n-1个词相关

p(w k |w 1 ,w 2 …w k-1 )≈p(w k |w k-n+1 ,w k-n+2 ,…,w k-1 )

=p(w k-n+1 ,w k-n+2 ,…,w k )/p(w k-n+1 ,w k-n+2 ,…,w k-1 )

≈count(w k-n+1 ,w k-n+2 ,…,w k )/count(w k-n+1 ,w k-n+2 ,…,w k-1 )

  • 平滑化问题:
    • 若count(w k-n+1 ,w k-n+2 ,…,w k )=0,能否认为p(w k |w 1 ,w 2 …w k-1 )=0?
    • 若count(w k-n+1 ,w k-n+2 ,…,w k-1 )=count(w k-n+1 ,w k-n+2 ,…,w k ),能否认为p(w k |w 1 ,w 2 …w k-1 )=1?
  • 神经概率语言模型

其中,是词w的输出向量(长度为N),i_w是词w在词典中的位置,y_w(i_w)是输出向量y_w上位于i_w的元素,N是词典的大小。

词向量比较

  • One-hot representation

定义:词向量的大小与词典大小相同,词向量中,只有该词对应位置的元素为1,其余为零

优点:简单

缺点:语义鸿沟,维数灾难

  • Distributed representation、

定义:低维稠密实向量

优点:具有语义、语法相似性

缺点:缺乏解释性,计算复杂

复杂度估计

  • w的上下文词的数量,通常不超过5
  • 词向量的长度,通常是10 1 -10 2 量级
  • 隐藏层神经元数量,通常是10 2 量级
  • 词典的大小N,通常是10 4 -10 5 量级

整个模型的大部分计算集中在隐藏层和输出层的矩阵向量计算以及输出层中的softmax归一化!

基于Hierarchical Softmax的CBOW模型

  • 输入层:包含Context(w)中2c个词的词向量
  • 投影层:将输入层中2c个词向量求和累加
  • 输出层:是一棵二叉树,由词典中的词作为叶子节点,以各词在语料中出现的次数作为权值,构建出来的一棵Huffman树

将Huffman编码为1的结点定义为负类,将编码为0的结点定义为正类,即

易知,一个结点被分为正类的概率是

,被分为负类的概率是

对于从根结点出发到“足球”叶子结点的4次二分类,每次分类结果的概率是

根据

其中,

由于

基于Negative Sampling的Skip-gram模型

与Hierarchical Softmax相比,Negative Sampling不再使用复杂的Huffman树,而是利用随机负采样,来提高训练速度并改善所得词向量的质量。

Word2Vec效果展示

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 统计语言模型
  • 神经概率语言模型
  • 基于Hierarchical Softmax的CBOW模型
  • 基于Negative Sampling的Skip-gram模型
  • Word2Vec效果展示
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档