目录

一、词向量Word2vector

二、Transformer

三、Bert


一、词向量Word2vector

  1. 语言的表达形式有两种:一种是离散的符号,一种是基于上下文的。eg.我 爱 你

    100
    010
    001

    上面的例子是离散的表示,基于one-hot编码,每个单词之间不存在上下文联系和语义之间的联系。而基于上下文的,比如我爱你,和我喜欢你,通过学习就会发现爱和喜欢这两个词比较解近.

  2. word2vec是一种方法来评估词间的关系,比如一个词“欢迎”,对应一个多维的词向量,这就可以通过word2vec实现。这个需要有一些前提来实现。
    1. >大的词表库
    2. >词表中的每个词都可以通过向量表征
    3. >有一个中心词c和一个输出词o
    4. >通过相似度计算来计算c和o同时出现的概率
    5. >调整词向量获得最大概率
  3. 损失函数:就是最大似然,基于中心词,预测周围词的概率的连乘,然后取对数求平均再取负号,就变成求最小问题
  4. 两种模型:skip-gram模型和cbow模型。
    1. >skip-gram模型,通过中心词求周围词的词向量。
    2. >cbow模型,与skip-gram相反,通过周围词求中心词的词向量;但是cbow需要注意的是因为多个输入到一个hidden layer 需要词向量求平均,所以会受影响,可能无法很好的表示词和词之间的关系
  5. 优化方法:hierarchical softmax 和 negative sampling
    1. >分层的softmax用树结构去存取单词,不使用softmax会使的运算速度变为log级别
    2. >负采样,就是只用几个词来训练,这样不需要softmax对整个数据集指数求和,自然快了很多;负采样的负样本有一定的采词依据,依据数学公式(归一化,分子是3/4次方)。
  6. 词向量的局限性:一词多义问题,因为词向量是静态的。

二、Transformer

  1. 组成:由多个encoder和decoder组成,encoder中包含self-attention(敲黑板,这是重点,自注意力主要表示词间的关系)和feed-forward
  2. self-attention:自注意力是transformer的核心。其中含有三个权重矩阵分别是WQ,WK,WV;输入的单词,通过embedding,嵌入到一个向量空间中,然后和这三个矩阵相乘,会生成对应的q,k,v向量,其中q代表query,k代表key,v代表value。然后通过,q*k得到整数型的score,这里要注意,比如针对thinking单词自己的q1,它需要去乘自己的k1得到一个score,也需要去乘其他单词的k,去得到另外的score,这个score就代表thinking和这些单词的相关性。然后需要对score进行除以维度开根号,一般是64维,所以除以8.然后softmax即可。对score除的原因在于,防止在softmax中,数值太大,导致数据偏离梯度比较好的范围,可能会弱化词间的关系。别急,这还没完,然后乘以自己的v向量,即可得到一个对应的自己的向量。
  3. self-attention的输入:需要embedding和positional encoding相结合,这里positional encoding使用的是正余弦的周期函数
  4. rnn与cnn比较:在语义特征提取能力、任务综合特征抽取能力,两者都ok;但是在长距离特征捕获能力,rnn更好

三、Bert

  1. 训练模型+微调
  2. Bert的结构就是输入+双向的transformer+输出
  3. Bert的输入的Embedding是三部分:单词的embedding+句子类型(一个句子一个类型)的Embedding+位置的embedding(这里的位置,就是比较普通的位置比如1,2,3,4这样子来表示)
  4. Bert的预训练的任务主要由两个:MLM(Mask language model)也就是做完形填空的和NSP(Next sentence predict)下个句子预测的
  5. 目前的预训练模型:
    XLNet
    RoBERTa
    ALBERT
    GPT2
    ERNIE
    DistilBERT
    VideoBERT
    FastBERT
作者也是开始逐步了解,和大家分享自己的心得,有不对的地方,欢迎读者指正,一起讨论。感谢。

