日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CS224n笔记3 高级词向量表示

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CS224n笔记3 高级词向量表示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文轉自:http://www.hankcs.com/nlp/cs224n-advanced-word-vector-representations.html

這節課從傳統的基于計數的全局方法出發,過渡到結合兩者優勢的GloVe,并介紹了詞向量的調參與評測方法。

復習:word2vec的主要思路

  • 遍歷整個語料庫中的每個詞

  • 預測每個詞的上下文:

  • 然后在每個窗口中計算梯度做SGD

SGD與詞向量

  但每個窗口最多只有2m + 1個單詞,所以?θJt(θ)會非常稀疏:

  實際上有正確答案需要去對比的只有窗口中的詞語。所以每次更新只更新W矩陣中的少數列,或者為每個詞語建立到詞向量的哈希映射:

近似:負采樣

  還有一個問題亟待解決,詞表V的量級非常大,以至于下式的分母很難計算:

  于是,練習1中要求用negative sampling實現skip-gram。這是一種采樣子集簡化運算的方法。

  具體做法是,對每個正例(中央詞語及上下文中的一個詞語)采樣幾個負例(中央詞語和其他隨機詞語),訓練binary logistic regression(也就是二分類器)。

negative sampling和skip-gram

  目標函數:

  這里t是某個窗口,k是采樣個數,P(w)是一個unigram分布,詳見:http://www.hankcs.com/nlp/word2vec.html#h3-12?

  σ是sigmoid函數:

  根據上次課講的,內積可以代表相關性。那么這個目標函數就是要最大化中央詞與上下文的相關概率,最小化與其他詞語的概率。

  word2vec通過把相似的詞語放到同一個地方附近來增大目標函數:

?

?

其他方法

  word2vec將窗口視作訓練單位,每個窗口或者幾個窗口都要進行一次參數更新。要知道,很多詞串出現的頻次是很高的。能不能遍歷一遍語料,迅速得到結果呢?

  早在word2vec之前,就已經出現了很多得到詞向量的方法,這些方法是基于統計共現矩陣的方法。如果在窗口級別上統計詞性和語義共現,可以得到相似的詞。如果在文檔級別上統計,則會得到相似的文檔(潛在語義分析LSA)。

基于窗口的共現矩陣

比如窗口半徑為1,在如下句子上統計共現矩陣:

  • I like deep learning.?

  • I like NLP.

  • I enjoy flying.

會得到:

樸素共現向量的問題

根據這個矩陣,的確可以得到簡單的共現向量。但是它存在非常多的局限性:

  • 當出現新詞的時候,以前的舊向量連維度都得改變

  • 高緯度(詞表大小)

  • 高稀疏性

解決辦法:低維向量

  用25到1000的低維稠密向量來儲存重要信息。如何降維呢?

  SVD吧:

  r維降到d維,取奇異值最大的兩列作為二維坐標可視化:

改進

  • 限制高頻詞的頻次,或者干脆停用詞

  • 根據與中央詞的距離衰減詞頻權重

  • 用皮爾遜相關系數代替詞頻

效果

  方法雖然簡單,但效果也還不錯:

SVD的問題

  • 不方便處理新詞或新文檔

  • 與其他DL模型訓練套路不同

Count based vs direct prediction

  這些基于計數的方法在中小規模語料訓練很快,有效地利用了統計信息。但用途受限于捕捉詞語相似度,也無法拓展到大規模語料。

  而NNLM, HLBL, RNN, Skip-gram/CBOW這類進行預測的模型必須遍歷所有的窗口訓練,也無法有效利用單詞的全局統計信息。但它們顯著地提高了上級NLP任務,其捕捉的不僅限于詞語相似度。

綜合兩者優勢:GloVe

  這種模型的目標函數是:          

?

  優點是訓練快,可以拓展到大規模語料,也適用于小規模語料和小向量。

  明眼人會發現這里面有兩個向量uv,它們都捕捉了共現信息,怎么處理呢?試驗證明,最佳方案是簡單地加起來:

  相對于word2vec只關注窗口內的共現,GloVe這個命名也說明這是全局的(我覺得word2vec在全部語料上取窗口,也不是那么地local,特別是負采樣)。

評測方法

  有兩種方法:Intrinsic(內部) vs extrinsic(外部)

  Intrinsic:專門設計單獨的試驗,由人工標注詞語或句子相似度,與模型結果對比。好處是是計算速度快,但不知道對實際應用有無幫助。有人花了幾年時間提高了在某個數據集上的分數,當將其詞向量用于真實任務時并沒有多少提高效果,想想真悲哀。

  Extrinsic:通過對外部實際應用的效果提升來體現。耗時較長,不能排除是否是新的詞向量與舊系統的某種契合度產生。需要至少兩個subsystems同時證明。這類評測中,往往會用pre-train的向量在外部任務的語料上retrain。

Intrinsic word vector evaluation

  也就是詞向量類推,或說“A對于B來講就相當于C對于哪個詞?”。這可以通過余弦夾角得到:

  我曾經通過這些方法驗證了民間很多流行的word2vec實現準確率比原版低幾十個百分點:http://www.hankcs.com/nlp/word2vec.html#h2-15?

  這種方法可視化出來,會發現這些類推的向量都是近似平行的:

  下面這張圖說明word2vec還可以做語法上的類比:

其他有趣的類比:

  這在數學上是沒有證明的。

結果對比

在不同大小的語料上,訓練不同維度的詞向量,在語義和語法數據集上的結果如下:

  GloVe的效果顯著地更好。另外,高緯度并不一定好。而數據量越多越好。

調參

  窗口是否對稱(還是只考慮前面的單詞),向量維度,窗口大小:

  大約300維,窗口大小8的對稱窗口效果挺好的,考慮到成本。

  對GloVe來講,迭代次數越多越小,效果很穩定:

  維基百科語料上得到的效果比新聞語料要好:

另一個數據集

  還有直接人工標注詞語相似度的:

www.cs.technion.ac.il/~gabr/resources/data/wordsim353/?

  對某個單詞相似度排序后,得到最相關的詞語。于是可以量化評測了。

Extrinsic word vector evaluation

  做NER實驗:

  GloVe效果依然更好,但從數據上來看只好那么一點點。

  視頻中還談了談一些適合word vector的任務,比如單詞分類。有些不太適合的任務,比如情感分析。課件中則多了一張談消歧的,中心思想是通過對上下文的聚類分門別類地重新訓練。

  相同顏色的是同一個單詞的不同義項。

  TA也講過這個問題。

轉載于:https://www.cnblogs.com/koocn/p/7699051.html

總結

以上是生活随笔為你收集整理的CS224n笔记3 高级词向量表示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。