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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

背景区域为负样本什么意思_词向量-skipgram与负采样

發布時間:2023/12/3 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 背景区域为负样本什么意思_词向量-skipgram与负采样 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大綱:

  • 1. onehot vs 分布式表示
  • 2. 分布式表示的全局泛化能力
  • 3. how to learn word2vec - intuition
  • 4. SkipGram
  • 5. SkipGram Negative Sampling
  • 6. 評估詞向量
  • 7. CBOW與SkipGram對比

1. onehot vs 分布式表示

Onehot表示:

V = (apple, going, I, home, machine ,learing)

  • apple = (1,0,0,0,0,0)
  • machine = (0,0,0,0,1,0)
  • learning = (0,0,0,0,0,1)
  • I go home = (0,1,1,1,0,0)

onehot缺點:

  • 高維稀疏
  • 無法計算單詞之間的相似度,因每一個詞映射到高維空間中都是互相正交的,詞與詞之間沒有任何關聯關系,這顯然與實際情況不符合,因為實際中詞與詞之間有近義、反義等多種關系
  • 分布式表示

    V = (apple, going, I, home, machine ,learing)

    • apple = (0.1, 0.3, 0.5, 0.1)
    • machine = (0.2, 0.3, 0.1, 0.6)
    • learning= (0.1, 0.2, 0.6, 0.1)
    • I going home = (0.5, 1.1, 0.5, 0.2)

    分布式表示優點:

  • 低維稠密
  • 可以計算單詞之間的相似度,Word2vec雖然學習不到反義這種高層次語義信息,但它巧妙的運用了一種思想:“具有相同上下文的詞語包含相似的語義”,使得語義相近的詞在映射到歐式空間后中具有較高的余弦相似度。怎么把“具有相同上下文的詞語包含相似的語義”這種思想融入模型是很關鍵的一步,在模型中,兩個詞是否出現在一起是通過判斷這兩個詞在上下文中是否出現在一個窗口。
  • 陳運文:漫談Word2vec之skip-gram模型?zhuanlan.zhihu.com

    3. Capacity,分布式表示可以用100維的向量表示所有的單詞, 而獨熱編碼只能表示100個單詞

    2. 分布式表示的全局泛化能力

    在機器學習中,我們要尋求的是在全局范圍內泛化能力很強的模型。

    Local generalization(局部泛化能力):

    舉個例子,model1,2,3分別表示用原材料做了1,2,3三道菜,第一道菜做了比其它兩道菜的次數多,可以說model1的能力由于其它兩道菜,模型1的泛化能力比較強。

    Global generalization(全局泛化能力):

    我們先做半成品出來,然后用這些半成品做成菜,我們在做每道菜的時候不斷地在調整半成品的參數,這樣就可以提高全局的泛化能力。這些半成品可以看作是parameter sharing。

    3. how to learn word2vec - intuition

    給定一個句子

    當數據量很大時,挨在一起的單詞語義相似度比不挨在一起的單詞的語義相似度要高,

    詞向量:

    • 上下文無關(靜態詞向量):SkipGram CBOW Glove
    • 上下文有關(動態詞向量):Bert ELMO

    • CBOW:利用上下文詞預測中心詞
    • SkipGram:利用中心詞預測上下文詞
    • NNLM:利用前面的(n-1)個詞預測第n個詞
    • Bert:隨機選擇一些詞MASK掉,再用上下文詞預測被MASK的詞是什么

    4. SkipGram

    Skip-Gram模型的核心是:在文本中,距離越近的單詞相似度會越高。

    根據中心詞去預測上下文詞

    SkipGram 核心思路:

    語料庫為 We are working on NLP Project, it is interesting

    當窗口大小k等于2時 working為中心詞的時候

    目標函數為:

    因此skipgram的目標函數為:

    是中心詞, 是上下文詞

    舉例:

    語料庫:

    doc1: 今天 天氣 很好

    doc2: 今天 上 NLP 課程

    k=1


    接下來看

    是什么。

    embedding matrix

    ,使用了一個 函數

    是上下文, 是中心詞,等號右邊分子表示上下文和中心詞的相似度, 我們希望它越大越好。

    舉例:

    語料庫 {今天, 天氣, 好, NLP, 上課}


    現在的skipgram的目標函數為:

    現在出現了

    ,而且 線性于詞庫的大小,即需要遍歷整個詞匯表,復雜度很高,現在沒有辦法進行下去了。

    現在解決這種方法有兩種辦法:

    • hierarchical softmax(層次softmax)
    • Negative Sampling(負采樣)

    5. SkipGram Negative Sampling

    對于中心詞

    我們希望窗口內的 越大越好,窗口外的 越小越好。

    表示 出現在同一窗口內的概率,即是 的上下文詞的概率,中心詞和上下文詞對 來自語料庫。

    表示 不出現在同一窗口內的概率,即不是 的上下文詞的概率,中心詞和上下文詞對 不是來自語料庫。

    如果

    出現在同一窗口內,我們希望 越大越好

    如果

    不出現在同一窗口內,我們希望 越大越好

    其中

    其中

    讓人想起了邏輯回歸


    舉例:

    語料庫:Today's weather is great

    vocab=[Today's ,weather,is, great]

    窗口k=1

    正樣本

    ={(Today's ,weather),(weather,Today's ),(weather,is),(is,weather),(is,great),(great,is)}

    負樣本

    = {(Today's ,is),(Today's ,great)(weather,great),(is,Today's ),(great,weather),(great,Today's)}

    對于正樣本 我們想最大化P(D=1,正樣本);對于負樣本 我們想最大化P(D=0,負樣本);


    現在目標函數為:

    在實際使用時,因為正樣本的數量會遠遠少于負樣本的數量(有很多負樣本根本不會出現在文本中),所以我們引入Nagetive Sampling,從正樣本對應的負樣本中隨機采樣來減少負樣本的數量(不考慮所有的負樣本,而是對負樣本進行采樣)。

    現在目標函數為:


    舉例:

    s="I like NLP,it is interesting,but it is hard"

    vocab=[I, like ,NLP, it,is,interesting,but ,hard] 詞典長度=8

    以NLP為中心詞,K=1

    • 正樣本:(NLP,like) 負樣本:(NLP,I) (NLP,but)
    • 正樣本:(NLP,it) 負樣本:(NLP,hard) (NLP,I)

    以it為中心詞,k=1

    • 正樣本:(it,is) 負樣本:(it,interesting) (it,hard)
    • 正樣本:(it,NLP) 負樣本:(it,hard) (it,I

    對參數進行求解

    進行求導

    進行求導

    進行求導

    偽代碼如下:

    Skip-Gram 的缺點

    沒有考慮到上下文;

    窗口長度有限,無法考慮全局;

    無法有效學習低頻詞和未登錄詞OOV(out of vocabulary)

    多義詞無法區別。

    上下文的問題可以用Elmo和Bert解決;

    低頻次和OOV可以用subword embedding

    6. 評估詞向量:

  • TSNE 可視化詞向量,對訓練得到的詞向量降維到二維空間進行觀察
  • similarity:已有一個訓練好的詞向量和人工標記的單詞相似度表(football和basketball相似度=0.91),基于訓練好的詞向量進行相似度計算, 和之間的相似度是不是接近于0.91。
  • 類比(analogy):woman:man == boy:girl (如已知woman:man的相似性,給定boy來尋找girl)(woman-man =boy-?)

  • 7. CBOW與SkipGram對比:

    在cbow方法中,是用上下文詞預測中心詞,從而利用中心詞的預測結果情況,使用梯度下降方法,不斷的去調整上下文詞的向量。當訓練完成之后,每個詞都會作為中心詞,把上下文詞的詞向量進行了調整,這樣也就獲得了整個文本里面所有詞的詞向量。

    可以看到,cbow預測行為的次數跟整個文本的詞數幾乎是相等的,復雜度大概是O(V);

    而skip-gram是用中心詞來預測上下文的詞。在skip-gram中,會利用上下文詞的預測結果情況,使用GradientDecent來不斷的調整中心詞的詞向量,最終所有的文本遍歷完畢之后,也就得到了文本所有詞的詞向量。

    可以看出,skip-gram進行預測的次數是要多于cbow的:因為每個詞在作為中心詞時,都要使用上下文詞進行預測一次。這樣相當于比cbow的方法多進行了K次(假設K為窗口大小),因此時間的復雜度為O(KV),訓練時間要比cbow要長。

    但是在skip-gram當中,每個詞都要收到周圍的詞的影響,每個詞在作為中心詞的時候,都要進行K次的預測、調整。因此, 當數據量較少,或者詞為生僻詞出現次數較少時, 這種多次的調整會使得詞向量相對的更加準確。

    在skip-gram里面,每個詞在作為中心詞的時候,實際上是 1個學生 VS K個老師,K個老師(上下文詞)都會對學生(中心詞)進行“專業”的訓練,這樣學生(中心詞)的“能力”(向量結果)相對就會扎實(準確)一些,但是這樣肯定會使用更長的時間;

    cbow是 1個老師 VS K個學生,K個學生(上下文詞)都會從老師(中心詞)那里學習知識,但是老師(中心詞)是一視同仁的,教給大家的一樣的知識。至于你學到了多少,還要看下一輪(假如還在窗口內),或者以后的某一輪,你還有機會加入老師的課堂當中(再次出現作為上下文詞),跟著大家一起學習,然后進步一點。因此相對skip-gram,你的業務能力肯定沒有人家強,但是對于整個訓練營(訓練過程)來說,這樣肯定效率高,速度更快。

    卡門:cbow 與 skip-gram的比較?zhuanlan.zhihu.com

    因此:


    第一次編輯(2020)


    參考:

    Dong:詞向量技術的學習?zhuanlan.zhihu.com陳運文:漫談Word2vec之skip-gram模型?zhuanlan.zhihu.com深度學習之Skip-Gram和CBOW原理_hongwei的博客-CSDN博客_cbow 和 skip-gram,以及兩種方式的損失函數構造?blog.csdn.net深度學習之Skip-Gram和CBOW原理_hongwei的博客-CSDN博客_cbow 和 skip-gram,以及兩種方式的損失函數構造?blog.csdn.net

    總結

    以上是生活随笔為你收集整理的背景区域为负样本什么意思_词向量-skipgram与负采样的全部內容,希望文章能夠幫你解決所遇到的問題。

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