论文笔记--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 King−man+woman≈Queen)。
  由于训练方法相比于传统的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(wt−N​),…,C(wt−1​),其中每个token的编码 C t − i ∈ R D , i = 1 , … , N C_{t-i}\in \mathbb{R}^D, i = 1, \dots, N Ct−i​∈RD,i=1,…,N。我们将查表映射这一步称为project,得到的编码层为projection layer,维度为 R N × D \mathbb{R}^{N\times D} RN×D。这一步骤的计算量为 N × D N\times D N×D

  得到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 V≫H,V≫D),计算量为 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)=wt−i​∈RH,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(t−1),即 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(t−1),Input(t))。最后输出层同NNLM。从而RNNLM的计算量为 2 × H × H + H × V 2\times H \times H + H \times V 2×H×H+H×V

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的计算量为 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的计算量为 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−(w1−w2),在词表中找到和该向量最接近的单词作为结果。比如给定(Athens, Greece)和(Oslo, ?),模型预测的结果为Norway时才认为是正确的,其它任何答案均不正确。

  上述9个任务的评估结果如下表所示,CBOW和Skip-gram的准确率远高于NNLM。

  此外,因为无需计算复杂的隐藏层,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=发文神器

论文笔记--Efficient Estimation of Word Representations in Vector Space相关推荐

  1. 读论文《Efficient Estimation of Word Representations in Vector Space》

    读论文<Efficient Estimation of Word Representations in Vector Space> 原文地址:http://blog.csdn.net/qq ...

  2. nlp论文——《Efficient Estimation of Word Representations in Vector Space》(向量空间中词表示的有效估计)

    目录 <Efficient Estimation of Word Representations in Vector Space> 第一课时:论文导读 (1)语言模型 (2)词向量简介-- ...

  3. NLP系列:Word2Vec原始论文:Efficient Estimation of Word Representations in Vector Space

    译者按: 2013年,Google开源了一款用于词向量计算的工具--word2vec,引起了工业界和学术界的关注.首先,word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练:其次,该工 ...

  4. 论文翻译解读:Efficient estimation of word representations in vector space【Word2Vec】

    文章目录 简要信息 重点内容概括 Efficient estimation of word representations in vector space 摘要 1 介绍 1.1 论文目标 1.2 以 ...

  5. 论文阅读:Efficient Estimation of Word Representations in Vector Space

    目录 前言 Abstract 1.Introduction 1.1 Goals of the Paper 1.2 Previous Work 2. Model Architectures 2.1 Fe ...

  6. Efficient Estimation of Word Representations in Vector Space 笔记

    先上这篇paper链接:https://arxiv.org/pdf/1301.3781.pdf 摘要 这篇paper介绍了两种可从大规模数据集计算continuous vector represent ...

  7. [Embeding-1]Efficient Estimation of Word Representations in Vector Space 译文

    1. abstract 我们提出了两种新的模型结构,用于计算非常大数据集中单词的连续矢量表示.这些表示的质量是在一个词相似性任务中测量的,并将结果与以前基于不同类型神经网络的最佳表现技术进行比较.我们 ...

  8. (30)[ICLR13] Efficient Estimation of Word Representations in Vector Space

    计划完成深度学习入门的126篇论文第三十篇,Google的Jeffrey Dean.Greg Corrado.Tomas Mikolov发表的第一排word2vec论文,引用高达10000次,同时也是 ...

  9. Word2Vec(Efficient Estimation of Word Representations in Vector Space)

    本篇论文的整体结构如下: 对比模型: NNLM RNNLM Word2Vec Skip-Gram CBOW 关键技术 层次softmax 负采样 实验结果 与对比模型的直接对比结果 不同参数的实验 不 ...

最新文章

  1. 死磕Java并发:Java内存模型之分析volatile
  2. BZOJ 1176([Balkan2007]Mokia-CDQ分治-分治询问)
  3. 我的android面试经历
  4. Redis集群方案,Codis安装测试
  5. php 跨区域,PHP跨时区的功能实现
  6. 记录一次uni-app页面跳转无效 来回跳转问题
  7. 【转】Ubuntu 16.04 远程桌面
  8. java union pay 代码_Java标记了union / sum类型
  9. Live Meeting 音频视频使用端口设置
  10. 使用Nmap扫描目标主机
  11. matplotlib色彩(colors)之色彩基础知识(色彩模型,matplotlib色彩格式,matplotlib默认色彩映射)
  12. 人体反应测试仪 c语言,FD.12-FD-HRT-A
  13. uniapp 动态插槽 slot 兼容微信小程序 h5 APP
  14. Directx11教程四十六之FBX SDK
  15. 2020 几款常用 Redis 可视化工具
  16. 矢网校准到底在较什么呢?
  17. C语言 输出菱形 最短代码!
  18. Linux 查看磁盘占用空间
  19. 12步解N-S方程之第三步
  20. CF 192 DIV.2

热门文章

  1. 大数据Spark MLlib机器学习
  2. 数据仓库(6)数仓分层设计架构
  3. Perforce现代软件工程与古代哲学:儒家思想
  4. 如何彻底删除Visual Studio产品
  5. Kotlin学习二:类与对象
  6. SpringCloud学习(六)----- Gatewayw网关完善(防止SQL注入)
  7. 【无标题】云计算第一天笔记
  8. 计算机系统五大功能,操作系统的五大功能是什么
  9. 【第九篇】Flowable中的候选人讲解
  10. 视频教程-C++高级课程-C/C++