學習筆記---詞向量與詞嵌入


詞---->向量:   叫做【 詞向量化】, 文本向量化(vectorize)是指將文本轉換為數值張量的過程
 
多種實現方法
  1. 將文本分割為單詞,並將每個單詞轉換為一個向量。
  2. 將文本分割為字符,並將每個字符轉換為一個向量。
  3. 提取單詞或字符的 n-gram(n元),並將每個 n-gram 轉換為一個向量。n-gram 是多個連續單詞或字符的集合(n-gram 之間可重疊)。
將文本分解而成的單元(單詞、字符或n-gram)叫作標記(token),將文本分解成標記的過程叫作分詞(tokenization)
所有文本向量化過程都是應用某種分詞方案,然后將數值向量與生成的標記相關聯。這些向量組合成序列張量,被輸入到深度神經網絡中(見圖6-1)。將向量與標記相關聯的方法有很多種。本節將介紹兩種主要方法:對標記做one-hot 編碼(one-hot
encoding)與標記嵌入[token embedding,通常只用於單詞,叫作詞嵌入(word embedding)]。
 
詞向量化有兩種方式: 
   1. one-hot編碼  (缺點是:詞越多維度越大, 詞與詞之間沒有相關性,無法理解語義)
   2. word embedding: 詞嵌入。 優點是降低維度(將vector每一個元素由整形改為浮點型,變為整個實數范圍的表示;將原來稀疏的巨大維度壓縮嵌入到一個更小維度的空間)
 
 
詞嵌入模型
   1. CBOW模型 (Continuous Bag-of-Words Model): 上下文來預測當前詞
   2. Skip-gram模型(Continuous Skip-gram Model):當前詞預測上下文
 
兩種模型優化方法
   1. Negative Sample : 負采樣
   2. Hierarchical Softmax:層次化softmax. 把 N 分類問題變成 log(N)次二分類。 用Huffman樹計算概率值,而不是傳統的softmax.
 
word2vec: 是谷歌提出的一種詞嵌入的具體方法,采用了兩種模型(CBOW與skip-gram模型)與兩種方法(負采樣與層次softmax方法)的組合,比較常見的組合為 skip-gram+負采樣方法。
 
 
詞嵌入的訓練方法
1)無監督或弱監督的預訓練 
優點:不需要大量的人工標記樣本就可以得到質量還不錯的embedding向量 
缺點:准確率有待提高 
解決辦法:得到預訓練的embedding向量后,用少量人工標注的樣本再去優化整個模型 
典型代表:word2vec和auto-encoder 
(這里解釋一下AutoEncoder,AutoEncoder也可以用於訓練詞向量,先將one hot映射成一個hidden state,再映射回原來的維度,令輸入等於輸出,取中間的hidden vector作為詞向量,在不損耗原表達能力的前提下壓縮向量維度,得到一個壓縮的向量表達形式。) 
 
2)端對端(end to end)的有監督訓練。
優點:學習到的embedding向量也往往更加准確
缺點:模型在結構上往往更加復雜
應用:通過一個embedding層和若干個卷積層連接而成的深度神經網絡以實現對句子的情感分類,可以學習到語義更豐富的詞向量表達。
 
兩者比較:word2vec不關心后續的應用場景,其學習到的是就是根據共現信息得到的單詞的表達,用n-gram信息來監督,在不同的子task間都會有一定效果。而end2end訓練的embedding其和具體子task的學習目標緊密相關,直接遷移到另一個子task的能力非常弱。
 
 
常用的詞嵌入分為
dense(稠密)和sparse(稀疏)兩種形式
常見的sparse就比如 co-occurence 或者one-hot的形式;對sparse embedding進行一些降維運算比如SVD、PCA就可以得到dense。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM