常见的nlp 自然语言处理模型

最近需要处理有关语言的模型,因此整理了一份语言处理相关的方法链接

LSA、PLSA
Language sense analyse, potential Language sense analyse
潜在语义分析–文本稀疏表示–>文本相似度度量、主题模型
https://blog.csdn.net/TiffanyRabbit/article/details/72650606

Word2vec(2013)
Word2Vec是Google在2013年开源的一款词向量计算工具,它的特点是将所有的词向量化,这样词与词之间就可以定量的去度量他们之间的关系,挖掘词之间的联系
https://blog.csdn.net/asialee_bird/article/details/100124565

GLOVE(2014)
现有词向量模型中,第一种是全局的词-文本矩阵分解(LSA),该方法能有效收集每一个词的统计信息,但他们却不能捕捉到词的上下文信息(语义的表达能力不够);第二种就是基于局部窗口信息(Word2Vec),这种方法虽然能在词的语义上有更丰富的表达,但是他们却不能很好的捕捉词的全局统计信息。
GloVe词向量模型融合了全局矩阵分解方法(Matrix Factorization)和局部文本框捕捉方法(word2vec),是一种用于获得单词矢量表示的无监督学习算法。
https://blog.csdn.net/asialee_bird/article/details/100124565

DOC2VEC(2014)
Word2Vec表示的词向量不仅考虑了词之间的语义信息,还压缩了维度。但是,有时候当我们需要得到Sentence/Document的向量表示,虽然可以直接将Sentence/Document中所有词的向量取均值作为Sentence/Document的向量表示,但是这样会忽略单词之间的排列顺序对句子或文本信息的影响。
Doc2vec是在Word2vec的基础上做出的改进,它不仅考虑了词和词之间的语义,也考虑了词序。
https://blog.csdn.net/asialee_bird/article/details/100124565

Fastext(约2016)
Fasttext可以实现高效学习单词表示和句子分类;Fasttext是一个快速文本分类算法,与基于神经网络的分类算法相比有两大优点。
Fasttext在保持高精度的情况下加快了训练速度和测试速度
Fasttext不需要预训练好的词向量,Fasttext会自己训练词向量
https://blog.csdn.net/asialee_bird/article/details/100124565

ELMO(2018):
作者认为好的词表征模型应该同时兼顾两个问题:一是词语用法在语义和语法上的复杂特点;二是随着语言环境的改变,这些用法也应该随之改变。作者提出了deep contextualized word representation 方法来解决以上两个问题。
这种算法的特点是:每一个词语的表征都是整个输入语句的函数。具体做法就是先在大语料上以language model为目标训练出bidirectional LSTM模型,然后利用LSTM产生词语的表征。ELMo故而得名(Embeddings from Language Models)。为了应用在下游的NLP任务中,一般先利用下游任务的语料库(注意这里忽略掉label)进行language model的微调,这种微调相当于一种domain transfer; 然后才利用label的信息进行supervised learning。
ELMo表征是“深”的,就是说它们是biLM的所有层的内部表征的函数。这样做的好处是能够产生丰富的词语表征。高层的LSTM的状态可以捕捉词语意义中和语境相关的那方面的特征(比如可以用来做语义的消歧),而低层的LSTM可以找到语法方面的特征(比如可以做词性标注)。如果把它们结合在一起,在下游的NLP任务中会体现优势。
https://cloud.tencent.com/developer/article/1458629

Bert(2018)
BERT的全称为Bidirectional Encoder Representation from Transformers,是一个预训练的语言表征模型。它强调了不再像以往一样采用传统的单向语言模型或者把两个单向语言模型进行浅层拼接的方法进行预训练,而是采用新的masked language model(MLM),以致能生成深度的双向语言表征。
https://blog.csdn.net/hufei_neo/article/details/99434690

Flair(2018)
Flair库中包含了许多强大的功能,以下是最突出的一些方面:
· 它包括了最通用和最先进的单词嵌入方式,如GloVe,BERT,ELMo,字符嵌入等。凭借Flair API技术,使用起来非常容易。
· Flair的界面允许我们组合不同的单词嵌入并嵌入文档,显著优化了结果。
· 'Flair 嵌入’是Flair库提供的签名嵌入。它由上下文字符串嵌入提供支持
https://zhuanlan.zhihu.com/p/52747663

Ulmfit(2018)
Universal Language Model Fine-Tuning,用于实现像CV(计算机视觉)领域的迁移学习,并可以用于任意NLP任务
https://humboldt-wi.github.io/blog/research/information_systems_1819/group4_ulmfit/

ALBERT(2019)
ALBERT利用了参数共享、矩阵分解等技术大大减少了模型参数,用SOP(Sentence Order Prediction) Loss取代NSP(Next Sentence Prediction) Loss提升了下游任务的表现。但是ALBERT的层数并未减少,因此推理时间(Inference Time)还是没有得到改进。不过参数减少的确使得训练变快,同时ALBERT可以扩展到比BERT更大的模型(ALBERT-xxlarge),因此能得到更好的表现
https://blog.csdn.net/renyuanfang/article/details/104249767
https://github.com/brightmart/albert_zh

GPT-2(2020)
GPT2的创新点在于验证了无监督的语言建模能够学习到有监督任务所需的特征
https://github.com/huggingface/transformers/issues/1458
https://github.com/nshepperd/gpt-2

你可能感兴趣的:(深度学习/自然语言处理,自然语言处理,机器学习,算法)