下面對文字表示進行乙個歸納,也就是對於一篇文字可以如何用數學語言表示呢?
最基礎的文字表示模型是詞袋模型。將每篇文章看成一袋子詞,並忽略每個詞出現的順序。具體地說,就是將整段文字以詞為單位切分開,然後每篇文章可以表示成乙個長向量,向量中的每一維代表乙個單詞,而該維對應的權重則反映了這個詞在原文章中的重要程度。常用tf-idf來計算權重。
tf(term frequency):詞頻
idf(inverse document frequency):逆文件頻率
將tf和idf相乘就會得到tf-idf的演算法:
tf(t)=(該詞語在文件出現的次數)/(文件中詞語的總數)
idf(t)= log_e(文件總數/出現該詞語的文件總數)
直觀的解釋是,如果乙個單詞在非常多的文章裡面都出現,那麼它可能是乙個比較通用的詞彙,對於區分某篇文章特殊語義的貢獻較小,因此對權重做一定懲罰。
將文章進行單詞級別的劃分有時候並不是一種好的做法,比如英文中的natural language processing(自然語言處理)一詞,如果將natural,language,processing這3個詞拆分開來,所表達的含義與三個詞連續出現時大相徑庭。
通常,可以將連續出現的n個詞(n≤n)組成的片語(ngram)也作為乙個單獨的特徵放到向量表示中去,構成n-gram模型。另外,同乙個詞可能有多種詞性變化,卻具有相似的含義。在實際應用中,一般會對單詞進行詞幹抽取(word stemming)處理,即將不同詞性的單詞統一成為同一詞幹的形式。
1)其本質都可以看作是語言模型;
2)詞向量只不過nnlm乙個產物,word2vec雖然其本質也是語言模型,但是其專注於詞向量本身,因此做了許多優化來提高計算效率:
word2vec是無監督學習,同樣由於不需要人工標註;glove通常被認為是無監督學習,但實際上glove還是有label的,即共現次數
word2vec損失函式實質上是帶權重的交叉熵,權重固定;glove的損失函式是最小平方損失函式,權重可以做對映變換。
總體來看,glove可以被看作是更換了目標函式和權重函式的全域性word2vec。
不經過優化的cbow和skip-gram中 ,在每個樣本中每個詞的訓練過程都要遍歷整個詞彙表,也就是都需要經過softmax歸一化,計算誤差向量和梯度以更新兩個詞向量矩陣(這兩個詞向量矩陣實際上就是最終的詞向量,可認為初始化不一樣),當語料庫規模變大、詞彙表增長時,訓練變得不切實際。為了解決這個問題,word2vec支援兩種優化方法:hierarchical softmax和negative sampling。此部分僅做關鍵介紹,數學推導請仔細閱讀《word2vec 中的數學原理詳解》。
hierarchical softmax 使用一顆二叉樹表示詞彙表中的單詞,每個單詞都作為二叉樹的葉子節點。對於乙個大小為v的詞彙表,其對應的二叉樹包含v-1非葉子節點。假如每個非葉子節點向左轉標記為1,向右轉標記為0,那麼每個單詞都具有唯一的從根節點到達該葉子節點的由{0 1}組成的代號(實際上為哈夫曼編碼,為哈夫曼樹,是帶權路徑長度最短的樹,哈夫曼樹保證了詞頻高的單詞的路徑短,詞頻相對低的單詞的路徑長,這種編碼方式很大程度減少了計算量)。
cbow中的目標函式是使條件概率
skip-gram中的目標函式是使條件概率
negative sampling是一種不同於hierarchical softmax的優化策略,相比於hierarchical softmax,negative sampling的想法更直接——為每個訓練例項都提供負例。負取樣演算法實際上就是乙個帶權取樣過程,負例的選擇機制是和單詞詞頻聯絡起來的。
負取樣這個點引入word2vec非常巧妙,兩個作用,1.加速了模型計算,2.保證了模型訓練的效果,乙個是模型每次只需要更新取樣的詞的權重,不用更新所有的權重,那樣會很慢,第二,中心詞其實只跟它周圍的詞有關係,位置離著很遠的詞沒有關係,也沒必要同時訓練更新,作者這點非常聰明。
(1)特徵提取器:elmo採用lstm進行提取,gpt和bert則採用transformer進行提取。很多任務表明transformer特徵提取能力強於lstm,elmo採用1層靜態向量+2層lstm,多層提取能力有限,而gpt和bert中的transformer可採用多層,平行計算能力強。
(2)單/雙向語言模型:
reference
nlp中的詞向量對比:
基礎知識點
1 inline block布局 2 table布局 3 justify的末行不對齊 4 兩個圖示之間有空格 換行 5 背景中的的 路徑的 全部斜槓都為 不是 命令列下的這種 doctype html html head meta charset utf 8 title xx title head ...
機器學習知識點
1.knn 不適合用來對特徵分布進行分析。2.強化學習中的mdp模型 環境狀態的集合 動作的集合 在狀態之間轉換的規則 規定轉換後 即時獎勵 的規則 描述主體能夠觀察到什麼的規則。3.otsu推到 4.繪製曲線 plt.plot hist.history loss plt.plot hist.his...
機器學習知識點
2.感知機 3 k近鄰法 4.樸素貝葉斯 5.決策樹 6.邏輯回歸與最大熵模型 7.支援向量機 8.整合學習 9.em演算法 10.隱馬爾科夫模型與條件隨機場 11.聚類方法 1.1 監督學習關於資料的基本假設是什麼?1.2 模型的假設空間是什麼?1.3 統計學習三要素 1.4 損失函式的定義,有哪...