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

詞---->向量:   叫作【 詞向量化】, 文本向量化(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。
相關文章
相關標籤/搜索