常见的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
總結
以上是生活随笔為你收集整理的常见的nlp 自然语言处理模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分享CFA考试必须杜绝的违规行为!
- 下一篇: 空间变换网络STN