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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习(六) Word Embedding

發布時間:2024/1/1 pytorch 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习(六) Word Embedding 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Word Embedding

  • 前言
  • 一、One-hot編碼
    • 1.為什么使用one-hot編碼?
    • 2.什么是one-hot編碼?
    • 3.one-hot編碼的優缺點
  • 二、Word Embedding(詞嵌入)
    • 1.什么是Word Embedding?
    • 2.Word Embedding的優點:
    • 3.基于計數的Word Embedding
      • 1.基于計數的Word Embedding的優缺點
      • 2.Co-Occurence Vector(共現向量)
    • 4.基于預測的Word Embedding
      • 1.基于預測的Word Embedding的優缺點:
      • 2.CBOW(continues bag of words)
      • 3.Skip – Gram
      • 5.Glove(Global Vectors for Word Representation)
  • 總結


前言

前面我們已經了解了CNN卷積神經網絡,這一篇文章我們將了解Word Embedding等詞匯編碼


一、One-hot編碼

1.為什么使用one-hot編碼?

首先我們得知道傳統的編碼方式是怎么樣的。傳統的編碼是通過統計類型出現次數的多少來進行編碼的,也就是類別A出現的次數為m,類別B出現的次數為n,那么他們就分別編碼為m,n。這樣編碼有可能導致求加權平均值的時候衍生成為其他類別,會體現不同類別的大小關系,誤差較大。所以我們需要采用一種新的編碼方式:one-hot編碼(獨熱編碼)

2.什么是one-hot編碼?

使用N位狀態寄存器來對N個狀態進行編碼,每個狀態都有它獨立的寄存器位,并且在任意時候,其中只有一位有效。

