论文笔记--GloVe: Global Vectors for Word Representation

news2024/9/23 15:24:52

论文笔记--GloVe: Global Vectors for Word Representation

  • 1. 文章简介
  • 2. 文章概括
  • 3 文章重点技术
    • 3.1 两种常用的单词向量训练方法
    • 3.2 GloVe
    • 3.3 模型的复杂度
  • 4. 文章亮点
  • 5. 原文传送门
  • 6. References

1. 文章简介

  • 标题:GloVe: Global Vectors for Word Representation
  • 作者:Jeffrey Pennington, Richard Socher, Christopher D. Manning
  • 日期:2014
  • 期刊:EMNLP

2. 文章概括

  文章提出了一种新的单词表示的训练方法:Glove。该方法结合了基于统计方法和基于上下文窗口方法的优势,在多个下游任务上超越了当下SOTA方法的表现。

3 文章重点技术

3.1 两种常用的单词向量训练方法

  现有的两类常用的单词向量训练方法为

  • 基于矩阵分解的方法,如LSA会首先计算一个term-document矩阵,每一列表示每个文档中各个单词的出现频率,然后进行奇异值分解;HAL则会首先计算一个term-term共现矩阵。但此类方法会被频繁出现的the, and等单词影响,计算相似度的时候该类对语义影响很小的单词会占较大的比重。
  • 基于上下文窗口的方法,如Word2Vec[1]。此类方法没有用到语料中的统计信息,可能无法捕捉到数据中的重复现象。

3.2 GloVe

  为了解决上述两种方法存在的问题,文章提出了一种Global Vectors(GloVe)单词嵌入方法,可以直接捕获语料中的统计信息。
  首先,我们计算单词共现矩阵 X X X,其中 X i j X_ij Xij表示单词 j j j出现在单词 i i i的上下文的次数。令 X i = ∑ k X i k X_i = \sum_k X_{ik} Xi=kXik表示任意单词出现在单词 i i i上下文的总次数,则 P i j = X i j X i P_{ij} = \frac {X_ij}{X_i} Pij=XiXij表示单词 j j j出现在单词 i i i的上下文的概率。
  为了得到每个单词的嵌入 w i w_i wi,文章首先需要假设一种嵌入 w i , w j w_i, w_j wi,wj和共现矩阵之间的关系式。为此,文章给出一个示例:如下表所示,假设考虑单词i=“ice”,j=“steam”,则k="solid"时,由于"solid"和"ice"相关性更高,所以 P i k / P j k P_{ik}/P_{jk} Pik/Pjk应该大一点,下表中实验结果为8.9;如果k=“gas”,和"steam"的相关性更高,从而 P i k / P j k P_{ik}/P_{jk} Pik/Pjk应该小一点,下表中实验结果为 8.5 × 1 0 − 2 8.5 \times 10^{-2} 8.5×102;如果k="water"和二者均相关或k="fashion"和二者均不相关,则 P i k / P j k P_{ik}/P_{jk} Pik/Pjk应该接近1,如下表中的 1.36 1.36 1.36 0.96 0.96 0.96
