前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >NLP: Word Embedding 词嵌入(Part3: Glove)

NLP: Word Embedding 词嵌入(Part3: Glove)

作者头像
JiahuiZhu1998
修改于 2023-06-19 06:37:11
修改于 2023-06-19 06:37:11
6360
举报

1. Glove 是什么

Glove 全称是 Global Vectors for Word Representation。它是基于全局词频统计的Word Representation Tool

它可以捕捉 words之间的 similarity, analogy 等; 通过vectors之间的数学联系计算words之间的语义相似性

2. Glove 实现步骤

2.1 构建共现矩阵

假设我们有三句话: I like deep learning. I like NLP. I enjoy flying

我们可以获得一个词典: {"I like", "like deep", "deep learning", "like NLP", "I enjoy", "enjoy flying", "I like"}

共现矩阵中的数字代表row_wordcolumn_word在词典中出现的次数

在共现矩阵中,word 与 word 在 Context之间的关系一定在自然数域中, 即 >=1

而 GloVe 计算 word 与 word 在 Context 之间的距离 distance, 并且用 decay = 1/d 来计算weight, 当 words之间的distance越大,weight(decay) 就会越小

2.2 Word Vector 和 共现矩阵的近似关系

用以下公式表示近似关系:

i,j 分别代表两个words的index, b_i 和 b_j 代表 两个 words vector 的 bias term
i,j 分别代表两个words的index, b_i 和 b_j 代表 两个 words vector 的 bias term

2.3 构造 Loss Function

根据近似关系,我们就可以创造出loss function:

这个 Loss Function 就是一个 使用 f(X_ij)的 mean square loss, f(X_ij) 是一个weight function
这个 Loss Function 就是一个 使用 f(X_ij)的 mean square loss, f(X_ij) 是一个weight function

weight function (权重函数的作用):

  • 让经常一起出现的words weight 远大于 不常一起出现的words weight, 因此 weight function 需要 non-decreasing
  • 不希望 weight function 出现 overweighted, 因此需要让weight function 达到边界时不再增加
  • 如果两个word没有一起出现, 即 X_ij=0,那么这种情况不应该放入Loss Function, 简而言之 weight func满足 f(0) = 0

这里 weight function 使用下图的这种:

2.4 训练 Glove 模型

采用了AdaGrad的梯度下降算法,对矩阵 X 中的所有非零元素进行随机采样,学习曲率(learning rate)设为0.05,在vector size小于300的情况下迭代了50次,其他大小的vectors上迭代了100次,直至收敛。

最后得到2个vector, 分别是 w 和 w_bar; 最后为了提高鲁棒性,输出 w + w_bar, 得到效果如下图

结果显示 Vector Dimension=300 效果最好, context Windows size 大致在 6-10之间
结果显示 Vector Dimension=300 效果最好, context Windows size 大致在 6-10之间

3. Glove 与 LSA, Word2Vec之间的差别

LSA (Latent Semantic Analysis) 是一种比较早的词向量表征工具(Word Representation Tool)

LSA 是基于共现矩阵,使用SVD(奇异值分解)对大矩阵进行降维; 缺点是比Glove计算代价更大

Word2Vec 的缺点是没有充分使用语料; 一定程度上Glove会比Word2Vec更加精准

本文系转载,前往查看

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

