理解GloVe模型(Global vectors for word representation)
来源:互联网 发布:网络直播电视 编辑:程序博客网 时间:2024/06/05 18:46
理解GloVe模型
概述
- 模型目标:进行词的向量化表示,使得向量之间尽可能多地蕴含语义和语法的信息。
- 输入:语料库
- 输出:词向量
- 方法概述:首先基于语料库构建词的共现矩阵,然后基于共现矩阵和GloVe模型学习词向量。
统计共现矩阵
设共现矩阵为
举个栗子:
设有语料库:
i love you but you love him i am sad
这个小小的语料库只有1个句子,涉及到7个单词:i、love、you、but、him、am、sad。
如果我们采用一个窗口宽度为5(左右长度都为2)的统计窗口,那么就有以下窗口内容:
窗口0、1长度小于5是因为中心词左侧内容少于2个,同理窗口8、9长度也小于5。
以窗口5为例说明如何构造共现矩阵:
中心词为love,语境词为but、you、him、i;则执行:
使用窗口将整个语料库遍历一遍,即可得到共现矩阵
使用GloVe模型训练词向量
模型公式
先看模型,代价函数长这个样子:
可以看到,GloVe模型没有使用神经网络的方法。
模型怎么来的
那么作者为什么这么构造模型呢?首先定义几个符号:
其实就是矩阵单词
条件概率,表示单词
两个条件概率的比率。
作者的灵感是这样的:
作者发现,
很简单的规律,但是有用。
思想:假设我们已经得到了词向量,如果我们用词向量
设用词向量
即:
即二者应该尽可能地接近;
很容易想到用二者的差方来作为代价函数:
但是仔细一看,模型中包含3个单词,这就意味着要在
现在我们来仔细思考
作者的脑洞是这样的:
1. 要考虑单词
2.
3. 然后作者又往
最关键的第3步,为什么套了一层
套上之后,我们的目标是让以下公式尽可能地成立:
即:
即:
即:
然后就发现找到简化方法了:只需要让上式分子对应相等,分母对应相等,即:
然而分子分母形式相同,就可以把两者统一考虑了,即:
本来我们追求:
现在只需要追求:
两边取个对数:
那么代价函数就可以简化为:
现在只需要在
然而,出了点问题。
仔细看这两个式子:
数学上出了问题。
补救一下好了。
现将代价函数中的条件概率展开:
即为:
将其变为:
即添了一个偏差项
于是代价函数就变成了:
然后基于出现频率越高的词对儿权重应该越大的原则,在代价函数中添加权重项,于是代价函数进一步完善:
具体权重函数应该是怎么样的呢?
首先应该是非减的,其次当词频过高时,权重不应过分增大,作者通过实验确定权重函数为:
到此,整个模型就介绍完了。
说明
如果错误,敬请指正。
阅读全文
2 0
- 理解GloVe模型(Global vectors for word representation)
- Content Tree Word Embedding for document representation
- word representation
- Word Representation
- 深度学习-gloVe模型
- GloVe 词向量模型
- glove背后的计算原理(进一步理解glove实现细节)
- Word Vectors详解(1)
- Word Vectors详解(2)
- A Learned Representation for Artistic Style论文理解
- Vectors For All (almost)
- Word Vector Representation
- 机器学习之神经网络模型-上(Neural Networks: Representation)
- 机器学习之神经网络模型-下(Neural Networks: Representation)
- 声学模型学习笔记(六) representation learning
- 机器学习之神经网络模型-上(Neural Networks: Representation)
- 机器学习之神经网络模型-下(Neural Networks: Representation)
- 机器学习之神经网络模型-上(Neural Networks: Representation)
- POJ 3187 Backward Digit Sums
- Java集合基础篇(3)-HashSet基本用法
- SVM算法(二)(有监督学习)
- @RequestMapping Annotation with Controller, Methods, Headers, Params, @RequestParam, @PathVariable
- 如何解决空虚感?
- 理解GloVe模型(Global vectors for word representation)
- SSM整合配置文件
- Python3学习笔记
- win7 java开发环境安装
- 高通平台中gpio简单操作和调试
- Tomcat源码分析(一)------ 架构
- 查看电脑主板支持多大内存
- POJ 3304 Segments (直线和线段相交判断)
- PHP数组按照指定字段排序