1.n-gram
自己理解:
- n代表窗口長度,n-gram的思想就是先滑窗,然後統計頻次,然後計算條件概率,你可以取前面n個的條件概率,不一定要取全部的,最後得到的是整個句子的一個概率,那這個概率可以代表句子的合理性。
詳情見:
https://zhuanlan.zhihu.com/p/32829048
如何利用n-gram作爲額外的特徵呢?
例如:
我 愛 北京 天安門
這樣詞就有各種組合了:
它的一到三gram爲:
[我,愛,北京,天安門,我愛,我北京,我天安門,…,我愛北京,我愛天安門,…]就是不同的組合,然後每一個詞對應onehot特徵裏面的1維。
那麼原來的我愛北京天安門的特徵就是根據這段語句生成的一到三gram的組合。
https://zhuanlan.zhihu.com/p/29555001
2 NNLM(Neural Network Language Model)
NNLM模型的構造輸入是前n個字的onehot特徵,輸出是這段文字的條件概率,也就是通過學習這個條件概率來學習embedding。
中間有激活函數,用的激活函數是雙曲正切
其實是一個開創性的創舉,然後word2vec改了一下,讓他更容易訓練,訓練更快了,去掉了激活函數,直接預測下一個詞,感覺改得好簡單啊。
3 word2vec
- 數據結構和算法——Huffman樹和Huffman編碼:https://blog.csdn.net/google19890102/article/details/54848262
3.1 分層softmax
https://www.cnblogs.com/guoyaohua/p/9240336.html
3.2 負採樣
https://zhuanlan.zhihu.com/p/39684349
- 高頻詞抽樣
- 負採樣
4.Glove詳解
看了之後一臉懵逼,實際情況是這樣,因爲word2vec是利用上下文特定長度窗口內的文本去訓練一個詞向量,這樣每次看到的都是局部的信息,如果和全部詞的信息利用起來呢?
通俗易懂理解——Glove算法原理:
https://zhuanlan.zhihu.com/p/42073620
GloVe詳解
http://www.fanyeong.com/2018/02/19/glove-in-detail/
nlp中的詞向量對比:word2vec/glove/fastText/elmo/GPT/bert
https://zhuanlan.zhihu.com/p/56382372
其他參考鏈接:
https://www.cnblogs.com/guoyaohua/p/9240336.html
https://zhuanlan.zhihu.com/p/53425736
https://zhuanlan.zhihu.com/p/61635013
https://blog.csdn.net/bitcarmanlee/article/details/82291968