本文系转载,前往查看

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
四步理解GloVe!(附代码实现)
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
mantch
2019/08/29
1.1K0
四步理解GloVe!(附代码实现)
NLP: Word Embedding 词嵌入(Part1: 基础和 Word2Vec)
例如:[1, 0, 0, 0, 0, 0, 0, 0, 0, 0] 这个 one-dimension vector 就代表这是整个句子里的第一个词
JiahuiZhu1998
2022/11/27
1.2K0
斯坦福大学深度学习与自然语言处理第二讲:词向量
本文来源:52nlp 斯坦福大学在三月份开设了一门“深度学习与自然语言处理”的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是青年才俊Richard Socher,以下为相关的课程笔记。 第二讲:简单的词向量表示:word2vec,Glove(Simple Word Vector representations: word2vec, GloVe) 推荐阅读材料: Paper1:[Distributed Representations
用户1737318
2018/06/05
7650
【NLP CS224N笔记】Lecture 3 GloVe: Global Vectors for Word Representation
可以很明显地看到该向量非常稀疏。常见的解决办法有两种:一是使用稀疏矩阵更新运算来更新矩阵\(U,V\)的特定的列向量。二是使用哈希来更新,即key为word string,value是对应的列向量。
marsggbo
2019/01/03
5140
NLP中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert
一、文本表示和各词向量间的对比 1、文本表示哪些方法? 2、怎么从语言模型理解词向量?怎么理解分布式假设? 3、传统的词向量有什么问题?怎么解决?各种词向量的特点是什么? 4、word2vec和NNLM对比有什么区别?(word2vec vs NNLM) 5、word2vec和fastText对比有什么区别?(word2vec vs fastText) 6、glove和word2vec、 LSA对比有什么区别?(word2vec vs glove vs LSA) 7、 elmo、GPT、bert三者之间有什么区别?(elmo vs GPT vs bert)
zenRRan
2019/06/14
3.8K0
NLP中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert
训练GloVe词向量模型
正如GloVe论文的标题而言,**GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。**我们通过对向量的运算,比如欧几里得距离或者cosine相似度,可以计算出两个单词之间的语义相似性。
大数据技术与机器学习
2019/12/05
1.7K0
【NLP】Word2Vec详解(含数学推导)
word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练;并且,该工具得到的训练结果——词向量(word embedding),可以很好地度量词与词之间的相似性。随着深度学习(Deep Learning)在自然语言处理中应用的普及,很多人误以为word2vec是一种深度学习算法。其实word2vec算法的背后是一个浅层神经网络。
黄博的机器学习圈子
2020/09/04
2.6K0
【NLP】Word2Vec详解(含数学推导)
词嵌入技术解析(一)
在讨论词嵌入之前,先要理解词向量的表达形式,注意,这里的词向量不是指Word2Vec。关于词向量的表达,现阶段采用的主要有One hot representation和Distributed representation两种表现形式。
Bo_hemian
2020/09/09
1.5K0
词向量技术 | 从word2vec到ELMo
"词和句子的嵌入已成为所有基于深度学习的自然语言处理(NLP)系统的重要组成部分,它们在固定长度的稠密向量中编码单词和句子,以大幅度提高神经网络处理文本数据的能力。"
用户1332428
2018/08/17
2.6K0
词向量技术 | 从word2vec到ELMo
NLP从词袋到Word2Vec的文本表示
在NLP(自然语言处理)领域,文本表示是第一步,也是很重要的一步,通俗来说就是把人类的语言符号转化为机器能够进行计算的数字,因为普通的文本语言机器是看不懂的,必须通过转化来表征对应文本。早期是基于规则的方法进行转化,而现代的方法是基于统计机器学习的方法。
mantch
2019/07/30
1.4K0
NLP从词袋到Word2Vec的文本表示
【Embedding】GloVe:大规模语料中快速训练词向量
今天学的论文是斯坦福大学 2014 年的工作《GloVe: Global Vectors for Word Representation》,在当时有两种主流的 Word Embedding 方式,一种是矩阵分解,类似 LSA;另一种是 13 年提出的 Word2Vec,基于滑动窗口的浅层神经网络。前者的优点是利用了全局的统计信息(共现矩阵),后者的优点是计算简单且效果好 = =,但缺点是没利用全局的统计信息。所以这篇论文的主要工作是想综合两者的优点。
阿泽 Crz
2020/07/21
1.3K0
【Embedding】GloVe:大规模语料中快速训练词向量
重磅!!|“自然语言处理(NLP)系列教程05”之 层序softmax + “超干货”资料分享
本文章主要介绍上篇没有讲完的近似训练(层序softmax)以及窗口共现矩阵词向量表示法,并且最后给大家分享一下作者最近收集的一大波视频资料,千万不要错过哦!!
ShuYini
2019/08/08
7940
重磅!!|“自然语言处理(NLP)系列教程05”之 层序softmax + “超干货”资料分享
Word2vec理论基础——词向量
我们希望原始文本信息能够得到保留,例如国王和女王之间的关系和男人与女人之间的关系应是特别接近的,法国和巴黎之间关系与德国和巴黎的关系也是接近的。
Hsinyan
2022/06/19
5430
Word2vec理论基础——词向量
5分钟 NLP系列—— 11 个词嵌入模型总结
TF-IDF, Word2Vec, GloVe, FastText, ELMO, CoVe, BERT, RoBERTa
deephub
2022/03/12
1.3K0
5分钟 NLP系列—— 11 个词嵌入模型总结
词义类比与全局词共现信息不可兼得?基于飞桨实现的GloVe说可以
通过飞桨核心框架复现的GloVe模型具有良好的性能表现。针对论文给出的训练文本,处理后文本总词量为17M,模型的训练时间在1000s左右,达到了快速训练词向量的要求,可以用来训练大规模的文本数据。模型的详细情况和编程可以参考链接:
用户1386409
2020/08/11
6050
词义类比与全局词共现信息不可兼得?基于飞桨实现的GloVe说可以
一文搞懂NLP | 简单句向量
过去,我们常见的就是从word vector到sentence vector,这种从小unit到大一级unit的方法,统一称为“composion”;这方面的工作有以下的1、2、3、4、5、6、7。
Datawhale
2019/07/08
2.1K0
NLP之——Word2Vec详解
2013年,Google开源了一款用于词向量计算的工具——word2vec,引起了工业界和学术界的关注。首先,word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练;其次,该工具得到的训练结果——词向量(word embedding),可以很好地度量词与词之间的相似性。随着深度学习(Deep Learning)在自然语言处理中应用的普及,很多人误以为word2vec是一种深度学习算法。其实word2vec算法的背后是一个浅层神经网络。另外需要强调的一点是,word2vec是一个计算word vector的开源工具。当我们在说word2vec算法或模型的时候,其实指的是其背后用于计算word vector的CBoW模型和Skip-gram模型。很多人以为word2vec指的是一个算法或模型,这也是一种谬误。接下来,本文将从统计语言模型出发,尽可能详细地介绍word2vec工具背后的算法模型的来龙去脉。
10JQKA
2018/07/25
1.2K0
NLP之——Word2Vec详解
NLP: Word Embedding 词嵌入(Part2: fastText)
word2vec, n-gram 等 word-embedding 方法选择用vector表示single word 而不考虑词根词缀之间的关系
JiahuiZhu1998
2022/12/03
7380
深度学习核心技术实战 NLP-word2vec
多分类的逻辑回归- softmax模型 word2vec:词向量 one-hot representation 对应位置为1,但不能表达词之间的关系 本质上是对词的一种表示,但是是结合了上下文内容的。无监督模型 词的两种表示: One-hot Representation(独热表示) “苹果”表示为 [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 …] 优点:简介,缺点:词之间是孤立的,维数灾难。 Distributed Representation(分布式表示) 词向量或者词嵌入(word embedding)是用一个向量来表示一个词,一定程度上可以用来刻画词之间的语义距离。 给出一个文档,用一个单词序列比如 “我喜欢苹果”,然后对文档中每个不同的单词都得到一个对应的低维向量表示,“苹果”表示为 [0.11, −0.77, −0.71, 0.10, −0.50, …]。 优点:低维、相似词的词向量距离相近,缺点:计算复杂。
微风、掠过
2018/10/09
3460
词向量(1)--从Word2Vec到ELMo
若你是做NLP的,一定对词向量很亲切,若你是做推荐的,对词向量也一定不会陌生,以词向量为代表的序列向量化方法已经成为机器学习中必不可少的实战利器。
流川枫
2020/04/24
9420
推荐阅读
相关推荐
四步理解GloVe!(附代码实现)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档