论文笔记--Efficient Estimation of Word Representations in Vector Space

news2024/12/23 5:30:39

论文笔记--Efficient Estimation of Word Representations in Vector Space

  • 1. 文章简介
  • 2. 文章概括
  • 3 文章重点技术
    • 3.1 NNLM(Neural Network Language Model)
      • 3.1.1 NNLM
      • 3.1.2 RNNLM(Recurrent Neural Net Language Model)
    • 3.2 Continuous Bag-of-Words Model(CBOW)
    • 3.3 Continuous Skip-gram Model
  • 4. 数值实验
  • 5. 文章亮点
  • 6. 原文传送门
  • 6. References

1. 文章简介

  • 标题:Efficient Estimation of Word Representations in Vector Space
  • 作者:Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean
  • 日期:2013
  • 期刊:arxiv preprint

2. 文章概括

  文章提出了两种Word2Vec模型(CBOW, Skip-gram),可以在大量的语料库上快速训练出高质量的词向量。且Word2Vec的词向量不仅可以保持相似单词的词向量相近,还可以保持词向量之间的线性操作(如 K i n g − m a n + w o m a n ≈ Q u e e n King-man+woman \approx Queen Kingman+womanQueen)。
  由于训练方法相比于传统的NNLM(Neural Network Language Model)更快,文章可以在更大的数据集上训练更高维度的词向量,从而词向量表达更丰富。数值实验表明Word2Vec得到的词向量质量更高(见第四节)。

3 文章重点技术

3.1 NNLM(Neural Network Language Model)

3.1.1 NNLM

  Word2Vec的基本架构基于[1]提出的NNLM。所谓LM(Language Model,语言模型),即通过前面的token预测当前的token。如下图所示,在输入层,给定当前单词的上文n个单词,模型首先对每个单词进行编码。NNLM采用的编码方式为Table look-up,即通过预先定义的hash表对一些常见的token进行映射,使用时直接查找当前token在映射表 C \mathcal{C} C中对应的编码即可。得到当前时刻 t t t对应的 N N N(对应图中的 n n n)个上文的编码分别为 C ( w t − N ) , … , C ( w t − 1 ) C(w_{t-N}), \dots, C(w_{t-1}) C(wtN),,C(wt1),其中每个token的编码 C t − i ∈ R D , i = 1 , … , N C_{t-i}\in \mathbb{R}^D, i = 1, \dots, N CtiRD,i=1,,N。我们将查表映射这一步称为project,得到的编码层为projection layer,维度为 R N × D \mathbb{R}^{N\times D} RN×D。这一步骤的计算量为 N × D N\times D N×D
NNLM
  得到projection layer之后,我们将其映射到大小为 H H H的隐藏层,这一步骤的计算量为 N × D × H N\times D \times H N×D×H
  最后传入到Softmax输出层预测词表中每个单词的输出概率,输出概率最大的token。这一步骤需要将隐藏层映射到每个词表中的token(共 V V V个token),计算量最大(因为一般来说 V ≫ H , V ≫ D V\gg H, V\gg D VH,VD),计算量为 H × V H\times V H×V
  NNLM的总计算量为 N × D + N × D × H + H × V N\times D + N \times D \times H + H \times V N×D+N×D×H+H×V

3.1.2 RNNLM(Recurrent Neural Net Language Model)

  上述NNLM需要指定上下文的大小 N N N,不易捕捉长期依赖,从而RNNLM[2]应运而生。如下图所示,RNNLM没有映射层,只有输入层、隐藏层和输出层。不同于NNLM,模型的输入为当前时刻的编码 I n p u t ( t ) = w t − i ∈ R H , i = 1 , … , N Input(t) = w_{t-i}\in\mathbb{R}^{H}, i=1, \dots, N Input(t)=wtiRH,i=1,,N(考虑词维度等于隐藏层维度的情况),将其映射到大小为 H H H的隐藏层,隐藏层不仅基于 I n p u t ( t ) Input(t) Input(t),而且要考虑上一个时刻的隐藏层 C o n t e x t ( t − 1 ) Context(t-1) Context(t1),即 C o n t e x t ( t ) = f ( C o n t e x t ( t − 1 ) , I n p u t ( t ) ) Context(t) = f(Context(t-1), Input(t)) Context(t)=f(Context(t1),Input(t))。最后输出层同NNLM。从而RNNLM的计算量为 2 × H × H + H × V 2\times H \times H + H \times V 2×H×H+H×V
RNNLM

3.2 Continuous Bag-of-Words Model(CBOW)

  文本基于上述NNLM提出了两种词向量训练方法:CBOW和Skip-gram。传统BOW(词袋模型)单纯基于token的计数给出词向量表达,而本文的CBOW给出了词向量在高维空间的连续嵌入。之所以命名为CBOW是因为模型未考虑上下文单词的顺序。
  下图给出了CBOW的模型架构。如图,在 t t t时刻,模型接受其上下文 N N N个单词作为输入(图中给出 N = 2 N=2 N=2的示意),然后将上下文映射到projection layer(维度为D),再得到输出。和NNLM不同的是,这里我们移除了hidden layer层,且所有token共用同一个projection layer。
