IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> NLP十大Baseline论文简述(一) - Word2vec -> 正文阅读

[人工智能]NLP十大Baseline论文简述(一) - Word2vec

前言:

如果需要对基础概念不了解,可以参考这里。我汇总了论文中涉及的大部分概念,以便更好的理解论文。

1. Paper:

Efficient Estimation of Word Representations in Vector Space 向量空间中词表示的有效估计
Distributed representations ofwords and phrases and their compositionality单词和短语的分布式表示及其组成

Word2vec是Google的Mikolov等人提出来的一种文本分布式表示的方法,这种方法是对神经网络语言模型的“瘦身”, 巧妙地运用层次softmax(hierarchical softmax )和负采样(Negative sampling )两种技巧,使得原本参数繁多、计算量巨大的神经网络语言模型变得容易计算。

2.论文摘要:

We propose two novel model architectures for computing continuous vector repre-sentations of words from very large data sets. 我们提出了两种新的模型体系结构来计算从非常大的数据集的词的连续向量表示。
The quality of these representationsis measured in a word similarity task, and the results are compared to the previ-ously best performing techniques based on different types of neural networks. 在一个词相似度任务中测量了这些表征的质量,并将结果与以往基于不同类型神经网络的最佳表现技术进行了比较。
Weobserve large improvements in accuracy at much lower computational cost, i.e. ittakes less than a day to learn high quality word vectors from a 1.6 billion wordsdata set. 我们观察到,在计算成本更低的情况下,准确率有了很大的提高,也就是说,从16亿个单词数据集中学习高质量的单词向量只需不到一天的时间。
Furthermore, we show that these vectors provide state-of-the-art perfor-mance on our test set for measuring syntactic and semantic word similarities.此外,我们还表明,这些向量在度量语法和语义词相似度的测试集上提供了最先进的性能。

3. 论文介绍:

1)传统NLP把词当成最小单元处理,并且能够在大语料上得到很好的结果,其中一个例子是N-grams模型
2)然而很多自然语言处理任务只能提供很小的语料,如语音识别,机器翻译,所以简单的扩大数据规模来提升简单模型的表现在这些任务不再适用,所以必须寻找更加先进的模型。
3) 分布式表示可以在大语料上训练得到很好的语言模型,并且能超过N-Grams模型, 这是一个很好的可以作为改进的技术。

4. 论文原理

首先语言模型的基本思想:句子中下一个词的出现和前面的词是有关系的,所以可以使用前面的词预测下一个词。
Word2vec的基本思想:句子中相近的词之间是有联系的,比如今天后面经常出现上午,下午和晚上。所以Word2vec就是用词来预测词,skip-gram使用中心词预测周围词,cbow使用周围词预测中心词

其实在word2vec出现之前,已经有用神经网络DNN来用训练词向量进而处理词与词之间的关系了。采用的方法一般是一个三层的神经网络结构(当然也可以多层),分为输入层,隐藏层和输出层(softmax层)。这个模型是如何定义数据的输入和输出呢?一般分为CBOW(Continuous Bag-of-Words )与Skip-Gram两种模型。

4.1 CBOW模型:

cbow使用周围词预测中心词,即输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这特定的一个词的词向量。
在这里插入图片描述
根据图片例子:我们的输入是4个词向量,输出是所有词的softmax概率(训练的目标是期望训练样本特定词对应的softmax概率最大),对应的CBOW神经网络模型输入层有4个神经元,输出层有词汇表大小个神经元。隐藏层的神经元个数我们可以自己指定。通过DNN的反向传播算法,我们可以求出DNN模型的参数,同时得到所有的词对应的词向量。这样当我们有新的需求,要求出某8个词对应的最可能的输出中心词时,我们可以通过一次DNN前向传播算法并通过softmax激活函数找到概率最大的词对应的神经元即可。

4.2 Skip-gram模型:

skip-gram使用中心词预测周围词, 用‘下午’来预测其余的词。即输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。

