NLP基础知识
1、什么是NLP?
Natural Language Progress
AI 重要分支之一
分類:
NLP涉及知識
詞處理:分詞,詞性標注,實體識別,詞義消岐
語句處理:句法分析(分析語法),語義分析(理解句子意思),機器翻譯,語音合成(文本轉為語音)
篇章處理:自動文摘
語言模型
1.統計語言模型
N-Gram統計模型(第n個只與前n-1個詞有關)
馬爾科夫模型(最成功的模型)
馬爾科夫鏈
隱馬爾科夫模型(評估問題、解碼問題、學習問題)(5個元素)
2. RNN
3. LSTM
4. CNN
5. Seq2Seq
輸入文本的序列長度與輸出序列的長度不等,屬于many2many
seq2seq應用:圖像描述、代碼補全、聊天機器人
不足:1)對序列的長度有要求,有論文證明:當序列長度在10-20的長度時模型效果最好,序列再長模型效果就開始下滑了。2)壓縮損失信息,在編碼時,序列的最后一個詞(token)對編碼的影響較大(編碼受最后一個詞影響較大),這不合適。
Seq2Seq改進
1.Attention
attention關注序列中的一些內容
attention應用:機器翻譯、語音識別、圖像描述
分類:Soft Attention
Hard Attention (Show Attend and Tell中提出的,圖像中應用到的)
Global Attention
Local Attention
靜態 Attention ( 閱讀理解中使用的)
Self Attention (Transformer中使用的,self
attention 也被稱為intra-attention,在沒有任何額外信息的情況下,我們仍然可以通過允許句子使用self attention機制來處理自己,從句子中提取關注信息,self attention機制在很多任務重都有十分出色的表現,如:閱讀理解,文本繼承、自動文本摘要)
Key-value Attention
2.Beam Search
Conda是什么?
Word2Vec
CBOW(連續詞袋,Continus )
Skip-Gram
Word2Vec改進----Glove
TF-IDF
見文章:TF-IDF算法講解
貝葉斯分類
樸素貝葉斯分類原理在這里:樸素貝葉斯分類
Softmax
分布式假設
所謂分布式假設,用一句話可以表達:相同上下文語境的詞有相似含義。
seq2seq 中的 beam search 算法過程是怎樣的? **
1. 知乎用戶的回答 - 知乎
2.CS224N(1.31)Translation, Seq2Seq, Attention(需要使用外網才能看到圖片)
NMT相比于SMT的優點:
1.性能更好,表現在:翻譯更流程,RNN擅長語言模型;能更好的利用上下文關系;能利用短語相似性
2.模型更簡單,只需要一個神經網絡,端到端訓練即可,簡單方便
3.不需要很多的人工干預和特征工程,對于不同的語言,網絡結構保持一樣,只需要換一下詞向量
NMT的不足:
1.難以解釋,表現在:難以調試,難以解釋出錯原因
2.難以控制,比如難以加入一些人工的規則,難以控制NMT不輸出什么,由此可能會腦一些笑話甚至導致安全問題
BLEU的缺點:
雖然BLEU為MT提供了一套自動化的評價方法,但BLEU也不是完美的。因為它基于n-gram,假設機器翻譯出來的是另一種優美的表達方法,但人給出的正確翻譯結果是常規翻譯,那么他們之間的n-gram的overlap可能不高,導致正確翻譯的打分反而得分低。參考
提升機器翻譯性能的一大利器——注意力機制Attention:
1.樸素的seq2seq模型的“信息”瓶頸:樸素的seq2seq模型,我們用Encoder RNN的最后一個神經元的隱狀態作為Decoder RNN的初始隱狀態,也就是說Encoder的最后一個隱狀態向量需要承載源句子的所有信息,成為整個模型的“信息”瓶頸。
2.Attention機制就是為了解決這個“信息”瓶頸而設計的。宏觀上來說,Attention把Decoder RNN的每個隱層和Encoder RNN的每個隱層直接連起來了,還是“減少中間商賺差價”的思路,由于有這個捷徑,Encoder RNN的最后一個隱狀態不再是“信息”瓶頸,信息還可以通過Attention的很多“直連”線路進行傳輸。
Attention優點:
1.提高NMT性能,讓Decoder更多的關注于時刻需要翻譯的詞。
2.解決了NMT的“信息”瓶頸問題。
3.有助于緩解梯度消失問題,因為Decoder的每一時間步都和所有Encoder的隱狀態相連了,相當于某種捷徑,減少了“中間商賺差價”。
4.有助于增加NMT的可解釋性,解釋為什么時刻翻譯輸出了某個詞,可以通過查看Attentioin distribution來解釋。免費得到了一個soft alignment。
總結
- 上一篇: MySQL---第07章_单行函数
- 下一篇: show attend and tell