3.one-hot編碼的優缺點

  • 優點:
  • 解決了分類器不好處理離散數據的問題。使用 one-hot 編碼,將離散特征的取值擴展到了歐式空間,離散特征的某個取值 就 對應歐式空間的某個點。將離散型特征使用 one-hot 編碼,確實會讓特征之間的距離計算更加合理
  • 在一定程度上也起到了 擴充特征 的作用。
    • 缺點:
  • 它是一個詞袋模型,不考慮詞與詞之間的順序。
  • 它假設詞與詞相互獨立,不能體現詞匯間的相似性
  • 每個單詞的one-hot編碼維度是整個詞匯表的大小,維度非常巨大,編碼稀疏,會使得計算代價變大。
  • 二、Word Embedding(詞嵌入)

    1.什么是Word Embedding?

    將word看作最小的一個單元,將文本空間中的某個word,通過一定的方法,映射或者說嵌入(embedding)到另一個數值向量空間。
    Word Embedding的輸入是原始文本中的一組不重疊的詞匯,將他們放到一個字典里面,例如:[“cat”, “eat”, “apple”],就可以作為一個輸入。
    Word Embedding的輸出就是每個word的向量表示,變成一個矩陣。

    2.Word Embedding的優點:

  • 對比one-hot高維稀疏向量,embedding維度低,連續向量,方便模型訓練;
  • 語意相似的詞在向量空間上也會比較相近
  • 一個向量可以編碼一詞多義(歧義需要另外處理);
  • 天然有聚類后的效果,,是一種無監督學習。
  • 罕見詞也可以學到不錯的表示。
  • 3.基于計數的Word Embedding

    1.基于計數的Word Embedding的優缺點

    • 優點:
  • 訓練非常迅速
  • 能夠有效的利用統計信息。
    • 缺點:
  • 主要用于獲取詞匯之間的相似性(其他任務表現差)
  • 給定大量數據集,重要性與權重不成比例。
  • 2.Co-Occurence Vector(共現向量)

    相似的單詞趨向于有相似的上下文(context),我們可以構建一套算法,來實現基于上下文的特征構建。
    當我們設置Context Window大小為2,范圍為前后兩個word,那么對于such這個詞,他的Context Window就是下面綠色部分。

    對于He is not lazy. He is intelligent. He is smart.
    以He這這個單詞舉例,他在詞料庫里面的所有Context Window里面與is為之共現的詞語的次數就是共現矩陣中is的次數
    這個語料庫來說,共現矩陣應該為:

    共現矩陣最大的優勢是這種表示方法保留了語義信息,例如,通過這種表示,就可以知道哪些詞語之間是相對較近的,哪些詞語之間是相對較遠的。

    4.基于預測的Word Embedding

    1.基于預測的Word Embedding的優缺點:

    • 優點:
  • 能夠對其他任務有普遍的提高
  • 能夠捕捉到含詞匯相似性外的復雜模式
    • 缺點:
  • 由于詞和向量是一對一的關系,所以多義詞的問題無法解決
  • Word2vec 是一種靜態的方式,雖然通用性強,但是無法針對特定任務做動態優化
  • 沒有充分利用所有的語料有存在浪費
  • 2.CBOW(continues bag of words)

    對于該語料而言,我們先對其做一個one-hot編碼,然后選取Context Window為2,那么模型中的就產生了一對input和target

  • 將產生的兩個四維的vector輸入到神經網絡里面,連接激活函數。激活函數在輸入層和隱藏層之間,每個input vector分別乘以一個VxN維度的矩陣,得到后的向量各個維度做平均,得到隱藏層的權重。隱藏層乘以一個NxV維度的矩陣,得到output layer的權重;
  • 由于隱藏層的維度設置為理想中壓縮后的詞向量維度。示例中假設我們想把原始的4維的原始one-hot編碼維度壓縮到2維,那么N=2;
  • 輸出層是一個softmax層,用于組合輸出概率。所謂的損失函數,就是這個output和target之間的的差(output的V維向量和input vector的one-hot編碼向量的差),該神經網絡的目的就是最小化這個loss;
  • 優化結束后,隱藏層的N維向量就可以作為Word-Embedding的結果。

  • 如此一來,便得到了既攜帶上下文信息,又經過壓縮的稠密詞向量。

    3.Skip – Gram

    這個方法可以看作是CBOW的翻轉版

    5.Glove(Global Vectors for Word Representation)

    Glove算法是一種基于全局詞頻統計的回歸算法。它不是基于神經網絡的,而是基于最小二乘原理的回歸方法。
    它結合了上面兩種算法的優點,可以有效的利用全局的統計信息。
    它的過程如下:

  • 根據語料庫構建一個共現矩陣X,提出了一個衰減函數用于計算權重,也就是說距離越遠的兩個單詞所占總計數的權重越小。
  • 構建詞向量(Word Vector)和共現矩陣(Co-ocurrence Matrix)之間的近似關系,論文的作者提出以下的公式可以近似地表達兩者之間的關系:
    wiTwj?+biT+bj?=log?(Xij)w_i^T\~{w_j}+b_i^T+\~{b_j}=\log(X_{ij})wiT?wj???+biT?+bj???=log(Xij?)
    wiTw_i^TwiT?wj?\~{w_j}wj???都是待求解的詞向量,biTb_i^TbiT?bj?\~{b_j}bj???都是偏置量
  • 構造LossFunction。這個loss function的基本形式就是最簡單的MSE,只不過在此基礎上加了一個權重函數,
    J=∑i,j=1Vf(Xij)(wiTwj?+biT+bj??log?(Xij))2J=\sum_{i,j=1}^Vf(X_{ij})(w_i^T\~{w_j}+b_i^T+\~{b_j}-\log(X_{ij}))^2J=i,j=1V?f(Xij?)(wiT?wj???+biT?+bj????log(Xij?))2
    • 這些單詞的權重要大于那些很少在一起出現的單詞,所以這個函數要是非遞減函數
    • 但我們也不希望這個權重過大(overweighted),當到達一定程度之后應該不再增加;
    • 如果兩個單詞沒有在一起出現,他們應該不參與到loss function的計算當中去,所以f(0)=0f(0)=0f(0)=0

    總結

    本文介紹了Word Embedding,希望大家能從中獲取到想要的東西,下面附上一張思維導圖幫助記憶。

    總結

    以上是生活随笔為你收集整理的深度学习(六) Word Embedding的全部內容,希望文章能夠幫你解決所遇到的問題。

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