| |
|
开发:
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 向量空间中词表示的有效估计 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. 我们提出了两种新的模型体系结构来计算从非常大的数据集的词的连续向量表示。 3. 论文介绍:1)传统NLP把词当成最小单元处理,并且能够在大语料上得到很好的结果,其中一个例子是N-grams模型 4. 论文原理首先语言模型的基本思想:句子中下一个词的出现和前面的词是有关系的,所以可以使用前面的词预测下一个词。 其实在word2vec出现之前,已经有用神经网络DNN来用训练词向量进而处理词与词之间的关系了。采用的方法一般是一个三层的神经网络结构(当然也可以多层),分为输入层,隐藏层和输出层(softmax层)。这个模型是如何定义数据的输入和输出呢?一般分为CBOW(Continuous Bag-of-Words )与Skip-Gram两种模型。 4.1 CBOW模型:cbow使用周围词预测中心词,即输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这特定的一个词的词向量。 4.2 Skip-gram模型:skip-gram使用中心词预测周围词, 用‘下午’来预测其余的词。即输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。
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 而出现频率低的词往往携带信息多。 为什么用重采样:
方法: 优点: 加速训练,能够得到更好的词向量。 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 QQ = 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 QQ = H ? H + H ? V Q = H * H + H * V Q=H?H+H?V 5.3 Skip-gram的 Q Q Q层次Softmax: 5.4 CBOW的 Q Q QQ = N ? D + D ? V Q = N*D + D*V Q=N?D+D?V 层次Softmax: 6. 任务描述识别5个语义和9个语法问题 6.1 最大化正确率(优化参数)用小数据集调参,选择最好的参数。 模型之间的比较:
类似完形填空,一句话盖住一个词,给出5个预测结果 7. 总结(Conclusion)The main innovation fo the paper:
关键点: 创新点: 启发点: 大数据集上的简单模型往往强于小数据集上的复杂模型 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |