![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
NLP
文章平均质量分 80
介绍NLP发展阶段各个模型的架构,优缺点等,持续更新
别水贴了
阿里算法专家。
推荐/搜索算法, NLP,语音识别
展开
-
OpenAI GPT2解读
背景随着语言模型从word2vec, ELMo, GPT1再到BERT等模型的发展,目前基本形成了无监督的pretrain到各自任务监督学习的fine-tune(比如机器翻译,文本分类等任务),然而也导致了一个问题,如果缺乏特定任务的监督训练数据就比较难办了。GPT2的研究发现语言模型其实不用显式的fine-tune,本身就具备解决这些能力,具体见论文《Language Models are Unsupervised Multitask Learners》什么是语言模型?GPT2回来最初的问题,到底原创 2021-01-27 21:05:06 · 919 阅读 · 0 评论 -
ELECTRA解读
背景当今的SOTA的预训练语言模型,比如BERT,采用Mask language model(MLM)的方式破坏输入的内容,通过双向语言模型进行预测重构;然而这存在一个问题,那就是[MASK]这个token在训练中存在但是在实际预测中不存在,为了缓解这个问题,BERT采用了选择语料中15%的TOKEN,在其中80%进行【MASK】,10%随机替换,10%不变,这的确稍微缓解了训练预测不一致的问题(虽然在XLNet利用permutation language model得到解决),但是确使得BERT必须利用原创 2020-12-26 11:26:27 · 1123 阅读 · 0 评论 -
TinyBert解读
1. 背景随着NLP语言模型的发展,模型的计算越来越负责,很难将BERT应用与一些资源有限的设备上。为了提升模型的计算速度,提出了tinybert,模型预测提升了9.4倍的速度,模型大小缩小了7.5倍. 具体论文见 《TinyBERT: Distilling BERT for Natural Language Understanding》1.1 模型结构变换tinybert的层数相对bert base从12层降低到4层;FFN层输出的大小从3072降低到1200,Head个数12保持不变,hidden原创 2020-12-20 16:16:57 · 2535 阅读 · 2 评论 -
DistilBert解读
《DistilBERT, a distilled version of BERT: smaller,faster, cheaper and lighter》原创 2020-07-08 19:58:37 · 8044 阅读 · 0 评论 -
ALBERT解读
《ALBERT: A Lite BERT For Self-Supervised Learning of Language Representations》原创 2020-07-08 17:30:15 · 564 阅读 · 0 评论 -
StructBERT解读
《StructBERT: Incorporating Languages structures into pre-training for deep language understading》原创 2020-07-04 10:50:08 · 4436 阅读 · 2 评论 -
RoBERTa解读
《RoBERTa: A Robustly Optimized BERT Pretraining Approach》原创 2020-07-02 20:27:06 · 1199 阅读 · 0 评论 -
TransformerXL解读
背景对语言模型建模,RNN和Transformer都是能提取长距离的依赖关系的特征提取器。RNN方面,由于本身的recurrent机制,可以接受任意长度的序列作为输入,但是由于梯度消失和爆炸(gradient vanishing and explosion)和无法并行计算等问题,实际效果不佳;Transformer作为新贵,虽然不存在上述问题,但是由于实际不可能输入任意长度的词encoding到fixed length,只能先按某个固定最大长度分chunks再对每个chunks计算,这就带来了两个问题,即原创 2020-06-29 16:17:43 · 1095 阅读 · 0 评论 -
XLNet解读
背景我们先对现有的预训练语言模型做个分类讨论。语言模型AR vs AE按照预训练语言模型的学习目标,可以分为自回归语言模型(Autoregressive, AR)和自编码语言模型(Autoencoding, AE)两种。Autoregressive LM自回归语言模型(Autoregressive LM, AR), 通俗的来说就是单向语言模型,通过过去时刻已知的结果去预测下一个时刻(或者反向)。对于AR语言模型,给定一个序列X=(x1,x2,...,xT)X = (x_1, x_2, ... ,x原创 2020-06-24 20:57:21 · 390 阅读 · 0 评论 -
BERT解读
背景之前我们解读了ELMo和OpenAI GPT,我们发现他们直接的比较各有优缺点,不同于OpenAI GPT的单向语言模型,ELMo用的是双向语言模型,这能更好的捕捉文本语句中上下文的依赖关系,但是特征提取器方面,ELMo用的是LSTM即RNN的网络架构,OpenAI GPT用的是更强的transformer中的decoder部分进行建模。那么我们能不能结合两者的优势呢?将transformer和双向语言模型进行融合,便得到NLP划时代的,也是当下在各自NLP下流任务中获得state-of-the-a原创 2020-06-13 11:51:17 · 1918 阅读 · 0 评论 -
OpenAI GPT解读
背景上篇我们讲了transformer的模型架构,论文《Attention is all you need》 也表明了transformer的效果是比RNN和CNN好的,而在ELMo解读里,我们也谈到了训练语言模型再结合具体任务即pre-train的思想,这两者的优势进行简单的结合便得到了OpenAI GPT,具体论文见《Improving Language Understanding by Generative Pre-Training》介绍OpenAI GPT主体采用无监督学习的方式,不需要lab原创 2020-06-04 20:35:09 · 1403 阅读 · 0 评论 -
从seq2seq到attention再到Transformer
seq2seq首先我们介绍下seq2seq,它首次应用在机器翻译的seq2seq,也就是enoder-decoder架构。我们以RNN举例说明,seq2seq是将输入单词的embedding输入逐步输入encoder中,每个时刻encoder的输出取决于当前时刻的输入和上一时刻的隐状态(即上一时刻的输出),最后的隐状态作为decoder的输入,decoder之后的输出也是取决与上一时刻的隐状态和上一时刻的输出单词的embedding,最终输出的单词是decoder输出的隐状态全联接softmax之后得到最原创 2020-05-23 13:34:21 · 1411 阅读 · 0 评论 -
ELMo解读
背景之前我们提到的NNLM和Word2Vec开辟了词向量的先河。仔细回顾,我们可以知道,为了解决统计语言模型存在的稀疏性,平滑等问题,NNLM运用神经网络对语言模型进行建模,采用输入若干个词预测下一个词,结果发现第一层的embedding vector很很好的反应词的语义在空间上的表达,因此NNLM是语言模型,词向量是副产物。对于word2vec同样如此,相比NNLM, word2vec做了多改进(删掉隐藏层减少参数,negative sampling,层次softmax等),使得得到词向量更加快速高效。原创 2020-05-17 14:28:46 · 829 阅读 · 0 评论 -
fastText解读
背景上一章的Word2Vec解读我们了解到了一种快速对词语进行embedding的方式,对于文本分类任务,fasttex被facebook提出,具体论文见《Bag of Tricks for Efficient Text Classification》模型架构如图所示,模型采用类似word2vec的cbow模型,只不过这里最终输出的是各个分类label的概率,而不是中心词的概率 。和CBOW模型同理,输入通过一个weight matrix C进行look up得到词向量,和词袋模型一样对多个词取平原创 2020-05-13 20:59:54 · 506 阅读 · 0 评论 -
Word2Vec解读
Word2Vec解读背景从上一章神经网络语言模型(NNLM)我们了解到,他的优点相比传统的统计语言模型,首次引入词向量word embedding的概念,将离散的统计模型转为了高维空间中的连续稠密向量,解决了传统统计语言模型的平滑问题,并且将Ngram的复杂度的指数增长转为了线性,并且N元组共现未必相似问题也得到一定的解决。但是NNLM由于前馈全链接层网络加上look-up table后参数量过于庞大,训练时间很慢, 并且由于模型参数输入的词数固定等缺陷,尽管后续基于RNN提出RNNLM,依然不能很好解原创 2020-05-09 18:29:45 · 735 阅读 · 0 评论 -
NLP学习之路【目录】持续更新中。。
统计语言模型神经网络语言模型NNLM原创 2020-05-09 16:25:26 · 322 阅读 · 0 评论 -
神经网络语言模型 -- Neural Network Language Model
神经网络语言模型(Neural Network Language Model)模型介绍2003年,Bengio首次提出Neural Network Language Model(NNLM), 开创了神经网络运用在语言模型的先河,论文 《A Neural Probabilistic Language Model》上一章提到传统的统计语言模型的缺点,在高维的情况下,由于N元组的稀疏问题,传统的语...原创 2020-05-04 12:21:57 · 2642 阅读 · 0 评论 -
经典统计语言模型 -- Statistical Language Model
统计语言模型(Statistical Language Model)NLP早期常用的统计方法,对于一个sequence序列S的句子,其出现的概率计算如下:P(S)=P(w1)⋅P(w2∣w1)⋅P(w3∣w2)⋯P(wn∣wn−1)(1)P(S)=P(w_1){\cdot}P(w_2|w_1){\cdot}P(w_3|w_2){\cdots}P(w_{n}|w_{n-1}) \tag1P(...原创 2020-05-04 10:12:55 · 879 阅读 · 0 评论