CBOW
  CBOW的计算量为 N × D + D × log ⁡ 2 ( V ) N\times D + D \times \log_2(V) N×D+D×log2(V)。其中文章采用了hierarchical Softmax将 D × V D\times V D×V计算量缩减为 D × log ⁡ 2 ( V ) D\times \log_2(V) D×log2(V)

3.3 Continuous Skip-gram Model

  文章提出的第二种训练方法为Skip-gram。上述CBOW是通过当前词的上下文预测当前词,Skip-gram则是通过当前词预测当前词的上下文,预测难度更高,且上下文窗口越大,预测难度越高。Skip-gram的架构如下图所示。
Skip-gram
  Skip-gram的计算量为 N × ( 1 × D + D × log ⁡ 2 ( V ) ) N \times (1\times D + D \times \log_2(V) ) N×(1×D+D×log2(V))

4. 数值实验

  为了评估词向量的质量,文章定义了5种语义问题和9种语法问题,如下表所示。给定word pair1(w1, w2)和word pair2的第一个单词(w3),我们计算 w 3 − ( w 1 − w 2 ) w3-(w1-w2) w3(w1w2),在词表中找到和该向量最接近的单词作为结果。比如给定(Athens, Greece)和(Oslo, ?),模型预测的结果为Norway时才认为是正确的,其它任何答案均不正确。
questions
  上述9个任务的评估结果如下表所示,CBOW和Skip-gram的准确率远高于NNLM。
exp-results
  此外,因为无需计算复杂的隐藏层,Word2Vec的训练成本也很乐观。

5. 文章亮点

  文章给出了两种基于改良版NNLM的Word2Vec模型:CBOW和Skip-gram,可以高效的在大量语料库上给出高质量的词向量嵌入,从而满足下游NLP任务的需求。在GPT、BERT等模型提出之前,Word2Vec一直是NLP预训练词嵌入的一种受欢迎的选择,但Word2Vec未考虑上下文的顺序,且无法处理多义词。而基于Transformer的模型有效的解决了Word2Vec的不足,感兴趣的读者可阅读BERT和GPT系列文章[3][4]。

6. 原文传送门

Efficient Estimation of Word Representations in Vector Space

6. References

[1] A Neural Probabilistic Language Model
[2] Recurrent neural network based language model
[3] BERT系列文章阅读
[4] ChatGPT+自定义Prompt=发文神器

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

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

相关文章

皮卡丘Over Permission