初次遇见NLP:从词向量到BERT相关推荐

  1. NLP之词向量:利用word2vec对20类新闻文本数据集进行词向量训练、测试(某个单词的相关词汇)

    NLP之词向量:利用word2vec对20类新闻文本数据集进行词向量训练.测试(某个单词的相关词汇) 目录 输出结果 设计思路 核心代码 输出结果 寻找训练文本中与morning最相关的10个词汇: ...

  2. NLP︱高级词向量表达(三)——WordRank(简述)

    如果说FastText的词向量在表达句子时候很在行的话,GloVe在多义词方面表现出色,那么wordRank在相似词寻找方面表现地不错. 其是通过Robust Ranking来进行词向量定义. 相关p ...

  3. NLP︱高级词向量表达(二)——FastText(简述、学习笔记)

    FastText是Facebook开发的一款快速文本分类器,提供简单而高效的文本分类和表征学习的方法,不过这个项目其实是有两部分组成的,一部分是这篇文章介绍的 fastText 文本分类(paper: ...

  4. NLP︱高级词向量表达(一)——GloVe(理论、相关测评结果、Rpython实现、相关应用)

    有很多改进版的word2vec,但是目前还是word2vec最流行,但是Glove也有很多在提及,笔者在自己实验的时候,发现Glove也还是有很多优点以及可以深入研究对比的地方的,所以对其进行了一定的 ...

  5. 毕业设计 - NLP:词向量Skip-gram word2vec

    文章目录 简介 0 前言 1 项目介绍 2 数据集介绍 3 项目实现 3.1 数据预处理 3.2 配置网络 3.3 网络训练 3.4 模型评估 4 最后-毕设帮助 简介 今天学长向大家介绍NLP基础 ...

  6. [NLP]高级词向量之谷歌BERT详解

    1. 前言 如何让搜索引擎呈现用户想要的结果是困扰谷歌工程师的一大难题.谷歌搜索英文版于2019年10月25日上线BERT算法,他们的搜索引擎用上了强大的 BERT 预训练模型,可以让搜索引擎结合语境 ...

  7. 【NLP】词向量:从word2vec、glove、ELMo到BERT详解!

    目前,词向量(又叫词嵌入word embedding)已经成为NLP领域各种任务的必备一步,而且随着bert elmo,gpt等预训练模型的发展,词向量演变为知识表示方法,但其本质思想不变.学习各种词 ...

  8. 词向量到Bert代码——部分习题

    习题 from gensim.models import word2vec sentences = ... model = Word2Vec(sentences, size=100, window=5 ...

  9. ALBERT第一作者亲自讲解:词向量、BERT、ALBERT、XLNet全面解析

    现在是国家的非常时期,由于疫情各地陆续延迟复工,以及各大院校延期开学.作为一家AI教育领域的创业公司,我们希望在这个非常时期做点有价值的事情,并携手共渡难关.在疫情期间,我们决定联合国内外顶尖AI专家 ...

最新文章

  1. 一次挖掘SRC漏洞 - 从0到有
  2. js读取外部json指定字段值完整代码_前端工程化 剖析npm的包管理机制(完整版)...
  3. Python 列表笔记
  4. 一台电脑,内外网同时使用
  5. java post加密_使用Java和PHP的BCrypt,发送加密的密码并对其进行解码 - java
  6. 姿态坐标c语言,判断 AR 中坐标系的姿态和位置的简单方法
  7. 袁承兴:【译】Async/Await(一)——多任务
  8. 什么是干接点、湿接点、源型、漏型、NPN、PNP
  9. paypal tp 对接_PayPal支付接入
  10. 基于FPGA的交通灯设计
  11. 计算机专业人员有补贴吗,2020年各地软考证书申领补贴需要什么条件
  12. 大学c语言基础知识选修课,北京交通大学选修课选课指南
  13. MATLAB:图像半调转换(halftone)和抖动转换(dither)
  14. 第一台超高速巨型电子计算机,1997年,( )巨型机的研制成功,使我国在这个领域跨入了世界先进行列。...
  15. 电脑连打印机不打印,是怎么回事?
  16. request.querystring php,ASP_ASP读取Request.QueryString编码的函数代码,1. 支持参数纯汉字 ?a=深山老熊 - phpStudy...
  17. ActionBarTest、FragmentTest
  18. A Fixed-Point Model for Pancreas Segmentation in Abdominal CT Scans
  19. element-UI中el-select组件使用拼音进行模糊匹配可选择项
  20. 硬盘的文件格式变为RAW格式

热门文章

  1. AI一分钟|腾讯与三星结盟,以对抗苹果和谷歌;亚马逊回应“AI误将国会议员标记为罪犯”...
  2. AI一分钟|外媒:AI将消灭资本主义;特斯拉再遭唱空:量产存疑外加事故不断...
  3. 关闭线程池 shutdown 和 shutdownNow 的区别
  4. Spring发布新成员:Spring GraphQL!高调出场的GraphQL能火起来了吗?
  5. 带你100% 地了解 Redis 6.0 的客户端缓存
  6. 算法工程师在岗3年小结!
  7. 用Python进行时间序列分解和预测
  8. 深度学习需要掌握的 13 个概率分布(附代码)
  9. Batch Size对神经网络训练的影响
  10. 告别「灭霸式审稿」,IJCAI-21 的投稿者爽到家!