NLP-*-Glove词向量原理

Glove词向量

引入

学习词向量有两种方法:局部和全局

全局的代表有 LSA PLSA等

局部的代表有 Word2Vec

他们都有各自的缺陷,全局的没有利用好词之间的类比信息,局部的方法没有利用词全局的统计信息

Glove词向量即利用了局部信息也利用了全局的统计信息,全名为:Global Vectors for Word Representation Jeffrey

word2vec是常用的开源词向量解决方案,还有一种也比较常用的为Glove,一般都会把他们俩放到一起讨论

Glove

概述

  • 模型目标:进行词的向量化服务,使得向量之间尽可能多的蕴含语义和语法信息
  • 输入:语料库
  • 输出:词向量

共现矩阵

  • 定义:设矩阵为 X i , j X_{i,j} Xi,j为共现矩阵,K为窗口大小。
  • 含义: X i , j X_{i,j} Xi,j代表单词 i i i在窗口K内与单词 j j j同时出现的次数

**示例:**我在青岛栈桥等你,你在青岛栈桥等他。涉及单词:[我,在,青岛,栈桥,等,你,他],那么构建矩阵为7*7大小,设窗口K=3,则共现矩阵如下

青岛 栈桥
- 1 1 0 0 0 0
1 - 2 2 0 0 0
青岛 1 2 - 2 2 0 0
栈桥 0 2 2 - 2 1 1
0 0 2 2 - 1 1
0 0 0 1 1 - 0
0 0 0 1 1 0 -

那么得到共现矩阵后该怎么得到每个词的词向量呢?

公式

J = Σ i , j N f ( X i , j ) ( v i T v j + b i + b j − l o g ( X i , j ) ) 2 J=\Sigma_{i,j}^{N}f(X_{i,j})(v_{i}^{T}v_{j}+b_{i}+b_{j}-log(X_{i,j}))^{2} J=Σi,jNf(Xi,j)(viTvj+bi+bjlog(Xi,j))2

其中, v i , v j v_{i},v_{j} vi,vj指的是单词 i i i、单词 j j j的词向量, b i , b j b_{i},b_{j} bi,bj是两个标量(作者定义的偏差项), f f f是权重函数。 N N N是词汇表的大小,共现矩阵维度为 N ∗ N N*N NN

可以看到,Glove没有使用神经网络的方法

定义: X i = Σ j = 1 N X i , j X_{i}=\Sigma_{j=1}^{N}X_{i,j} Xi=Σj=1NXi,j,即共现矩阵种一个单词行所有列的值相加;条件概率: P i , k = X i , k X i P_{i,k}=\frac{X_{i,k}}{X_{i}} Pi,k=XiXi,k,表示单词 k k k在行单词 i i i的概率; r a t i o n i , j , k = P i , k P j , k ration_{i,j,k}=\frac{P_{i,k}}{P_{j,k}} rationi,j,k=

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值