1.越权漏洞概述 如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了不合理的权限校验规则导致的。 一般越权漏洞容易出现在权限页面(需要登录的页面…

省三医院新门诊大楼网络安全建设项目实施方案

省三医院新门诊大楼网络安全建设项目实施方案 甲方:省三医院 乙方:武汉埃郭信息技术有限公司1组吴冰冰 项目背景 省三医院新建一栋门诊大楼,地址位于原三医院东南处空地。为了响应国家建设数字医疗,构建医联网、医共体的号召&…

不要图片?CSS实现圆角边框渐变色+背景透明

前言 👏不要图片?CSS实现圆角边框渐变色背景透明,最近在工作中常常实现这些效果,速速来Get吧~ 🥇文末分享源代码。记得点赞关注收藏! 1.实现效果 2.实现原理 border-image: border-image CSS …

python基本操作3(速通版)

目录 一、字典 1.字典定义 2.字典的访问 3.字典的遍历 4.字典删除 5.字典练习 6.有序字典 7.集合 8.类型转化问题 9.公共方法 二、列表推导式 1.基本操作 2.在循环中使用if 三、组包和拆包 1.组包拆包基本应用 2.拆包的字典问题 四、python函数的一些特性 1.函…

【5.31 代随_43day】 最后一块石头的重量 II、目标和、一和零

最后一块石头的重量 II、目标和、一和零 最后一块石头的重量 II1.方法图解步骤![在这里插入图片描述](https://img-blog.csdnimg.cn/d2266317bc43491fb261f6372c2e0c9d.jpeg)代码 目标和1.方法图解步骤代码 一和零图解步骤代码 最后一块石头的重量 II 力扣连接:104…

状态机编程应用(收放卷停车方式控制)

有关状态机的详细介绍请参看下面的文章博客: PLC面向对象编程系列之有限状态机(FSM)详解_codesys 状态机_RXXW_Dor的博客-CSDN博客编写PLC控制机器动作类程序时,当分支比较少的时候我们使用if else语句解决,当分支比较多的时候,我们要使用CASE,END_CASE语句解决,针对分支…

微信小程序个人心得

首先从官方文档给的框架说起,微信小程序官方文档给出了app.js, app.json, app.wxss. 先从这三个文件说起. 复制 app.js 这个文件是整个小程序的入口文件,开发者的逻辑代码在这里面实现,同时在这个文件夹里面可以定义全局变量.app.json 这个文件可以对小程序进行全局配置,决定…

【6.01 代随_44day】 完全背包、零钱兑换 II、组合总和 Ⅳ

完全背包、零钱兑换 II、组合总和 Ⅳ 完全背包1.方法图解步骤 零钱兑换 II1.方法图解步骤代码 组合总和 Ⅳ图解步骤代码 完全背包 讲解连接&#xff1a;完全背包 1.方法 首先再回顾一下01背包的核心代码 for(int i 0; i < weight.size(); i) { // 遍历物品for(int j b…

javaScript蓝桥杯---分阵营,比高低

目录 一、介绍二、准备三、目标四、代码五、答案 一、介绍 期末考试结束不久&#xff0c;辛勤的园丁们就将所有学生的考试成绩汇总完毕。不过现在遇到一个问题&#xff0c;那就是目前所有学生的考试数据均混杂在一起。这些数据结构如下&#xff1a; [{name: "潇然"…

安装Pygame库:在Python中创建游戏的第一步

&#x1f331;博客主页&#xff1a;大寄一场. &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 目录 前言 安装Pygame库 方法一、在pycharm内部直接安装 方法二、通过pip直接安装 验证安装 前言 Pygame是一个功能强大的Python游戏开发库&#xff0c;它提…

MCU器件选型---主流厂商

MCU(Micro Controller Unit)中文名称为微控制单元&#xff0c;又称单片微型计算机(Single Chip Microcomputer)&#xff0c;是指随着大规模集成电路的出现及其发展&#xff0c;将计算机的CPU、RAM、ROM、定时数器和多种I/O接口集成在一片芯片上&#xff0c;形成芯片级的计算机&…

SSRF漏洞、SQL注入、CSRF漏洞、XXE漏洞

SSRF漏洞 1.我理解的定义&#xff1a; 攻击者将伪造的服务器请求发给一个用户&#xff0c;用户接受后&#xff0c;攻击者利用该安全漏洞获得该用户的相关信息 2.原理&#xff1a; 3.场景&#xff1a; &#xff08;1&#xff09;分享 &#xff08;2&#xff09;转码 &#xff…

网络编程知识点总结(4)

sock服务端代码实现读写 前几章有具体介绍这几个函数&#xff0c;这里就简单罗列出来了 &#xff08;1&#xff09;socket()函数 int socket(int domain, int type, int protocol); &#xff08;2&#xff09;bind()函数: IP号端口号与相应描述字赋值函数 int bind(int soc…

shell编程之for循环

文章目录 shell编程之for循环一.for语句1.什么是for循环2.for语句的结构3.for语句中常用转义字符 二.for语句应用示例1.批量添加用户2.根据IP地址检查主机状态三.循环的次数1.循环次数的格式2.循环次数示例2.1求1-100的整数求和2.2 1-10的偶数求和 3.步长——seq3.1 1-10的偶的…

JavaScript对象详解(六)

JavaScript对象详解 1、对象的使用1.1、使用对象字面量法1.2、使用构造函数1.3、使用 Object.create() 2、继承与原型链2.1、基于原型链的继承2.1.1、继承属性2.1.2、继承方法 2.2、不同方式所生成的原型链2.2.1、使用语法结构2.2.2、使用构造器2.2.3、使用Object.create()2.2.…

【锂离子电池容量估算】电池单元总容量的递归近似加权总最小二乘估计(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

论文笔记--Deep contextualized word representations

论文笔记--Deep contextualized word representations 1. 文章简介2. 文章概括3 文章重点技术3.1 BiLM(Bidirectional Language Model)3.2 ELMo3.3 将ELMo用于NLP监督任务 4. 文章亮点5. 原文传送门 1. 文章简介 标题&#xff1a;Deep contextualized word representations作者…

MMPose(openmmlab AI实战营二期第一节)

链接&#xff1a;人体关键点检测与MMPose_哔哩哔哩_bilibili 赶了个进度&#xff0c;实际上没听到&#xff0c;一个方向被浓缩成50分钟是有点难度。后续有需要再回顾吧 人体姿态估计&#xff1a;识别人体关键点坐标。模式识别任务&#xff0c;难点是始终在变化。以关键点连线…

chatgpt赋能python:如何使用Python匹配IP地址

如何使用Python匹配IP地址 如果你是一位网络管理员或是网络安全专家&#xff0c;那么你很可能需要经常处理IP地址。在一些情况下&#xff0c;你需要使用Python来自动化匹配或验证IP地址。在本文中&#xff0c;我们将介绍如何使用Python匹配IP地址。 IP地址的基础知识 在介绍…

地震segy数据高效读写库cigsegy在windows系统的编译

https://github.com/JintaoLee-Roger/cigsegy 一个读写 segy 格式地震数据的 python 和 c 工具。可以将 segy 格式文件读到内存或者直接转为二进制文件&#xff0c;也可以将一个 numpy 数据存储为segy格式的文件。 特点: 快&#xff0c;底层使用c实现可以在python中使用&…