回覆列表
-
1 # 科範小子
-
2 # 老五NLP
預訓練的詞向量是word embedding從大規模非結構化文字中學習得到的,學到了文字中的語義資訊,也就是說在詞向量空間中,語義想盡的詞,向量距離也比較近。隨機初始化的詞向量不具備這個特點。
預訓練的詞向量是word embedding從大規模非結構化文字中學習得到的,學到了文字中的語義資訊,也就是說在詞向量空間中,語義想盡的詞,向量距離也比較近。隨機初始化的詞向量不具備這個特點。
詞向量的意義在於為特徵提供“基於上下文的語義感知”,也就是常說的語義感知。詞向量有個假設,表達相似的內容表達形式也相似。語言也有一個特性,表達相似的句子的構成和成分也相似。舉個例子來說,“小明在吃香蕉”,“小紅在吃蘋果”。兩個句子表達的含義很相似。在假設表達形式也相似的前提下,“小明”和“小紅”應該是相似的,“蘋果”和“香蕉”也是相似的。事實也確實是這樣。
由此可知,詞向量中包含了句法和語義的資訊。預訓練詞向量意味著提前計算出詞在資料中的語義資訊。這有兩個好處兩個壞處。
好處1是,語言都是相通的,可以給模型一個base line,最差效果也不會太差。再有差別的方言基本的用詞、語序的變化不大,因為我們都是一個老祖宗的後代。粵語等國內小語種不算,已經不算是一種語言了。好處2是,預訓練的詞向量往往語料很大,訓練出的模型覆蓋面更廣,能大大提高以預訓練詞向量為基礎的模型的泛化能力。
壞處1是,基本每種機器學習任務都是有目標函式的,而且都是有偏好的、基於業務需求的目標函式。這意味著模型更看重目標問題的解決能力而不是泛化能力。這跟預訓練詞向量的優勢有些背道而馳。預訓練詞向量雖然可以保證基本的base line,但在真實的應用場景裡,這種base line依然達不到解決問題的程度,有和沒有沒有太大差別。壞處2是雖然語言都是相同的,但畢竟還是有所不同。預訓練詞向量會預設這種不同的存在,導致的結果就是,模型始終維持在“中不溜”的狀態,不上不下。
隨機詞向量的優勢是,只要資料量足夠,可以保證好處1,解決壞處2。資料量足夠大的時候,隨機性會被隱藏在詞順序下的語義資訊而抵消。而隨機詞向量用到的詞和資料都是任務中的資料,這些資料本身就是目標的資料,對目標的求解就更有梯度價值。
綜上而論,在資料量足夠大的時候,比如能達到百萬級別,隨機詞向量的效果未必比預訓練詞向量差多少,甚至可能更好。但對訓練模型而言,資料比模型更難獲得。在資料量比較少的情況下,預訓練詞向量相當於大量的先驗知識,是小樣本訓練的最佳選擇。