采用推理的方法认知单词、CBOW模型
基于計數的方法,根據一個單詞周圍的單詞的出現頻數來表示該單詞。需要生成所有單詞的共現矩陣,再對這個矩陣進行 SVD,以獲得密集向量,如果語料庫處理的單詞數量非常大,將需要大量的計算資源和時間?;谟嫈档姆椒ㄊ褂谜麄€語料庫的統計數據(共現矩陣、PPMI),通過一次處理(SVD)獲得單詞的分布式表示。
基于推理的方法,使用神經網絡,在 mini-batch 數據上進行學習,神經網絡一次只需要看一部分學習數據(mini-batch),并反復更新權重。神經網絡的學習可以使用多臺機器、多 個 GPU 并行執行,從而加速整個學習過程。
如果需要向詞匯表添加新詞并更新單詞的分布式表示,基于計數的方法需要從頭開始計算,重新完成生成共現矩陣、進行 SVD 等一系列操作?;谕评淼姆椒?#xff08;word2vec)允許參數的增量學習??梢詫⒅皩W習到的權重作為下一次學習的初始值,在不損失之前學習到的經驗的情況下,高效地更新單詞的分布式表示。
推理:當給出周圍的單詞(上下文)時,預測“?”處會出現什么單詞。
基于推理的方法:輸入上下文,模型輸出各個單詞的出現概率。這個模型接收上下文信息作為輸入,并輸出(可能出現的)各個單詞的出現概率。作為模型學習的產物,也能得到單詞的分布式表示。如下圖所示。
分布式假設:基于推理的方法和基于計數的方法一樣,也基于分布式假設。分布式假設,“單詞含義由其周圍的單詞構成”。
one-hot 表示:神經網絡無法直接處理 you 或 say 這樣的單詞,要用神經網絡處理單詞,需要先將單詞轉化為固定長度的向量。在 one-hot 表示中,只有一個元素是 1,其他元素都 是 0;將單詞轉化為 one-hot 表示,就需要準備元素個數與詞匯個數相等的向量,并將單詞 ID 對應的元素設為 1,其他元素設為 0。
單詞的表示:單詞可以表示為文本、單詞 ID 和 one-hot 表示。如果語料庫中,一共有 7 個單詞(“you”“say”“goodbye”“and”“i”“hello”“.”),單詞表示如下圖所示。
將單詞轉化為固定長度的向量(one-hot 表示),神經網絡的輸入層的神經元個數就可以固定下來,比如,輸入層由 7 個神經元表示,分別對應于 7 個單詞。
全連接層變換:c 和 W 的矩陣乘積相當于“提取”權重的對應行向向量。
import numpy as np c = np.array([[1, 0, 0, 0, 0, 0, 0]]) # 輸入 W = np.random.randn(7, 3) # 權重 h = np.dot(c, W) # 中間節點 print(h) # [[-0.70012195 0.25204755 -0.79774592]]CBOW模型:它是根據上下文預測目標詞的神經網絡。模型的輸入是上下文。這個上下文用 [‘you’, ‘goodbye’] 這 樣的單詞列表表示??梢赞D換為 one-hot 表示,以便 CBOW 模型進行處理。大致結構如下。
輸入層:如果對上下文僅考慮兩個單詞,輸入層有兩個;如果對上下文考慮N個單詞,則輸入層會有N個。
中間層:中間層的神經元是各個輸入層經全連接層變換后得到的值的平均,經全連接層變換后,第 1 個輸入層轉化為h1,第 2 個輸入層轉化為h2,那么中間層的神經元是(1/2)*(h1+h2)。中間層的神經元數量比輸入層少,因為,中間層需要將預測單詞所需的信息壓縮保存,從而產生密集的向量表示。
輸出層:輸出層有 7 個神經元,這些神經元對應于各個單詞。輸出層的神經元是各個單詞的得分,它的值越大,說明對應單詞的出現概率就越高。對這些得分應用 Softmax 函數,就可以得到概率。
全連接層:從輸入層到中間層的變換由全連接層完成,全連接層的權重是一個 7 × 3 的矩陣,權重的各行對應各個單詞的分布式表示。
總結
以上是生活随笔為你收集整理的采用推理的方法认知单词、CBOW模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯入门练习1-4(python)
- 下一篇: maven多模块项目部署到服务器,Git