cooccur
  为此,文章选择通过单词 i , j i,j i,j之间的概率比值来进行建模: F ( w i , w j , w ~ k ) = P i k P j k F(w_i, w_j, \tilde{w}_k) = \frac {P_{ik}}{P_{jk}} F(wi,wj,w~k)=PjkPik,其中 w i , w j , w ~ k w_i, w_j, \tilde{w}_k wi,wj,w~k分别表示 i , j , k i, j, k i,j,k的词向量, w ~ \tilde{w} w~也是待学习的参数,和 w w w本质上没有区别,只是通过不同的初始化得到的,用于区分探针单词( k k k)和共现单词,类似transformer中的Q,K含义。考虑到单词空间一般是线性的,我们用 w i − w j w_i - w_j wiwj表示向量之间的差异: F ( w i − w j , w ~ k ) = P i k P j k F(w_i- w_j, \tilde{w}_k) = \frac {P_{ik}}{P_{jk}} F(wiwj,w~k)=PjkPik,又因为上式左边的输入为两个向量,右边为标量,故我们考虑用向量的点积: F ( ( w i − w j ) T w ~ k ) = P i k P j k F((w_i -w_j)^T\tilde{w}_k) = \frac {P_{ik}}{P_{jk}} F((wiwj)Tw~k)=PjkPik。由于单词的共现矩阵中,单词和上下文单词是任意指定的,我们可以自由交换当前单词和上下文单词,从而我们要保证交换 w ↔ w ~ w \leftrightarrow \tilde{w} ww~ X ↔ X T X \leftrightarrow X^T XXT后上式仍然成立,故我们首先需要 F F F为一个同态映射: F ( ( w i − w j ) T w ~ k ) = F ( w i T w ~ k ) F ( w j T w ~ k ) F((w_i -w_j)^T\tilde{w}_k) = \frac {F(w_i^T\tilde{w}_k)}{F(w_j^T\tilde{w}_k)} F((wiwj)Tw~k)=F(wjTw~k)F(wiTw~k),从而有 F ( w i T w ~ k ) = P i k = X i k X i F(w_i^T\tilde{w}_k) = P_{ik} = \frac {X_{ik}}{X_i} F(wiTw~k)=Pik=XiXik。由于上式的解为 F = exp ⁡ F=\exp F=exp,从而 exp ⁡ ( w i T w ~ k ) = P i k = X i k X i    ⟹    w i T w ~ k = log ⁡ P i k = log ⁡ ( X i k X i ) = log ⁡ ( X i k ) − log ⁡ ( X i ) \exp (w_i^T \tilde{w}_k) = P_{ik} = \frac {X_{ik}}{X_i}\\\implies w_i^T \tilde{w}_k = \log P_{ik} = \log \left(\frac {X_{ik}}{X_i}\right) = \log(X_{ik}) - \log (X_i) exp(wiTw~k)=Pik=XiXikwiTw~k=logPik=log(XiXik)=log(Xik)log(Xi);其次考虑到上式的 log ⁡ ( X i ) \log (X_i) log(Xi) k k k无关,故可以写作偏差 b i b_i bi,再增加 w ~ k \tilde{w}_k w~k的偏差 b ~ k \tilde{b}_k b~k,我们得到 w i T w ~ k + b i + b ~ k = log ⁡ ( x i k ) w_i^T \tilde{w}_k + b_i + \tilde{b}_k = \log(x_{ik}) wiTw~k+bi+b~k=log(xik)满足上述对称要求。在此基础上增加权重函数 f ( X i j ) f(X_{ij}) f(Xij)可以保证共现太频繁的元素不会被过分的重视,且稀有的共现元素也不会被过分重视。这就要求 f f f满足非递减且有明确上界,如下函数满足条件: f ( x ) = { ( x / x m a x ) α i f   x < x m a x , 1 , o t h e r w i s e f(x) = \begin{cases}(x/x_{max})^{\alpha} \quad &if \ x < x_{max},\\1, \quad &otherwise \end{cases} f(x)={(x/xmax)α1,if x<xmax,otherwise。函数曲线如下图所示fx

3.3 模型的复杂度

  文章证明,当 α = 1.25 \alpha = 1.25 α=1.25时交过较好,此时模型的复杂度为 O ( ∣ C ∣ ) \mathcal{O}(|\mathcal{C}|) O(C),其中 C \mathcal{C} C表示语料库。相比于其他基于上下文窗口的方法复杂度 O ( V 2 ) \mathcal{O}(V^2) O(V2)更低。

4. 文章亮点

  文章提出了基于将上下文窗口和共现矩阵结合的词向量嵌入方法GloVe,数值实验表明,GloVe在单词相似度、单词类比和NER等任务上相比于其他SOTA方法有明显提升。

5. 原文传送门

[GloVe: Global Vectors for Word Representation](GloVe: Global Vectors for Word Representation)

6. References

[1] 论文笔记–Efficient Estimation of Word Representations in Vector Space

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/798787.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用阿里云OSS+PicGo搭建图床

需求&#xff1a;对于写博客来说&#xff0c;图片确实是一个重要的问题。对于大量图片的上传&#xff0c;手动操作确实会非常耗时。为此借助图床提高写博客时处理图片的效率。 1. 阿里云OSS 阿里云对象存储服务OSS&#xff08;Object Storage Service&#xff09;&#xff1a;是…

1000*B. Buttons

#include<bits/stdc.h> using namespace std; typedef long long ll; int n,sum; int main(){scanf("%d",&n);for(int i1;i<n-1;i) sumi*(n-i);cout<<sumn;return 0; }

进阶高级测试专项,Pytest自动化测试框架总结(一)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、框架简介 pyt…

Cesium态势标绘专题-进攻箭头(标绘+编辑)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…

01背包、完全背包问题几种变式总结,以及多重背包、组合背包模板

目录 1.求有多少种方法能恰好装满背包 1.1装满背包的方法——按排列计算还是按组合计算&#xff1f; 2.最值问题——最少需要几枚硬币,货物的最大价值 2.1最少需要几枚硬币 2.1.1 memset用法注意 3.二维01背包问题 4.多重背包问题 4.1优化前 4.2二进制优化 1.求有多少…

C++STL库中的list

文章目录 list的介绍及使用 list的常用接口 list的模拟实现 list与vector的对比 一、list的介绍及使用 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list的底层是双向带头循环链表结构&#xff0c;双向带头循…

数据库对象

二十、数据库对象-视图 二十一、数据库对象-索引 age字段没有索引&#xff0c;查找需要扫描全表&#xff1a; name字段做了唯一索引&#xff0c;查找一次&#xff1a; 二十二、数据库对象-事务 事务的隔离级别和问题&#xff1a;

(链表) 剑指 Offer 52. 两个链表的第一个公共节点 ——【Leetcode每日一题】

❓剑指 Offer 52. 两个链表的第一个公共节点 难度&#xff1a;简单 输入两个链表&#xff0c;找出它们的第一个公共节点。 如下面的两个链表&#xff1a; 在节点 c1 开始相交。 示例 1&#xff1a; 输入&#xff1a;intersectVal 8, listA [4,1,8,4,5], listB [5,0,1,8…

三星GalaxyWatch放弃iOS:无法给用户一致的体验,还不如“丢掉”

昨晚&#xff0c;三星发布了全新的Galaxy Watch 6系列智能手表。然而&#xff0c;对于苹果手机用户来说&#xff0c;这个消息可能并不那么重要。因为从2021年开始&#xff0c;三星决定转向Wear OS系统&#xff0c;并计划在Galaxy Watch 4及以后的新款智能手表上采用该系统&…

Python基础语法第八章之使用库

目录 一、使用库 二、标准库 2.1认识标准库 2.2使用 import 导入模块 2.3第三方库 2.3.1认识第三方库 2.3.2使用 pip 一、使用库 库 就是是别人已经写好了的代码, 可以让我们直接拿来用. 按照库的来源, 可以大致分成两大类 标准库: Python 自带的库. 只要安装了 Pytho…

JavaEE——SpringMVC中的常用注解

目录 1、RestController &#xff08;1&#xff09;、Controller &#xff08;2&#xff09;、ResponseBody 2、RequestMappping &#xff08;1&#xff09;、定义 &#xff08;2&#xff09;、使用 【1】、修饰方法 【2】、修饰类 【3】、指定方法类型 【4】、简化版…

朝花夕拾思维导图怎么画?看看这种绘制方法

朝花夕拾思维导图怎么画&#xff1f;绘制思维导图的好处有很多&#xff0c;首先它可以帮助人们更好地组织和管理知识&#xff0c;提高工作效率和学习效果。其次&#xff0c;绘制思维导图可以帮助人们更好地记忆知识点和理解知识点。总之&#xff0c;绘制思维导图可以帮助人们更…

字符串函数介绍应用

字符串 1.前言 C语言中对字符和字符串的处理很是频繁&#xff0c;但是C语言本身是没有字符串类型的&#xff0c;字符串通常放在 常量字符串中或者字符数组中。 字符串常量适合于那些对他不做修改的函数。 2.库函数及其模拟实现 2.1 strlen函数 size_t strlen ( const char *…

机器学习深度学习——多层感知机的简洁实现

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——多层感知机的从零开始实现 &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你…

东南大学轴承故障诊断(Python代码,CNN模型,适合复合故障诊断研究)

运行代码要求&#xff1a; 代码运行环境要求&#xff1a;Keras版本>2.4.0&#xff0c;python版本>3.6.0 本次实验主要是在两种不同工况数据下&#xff0c;进行带有复合故障的诊断实验&#xff0c;没有复合故障的诊断实验。 实验结果证明&#xff0c;针对具有复合故障的…

Linux系统MySQL数据库的备份及应用

本节主要学习了MySQL数据库的备份&#xff1a;概念&#xff0c;数据备份的重要性&#xff0c;造成数据丢失的原因&#xff0c;备份的类型&#xff0c;常见的备份方法&#xff0c;实例与应用等。 目录 一、概述 二、数据备份的重要性 三、造成数据丢失的原因 四、备份类型 …

AMEYA360:ROHM罗姆授权代理有哪些?

罗姆(ROHM)株式会社是全球知名的半导体厂商之一&#xff0c;总部所在地设在日本京都市&#xff0c;1958年作为小电子零部件生产商在京都起家的罗姆&#xff0c;于1967年和1969年逐步进入了晶体管、二极管领域和IC等半导体领域。2年后的1971年&#xff0c;罗姆作为第一家进入美国…

K8S故障排查

故障现象&#xff1a;部署pod时&#xff0c;报错没发调度到节点。 排查步骤&#xff1a; 1、查看集群的状态 [rootk8s-master1 nginx]#kubectl get nodes2、查看k8s组件的状态-kubelet&#xff0c;kube-apiservice 3、查看docker的Cgroup driver和k8s的Cgroup driver类型&…

list源码分析,基于c++ 和vs2019,cpp20标准

list源码分析,基于c 和vs2019&#xff0c;cpp20标准。结构确实如图&#xff0c;双向环形链表。

Qt C++实现Excel表格的公式计算

用Qt的QTableViewQStandardItemModelQStyledItemDelegate实现类似Excel表格的界面&#xff0c;在parser 模块中提供解析表格单元格输入的公式。单元格编辑结束后按回车进行计算和更新显示。 效果如下&#xff1a; 支持的公式计算可以深度嵌套&#xff0c;目前parser模块中仅提…