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

news/2024/4/23 11:52:39/文章来源:https://blog.csdn.net/weixin_38124427/article/details/131968100

论文笔记--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.ldbm.cn/p/833.html

如若内容造成侵权/违法违规/事实不符,请联系编程新知网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rabbitmq的安装与使用(Linux版)

目录 Rabbitmq安装 1.在Ubuntu上安装RabbitMQ&#xff1a; 打开终端&#xff0c;运行以下命令以更新软件包列表&#xff1a; 安装RabbitMQ&#xff1a; 安装完成后&#xff0c;RabbitMQ服务会自动启动。你可以使用以下命令来检查RabbitMQ服务状态&#xff1a; 2.在CentOS…

css定义超级链接a标签里面的title的样式

效果: 代码: 总结:此css 使用于任何元素,不仅仅是a标签!

DHorse v1.3.0 发布,基于k8s的发布平台

综述 DHorse是一个简单易用、以应用为中心的云原生DevOps系统&#xff0c;具有持续集成、持续部署、微服务治理等功能&#xff0c;无需安装依赖Docker、Maven、Node等环境即可发布Java、Vue、React应用&#xff0c;主要特点&#xff1a;部署简单、操作简洁、功能快速。 新增特…

微服务如何治理

微服务远程调用可能有如下问题&#xff1a; 注册中心宕机&#xff1b; 服务提供者B有节点宕机&#xff1b; 服务消费者A和注册中心之间的网络不通&#xff1b; 服务提供者B和注册中心之间的网络不通&#xff1b; 服务消费者A和服务提供者B之间的网络不通&#xff1b; 服务提供者…

1.2 网络安全法律法规

数据参考&#xff1a;CISP官方 目录 国家立法体系网络安全法解析网络安全相关法律 一、国家立法体系 1、我国的立法体系 我国的立法体系在网络空间治理中扮演着基础工作的角色。为了应对快速发展的网络技术和威胁&#xff0c;我国采取了多级立法机制来完善网络空间的法律…

第17节 R语言分析:生物统计数据集 R 编码分析和绘图

生物统计数据集 R 编码分析和绘图 生物统计学,用于对给定文件 data.csv 中的医疗数据应用 R 编码,该文件是患者人口统计数据集,包含有关来自各种祖先谱系的个体的标准信息。 数据集特征解释 脚本 output= file("Output.txt") # File name of output log sink(o…

LeetCode[面试题04.08]首个共同祖先

难度&#xff1a;Medium 题目&#xff1a; 设计并实现一个算法&#xff0c;找出二叉树中某两个节点的第一个共同祖先。不得将其他的节点存储在另外的数据结构中。注意&#xff1a;这不一定是二叉搜索树。 例如&#xff0c;给定如下二叉树: root [3,5,1,6,2,0,8,null,null,7,…

vue项目中对组件使用v-model绑定值,在vue3中如何更新数据

在el-form 中 el-form-item 绑定组件进行校验 想在表单下面爆红提示 可以对组件使用v-model绑定值 vue2 通过this.$emit(‘input’,value) 更新 v-model值 vue3 通过this.$emit(‘update:modelValue’ ,value) 更新 v-model值

IO流简述

IO流IO流使用场景 什么是IO流常用的IO流字节流字符流缓冲流 BIO、NIO、AIO的区别 IO流 IO流使用场景 如果操作的是纯文本文件&#xff0c;优先使用字符流如果操作的是图片、视频、音频等二进制文件。优先使用字节流如果不确定文件类型&#xff0c;优先使用字节流。字节流是万能…

Neo4j 集群和负载均衡

Neo4j 集群和负载均衡 Neo4j是当前最流行的开源图DB。刚好读到了Neo4j的集群和负载均衡策略&#xff0c;记录一下。 1 集群 Neo4j 集群使用主从复制实现高可用性和水平读扩展。 1.1 复制 集群的写入都通过主节点协调完成的&#xff0c;数据先写入主机&#xff0c;再同步到…

UNIX网络编程卷一 学习笔记 第二十六章 线程

在传统UNIX模式中&#xff0c;当一个进程需要另一个实体完成某事时&#xff0c;它就fork一个子进程&#xff0c;并让子进程去执行处理&#xff0c;Unix上大多网络服务器程序就是这么写的。 这种范式多年来一直用得很好&#xff0c;但fork调用存在一些问题&#xff1a; 1.fork调…

【C语言初阶(20)】调试练习题

文章目录 前言实例1实例2 前言 在我们开始调试之前&#xff0c;应该有个明确的思路&#xff1b;程序是如何完成工作的、变量到达某个步骤时的值应该是什么、出现的问题大概会在什么位置。这些东西在调试之前都需要先确认下来&#xff0c;不然自己都不知道自己在调试个什么东西…

hbase基础

hbase安装 tar -zxvf hbase-2.4.11-bin.tar.gz -C . ln -s f hbase-2.4.11-bin hbasemv /export/server/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar /export/server/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bakvim conf/regionser…

【Python系列】Python基础语法轻松入门—从变量到循环

目录 写在前面 语法介绍 变量 数据类型 整数 浮点数 字符串 列表 元组 字典 运算符 算术运算符 比较运算符 逻辑运算符 条件语句 循环语句 图书推荐 图书介绍 参与方式 中奖名单 写在前面 Python 是一种高级、解释型的编程语言&#xff0c;具有简单易学…

Windows驱动开发

开发Windows驱动程序时&#xff0c;debug比较困难&#xff0c;并且程序容易导致系统崩溃&#xff0c;这时可以使用Virtual Box进行程序调试&#xff0c;用WinDbg在主机上进行调试。 需要使用的工具&#xff1a; Virtual Box&#xff1a;用于安装虚拟机系统&#xff0c;用于运…

安全学习DAY09_加密逆向,特征识别

算法逆向&加密算法分类&#xff0c;特征识别 文章目录 算法逆向&加密算法分类&#xff0c;特征识别算法概念&#xff0c;分类单向散列加密 - MD5对称加密 - AES非对称加密 - RSA 常见加密算法识别特征&#xff0c;解密特点MD5密文特点BASE64编码特点AES、DES特点RSA密文…

C++STL序列式容器——list容器及其常用操作(详解)

纵有疾风起&#xff0c;人生不言弃。本文篇幅较长&#xff0c;如有错误请不吝赐教&#xff0c;感谢支持。 &#x1f4ac;文章目录 一.list容器基本概念二.list容器的常用操作list构造函数list迭代器获取list特性操作list元素操作list赋值操作list的交换、反转、排序、归并操作…

安装win版本的neo4j(2023最新版本)

安装win版本的neo4j 写在最前面安装 win版本的neo4j1. 安装JDK2.下载配置环境变量&#xff08;也可选择直接点击快捷方式&#xff0c;就可以不用配环境了&#xff09;3. 启动neo4j 测试代码遇到的问题及解决&#xff08;每次环境都太离谱了&#xff0c;各种问题&#xff09;连接…

Qt中postevent造成内存泄漏问题的通用解决方案

在Qt中由QCoreApplication统一管理Qt事件的收发和销毁,其中sendEvent为阻塞式发送,用于单线程的事件发送;postevent为非阻塞式发送,构造事件的线程和接受事件的线程可以为两个线程。 最近在做一个个人项目ShaderLab 需要绘制OpenGL实时渲染的图像,由于OpenGL渲染基本都放…

如何提高接口测试覆盖率?

接口测试是测试系统组件间接口的一种测试。 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。 测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系等。 接口测试该如何提高测试的覆盖率呢&#…