在这里插入图片描述
具体过程: 即输入特定词 W i W_i Wi?‘下午’, 输出时softmax概率前4的4个词,对应的Skip-Gram神经网络模型输入层有1个神经元,输出层有词汇表大小个神经元。隐藏层的神经元个数我们可以自己指定。通过DNN的反向传播算法,我们可以求出DNN模型的参数,同时得到所有的词对应的词向量。这样当我们有新的需求,要求出某1个词对应的最可能的8个上下文词时,我们可以通过一次DNN前向传播算法得到概率大小排前8的softmax概率对应的神经元所对应的词即可。

4.3 降低复杂度 - Hierachical Softmax (层次Softmax) “五星重点”

层次化softmax是为了解决用softmax进行V分类时(V是词典大小),由于词典巨大导致计算目标词的似然概率的低效问题。

层次化softmax改变了原来的模型结构。原来是1V(输入one-hot),经过VD的矩阵(input-embedding) ,再经过DV矩阵(output-embedding),即一系列矩阵乘法(1,V)(V,D)*(D,V)=(1,V)【其中的第一次乘法,一般用查表的方式直接读取,不用相乘】,再softmax,得到目标词是词典中每个词的概率。使用层次化softmax时,output-embedding被取消了,查表后直接用(1,D)的向量与每个中间路径节点对应的一个向量γn【形状为(D,1)】,进行相乘,得到一个scalar,再经过sigmoid,转为一个0到1之间的小数,此数从就是从树(树是二叉树,树的每个叶子节点都对应一个单词)的根节点到某个叶子节点的路径上每次在中间节点选择向左(也可定为向右)走的概率。

层次化softmax的目标函数就是最大化目标词的路径概率,换句话说,我们只需要关注目标词的路径概率即可,而目标词是已知的,完全不需要计算其他的词的路径概率。这点是后续优化措施的关键。

那层次化softmax的优点体现在哪里?体现在计算预测输出值为每个单词的概率时,由于概率是从根节点到叶子节点的路径上的边进行连乘,也就是计算量与目标词(叶子节点)的路径长度成正比,原来的softmax的目标函数在反向传播时需要求导,而求导时,由于分母是e的指数的累加和,导致必须算出所有单词的概率,计算量是与词表大小V成正比。【目标函数为交叉熵,loss=-ΣYilogPi, 其中i代表某个类别,而只有目标词的Yi为1,其余词的Yi为0,因此loss=-logP(target)。而Pi=softmax(w1w2),w1,w2分别是input-embedding、output-embedding矩阵中的参数, 先求对w2的梯度:d(loss) /d(w2)=-1/P(target)* d(P(target))/d(w2),可见梯度中包括P(target)的计算,因此必须包含V个e的指数计算。】

而层次化softmax的树是二叉树,路径长度也就是树的高度,假设是满二叉树,则树高=V取2为底的对数值,远远小于V,节省了很多计算过程。比如一个大小为1024的词典,原来softmax是1024个e的指数计算,现在是log1024=10次sigmoid值再连乘,共节省了1024-10=1014次计算。

是否还可以进一步优化?可以。以上表述中层次化的softmax用到的树,一般认为是满的二叉树,也就是树的高度为logV,其实还有优化的空间。因为目标词的概率仅与根节点到目标词的路径长度有关,如果我们能够优化根节点到目标词的路径长度,就可以进一步节省计算。什么二叉树的根节点到叶子节点的路径长度最短?答案是哈夫曼树。

因此可以把树做成哈夫曼树。mikolov的论文就是采用了哈夫曼树,且构建哈夫曼树时,比较节点的权重大小是依据该节点(也就是单词)的词频,词频大的放在离根节点近的地方,词频小的远离根节点。如此词频大的词只需要很少的比较次数,路径就结束了,计算次数比较少。

由于是根据词频来构建哈夫曼树,所以一开始这课树的结构就是已经确定的,每个叶子节点对应的单词也是已知的,换言之根节点到目标节点的路径包括中间节点、向左还是向右也是已知的,每个中间节点对应的向量的形状已经定好了,并不是真的需要每次都要判断向左走还是向右走。后续优化时只需要更新中间节点对应的向量、词向量即可。

应用Hierarchical Softmax就是把 N 分类问题变成 log(N)次二分类。

4.4 降低复杂度 - Negative Sampling (负采样) “五星重点”

舍弃多分类,提升速度。

