语言表示相关资料整理(慢慢更新)

说明

  • 语言的魅力在于短短的文本中,蕴含了丰富的信息。在我的理解里,大部分自然语言处理的工作,首先要解决的问题就是对于语言的表示,将文本变为结构化的数据(向量),才能根据具体任务,进行后续的工作。早期对于词法、句法信息的特征提取,统计语言模型,再到word2vec、ELMO、GPT、BERT、XLNET等等,可以看到语言预训练技术再不断的发展。
  • 本篇是这一两周对于自然语言预训练相关知识的阅读链接整理。主要汇总了自己在学习时觉得有用的文章以及实践工作。
  • 参考链接就不额外贴了

理论部分

  • 自然语言预训练发展史
    全面的介绍了预训练的思想、动机,介绍了word2vec、ELMO、GPT、BERT的相关工作。大致思想,应用有涉及,细节不多。
  • ELMO、GPT、BERT
    论文阅读笔记,均按照引言、方法、实验三部分介绍,借用了论文的PPT。
  • XLNet解析及与BERT比较
    文章开头,对于XLNet作者对先前语言表示工作的总结进行解释。概括了主要思想,并与BERT对比。可以看完论文再看看这篇解析。
  • XLNet详解
    作者以飞机作为比喻,拆解XLNet的各个部分,细节涉及较多,也有作者自己思考。

可以看到近几年的工作,从GPT开始,都引入Attention机制,以Transfomer作为特征提取器。也看到一些博主的观点,Transfomer将取代RNN,目前这一点个人理解不深。主要是理论阅读较多,实验做的少,没有从实践中体会感受。个人体会,深度学习的理论不像数学那么完善(也许是我理解不够),实践效果才是硬道理。

之前对于Attention的认识,是基于NNDL那本书,还有在准备论文报告时,接触了Global Attention的那篇文章。组会上听了学长介绍以后,又继续加深了解。

  • Transfomer解读
    阐述的十分清楚,可视化做的很棒,很容易理解。

实践部分

之前做了文本分类的任务,说实话,模型结构相当简单,接触的也只是TF2.0高级API。突然发现,tensorflow官网教程中给的Demo相当不错,就是貌似要翻墙。

代码阅读

细节疑惑整理:

之前看的tensorflow2.0教程,属实入门读物,对于更底层的原理,细节都不了解,这个坑要慢慢填完。

坑:

---------------6.4更新----------------------------------
这3个月下来对于预训练模型还有加深了一定的认识,但理论上还没有深究。先从idea上整理下。

  1. 传统词向量:
  • One-hot编码:高维,稀疏
  • 分布式表示:降维;稠密
    - 特点:解释性增强,但训练慢,新增语料库困难
  • 语言模型:
    • N-gram
      注意数据平滑技术解决零概率的问题;最简单的平滑技术就是+1(分子分母)
      评测方法:交叉熵以及困惑度。构建个测试集(有n个句子)计算其概率。
      H p ( T ) = − 1 W T l o g 2 p ( T ) H_p(T) = -\frac{1}{W_T}log_2p(T) Hp(T)=WT1log2p(T)

    • NNLM:上文预测下一个词

      • SENNA:换词作为负例,正例得分大于负例
      • Word2vec:上下文预测;训练快
    • 存在的问题:

      • 假设设一个词由唯一的词向量表示,无法解决一词多义。
  1. 上下文相关的词向量:

    • CoVe:《Learned in Translation: Contextualized Word Vectors 》
    • ELMo
  2. 预训练模型:

    • GPT
    • Bert:predict masked word,next sentence predict

都是用Transformer作为encoder,GPT是单向的,BERT是双向的。
GPT是word + pos embedding;Bert:word+pos+segment embedding

Bert的改进:

  • 其他预训练目标
    ERNIE(百度):针对中文,Mask中文的词与实体,更契合
    SpanBERT:没有NSP任务,mask的是一段文字,不是单个字词。在段抽取任务,如抽取式问答中表现良好【应该也适用于关系抽取】
    MASS:挖掉句子中的一段文字;通过其余部分,使用seq2seq模型重构该段文字。适用于seq2seq模型,语言生成类的任务,比如机器翻译。
  • 融入知识图谱
    ERNIE(清华):在预训练模型中,将知识图谱中实体的表示融入文本表示。
    《ERNIE: Enhanced Language Representation with Informative Entities》
  • 精细调参
  • 输入不一致的问题
  • 模型压缩与加速
  • 跨语言跨模态
    总结:
    在这里插入图片描述图来自于CCL 2019车万翔教授的报告PPT。
  1. 预训练模型的应用
  • 更多精调方法
  • 多任务学习
    《BAM! Born-Again Multi-Task Networks for Natural Language Understanding》
    可以关注:关系抽取可以看成是一个多任务问题
  • 小样本学习:
    《Few-Shot Sequence Labeling with Label Dependency Transfer and Pair-wise Embedding》
    可以关注:小样本学习多用于分类,将其应用到序列标注问题,结合多任务学习?
  • 零样本学习

--------------------------------------------------6.13更新-------------------------------------
最近听了些关于NLP的课程,也有些有用的资料

Word2Vec

  • Skipgram是好于CBOW的:

    • 同样数据样本量更多(中心预测周围产生的样本多)
    • 难易度,直观上说Skipgram更难
    • 平滑:CBOW对于出现次数较少的词效果不好,因为做avg_pooling的时候次数少的影响可以认为被抹去了。
  • 词向量是在哪产生的?

    • CBOW是权重矩阵,从词-隐藏层的矩阵
    • Skipgram有两种词向量,u与v。可以理解为一个是代表周围词,一个代表中心词。最后取两者的平均。
  • 两者是如何训练的,模型是什么,损失函数是啥?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值