word2vec參數調整 及lda調參


 一、word2vec調參
 
./word2vec -train resultbig.txt -output vectors.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -binary 1  

  

一般來說,比較喜歡用cbow , 因為模型中 cbow有向量相加的運算。##保留意見
 
-cbow 0表示不使用cbow模型,默認為Skip-Gram模型
-size 表示詞向量維數:經驗是不超過1000,超過1000基本都沒有效果,我感覺是可以取  sqrt(dict_size)/2 的樣子,不過最好多試幾個
-window 上下文窗口,是訓練詞向量的時候,取上下文的大小,感覺這個一般都是5比較好
 
-sample 表示采樣參數,是一個經驗忽視掉頻率過高的詞的參數,一般也用默認的就行。
-sampe指的是采樣的閾值,如果一個詞語在訓練樣本中出現的頻率越大,那么就越會被采樣。
 
-negative 表示負采樣參數,每有一個正樣本,選擇幾個負樣本的參數,一般也是用默認的。
-binary為1指的是結果二進制存儲,為0以文本形式進行存儲。

上面這兩個參數試過很多個,感覺就是默認的比較好用。

-hs 做不做層次的softmax,是1的時候效果比較好,但是訓練會慢一點
-min-count 控制詞典大小的參數,如果只想要高頻詞的話就設置高一點。
 

    架構:skip-gram(慢、對罕見字有利)vs CBOW(快)

·         訓練算法:分層softmax(對罕見字有利)vs 負采樣(對常見詞和低緯向量有利)

·         欠采樣頻繁詞:可以提高結果的准確性和速度(適用范圍1e-3到1e-5)

·         文本(window)大小:skip-gram通常在10附近,CBOW通常在5附近

 

 

二、LDA調參

1.文章

http://jmlr.org/proceedings/papers/v32/tang14.pdf

2.思路

1)lda模型(latent dirichlet distribution)調優,比如曾經有研究表明,直接把短文檔(比如一個微博,一個查詢)作為輸入,不如先做預處理把這些短文章聚合成一些長文章(比如把同一作者的微博合一塊)。

2)當我們選擇的主題數目k和真實主題數目k’ 一致,或者主題-詞分布區分度夠高(歐式距離衡量下)的情況下,假如我們還滿足文檔長度的限制,log d 《= n 的, 那么, 隨着n 和 d 增長,后驗分布和真實分布之間的誤差正比於 logn / n +logd / d。

3)當我們選擇的主題數目k 大於真實主題數目k‘時,如果我們仍然滿足 d》= log n, 那么誤差正比於 (log n / n + logd / d) ^ (1/(2k –1))

4)

    1. 文檔長度不能太短,至少是文檔數目的log,所以對於太短的文檔,我們必須把他們聚合

    2. 為了滿足log d 《= n, 還有一個方法是降低d,但很可惜,最終誤差大小正比於d,所以文檔數量最好也多一點。

    3. 當我們選擇的topic 數目k 大大超出於真實topic 數目 k‘ 時,可以從(5)的結果看到,也會減慢收斂速度,所以應該從比較小的topic數目開始,慢慢增加。

    4. 最好當然是我們能知道真正的主題數目k,這樣可以避開上面的試探過程,但現實很難,另外一個可能的條件是topic之間差異大,比如每個文檔可能的topic少,或者每個topic有一些特殊的詞,比如一個topic是自然語言處理,另一個topic是圖像處理,兩個各有自己獨特的詞,如像素,語法樹等等,這樣我們就可以不用太擔心試探過程。

    5. 當上面兩種情況發生時,可以考慮設置小一點的alpha 和beta, 以減少迭代。

 


免責聲明!

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



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