4.5 降低复杂度 - Subsampling of Frequent Words (多重采样)“五星重点”

自然语言处理共识:文档或者数据集中出现频率高的词往往携带信息较少,比如the, is, a, and 而出现频率低的词往往携带信息多。

为什么用重采样:

  1. 想要更多的训练重要的词对,比如训练‘France’与‘Paris’之间的关系比训练‘France’和‘the’之间的关系要有用
  2. 高频词很快就训练好了,而低频词需要更多的轮次

方法:
P ( w i ) = 1 ? t / f ( w i ) P(w_i)=1-\sqrt{t/f(w_i)} P(wi?)=1?t/f(wi?) ?
其中 f ( w i ) f(w_i) f(wi?)为词 w i w_i wi?在数据集中出现的频率。文中t选取为 1 0 ? 5 10^{-5} 10?5,训练集中的词 w i w_i wi?会以 P ( w i ) P(w_i) P(wi?)的概率被删除。
分析上面式子,词频越大, f ( w i ) f(w_i) f(wi?)越大, P ( w i ) P(w_i) P(wi?)越大,那么词 w i w_i wi?就有更大概率被删除,反之亦然。如果词 w i w_i wi?的词频小于等于t,那么 w i w_i wi?则不会被剔除。

优点: 加速训练,能够得到更好的词向量。

5. 模型复杂度

O = E ? T ? Q O = E * T *Q O=E?T?Q

O O O 是训练复杂度Training complexity

E E E 是训练迭代次数Number of the training epochs

T T T 是数据集大小Number of the words in the training set

Q Q Q 是模型计算复杂度Model computational complexity

5.1 NNLM的 Q Q Q

Q = V ? H + N ? D ? H + N ? D Q=V * H + N * D * H + N * D Q=V?H+N?D?H+N?D

5.2 RNNLM的 Q Q Q

Q = H ? H + H ? V Q = H * H + H * V Q=H?H+H?V

5.3 Skip-gram的 Q Q Q

层次Softmax:
Q = C ( D + D ? l o g 2 V ) Q = C ( D + D * log_2 V ) Q=C(D+D?log2?V)
负样本:
Q = C ( D + D ? ( K + 1 ) ) Q = C ( D + D * (K + 1)) Q=C(D+D?(K+1))

5.4 CBOW的 Q Q Q

Q = N ? D + D ? V Q = N*D + D*V Q=N?D+D?V

层次Softmax:
Q = N ? D + D ? l o g 2 V Q = N*D + D*log_2 V Q=N?D+D?log2?V
负样本:
Q = N ? D + D ? ( K + 1 ) ) Q = N*D + D*(K + 1)) Q=N?D+D?(K+1))

6. 任务描述

识别5个语义和9个语法问题
在这里插入图片描述

6.1 最大化正确率(优化参数)

用小数据集调参,选择最好的参数。
维度,以及训练数据量,是2个需要寻找的参数。
在这里插入图片描述

模型之间的比较:
在这里插入图片描述
与其他开源词向量比较

在这里插入图片描述
epoches比较

在这里插入图片描述
大规模并行模型训练

在这里插入图片描述
微软研究研究句子完成比赛

类似完形填空,一句话盖住一个词,给出5个预测结果
在这里插入图片描述

7. 总结(Conclusion)

The main innovation fo the paper:

  1. 提出一种新结构
  2. 利用分布式训练框架
  3. 提出新的词相似度

关键点:
更简单的预测模型 - Word2vec
更快的分类方案 - HS和NEG

创新点:
使用词对的预测来代替语言模型的预测
使用HS和NEG降低分类复杂度
使用subsampling加快训练
新的词对推理数据集来评估词向量的质量

启发点:

大数据集上的简单模型往往强于小数据集上的复杂模型
King的词向量减去man的词向量加上women的词向量和Queen的词向量最接近
我们设计简单的模型来训练词向量,虽然简答的模型无法像神经网络那么准确的表示数据,但是可以在更多的数据上更快的训练
我们相信在更大的数据集上使用更大的词向量维度能够训练得到更好的词向量。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 07:59:01  更:2021-09-19 08:00:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 14:44:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码