1. 程式人生 > 實用技巧 >人工智慧-自然語言處理(1)

人工智慧-自然語言處理(1)

人工智慧-自然語言處理(1)

本章將介紹一些不同的方法,這些方法將我們正在使用的單詞轉換為可操縱和進行計算的向量。

one-hot

第一種方法是將單詞表示為向量的最簡單,最古老的方法:

一種簡單的理解方法是您擁有10,000個不同單詞的資料集。您可以將其編碼為10,000維向量,其中每個維代表10,000個單詞中的一個。我們將所有值設定為0,除了代表所選單詞的尺寸(設定為1)。

下面的小例子,如果我們有4個單詞{‘car’,‘what’,‘be’,‘at’},我們可以通過以下方式將它們表示為4d向量:

[1,0,0,0] =‘汽車’

[0,1,0,0] =‘什麼’

[0,0,1,0] =‘be’

[0,0,0,1] =‘at’

將單詞表示為向量的一種熱門方法並不是一個好主意,因為它確實使我們瞭解了不同單詞之間的關係,這是我們經常需要的。例如,我們不能說“汽車”與“在”有多相似。

結果,它實際上僅作為一種儲存原始資料的方式有用。

word2vec

我們希望有一種更好的方式來建立向量,以便在兩個不同向量之間進行點積運算時,結果將告訴我們兩個單詞的相似程度。
為此,我們將研究單詞的上下文。當我們說一個單詞的上下文時,它僅表示在其旁邊找到的單詞。

我們將提出一種將每個單詞表示為向量的方法,以便於正確預測上下文中出現的其他單詞。請記住,上下文只是指在其旁邊出現的單詞。

我們將通過建立一個模型來做到這一點,該模型將學習將單詞轉換為向量的最佳方法。這將通過最小化損失函式來完成。在這種情況下,損失函式將告訴我們對於給定的輸入單詞,我們可以如何很好地預測上下文單詞。

我們將如何使用word2vec來執行此操作。在word2vec中,有幾種演算法可以完成我們上面描述的操作。

一種叫做跳過文法,另一種叫做連續詞袋。我們將主要看一下skip-grams演算法。

Skip-grams(直接預測模型)

在這裡插入圖片描述

在上面的示例中,我們有一箇中心詞(在本例中為“ banking”),並嘗試在某個視窗大小內預測在中心詞視窗中出現的詞(在本例中為:“ turning”,“ into” ',‘危機’,‘作為’)。
skip-grams將選擇單詞向量,以便在給定某個中心單詞的情況下,我們最大化預測正確上下文單詞的可能性。

在這裡插入圖片描述

Skip-grams圖模型概述:
在這裡插入圖片描述

如何在上圖中找到紅色,中心詞和輸出詞表示形式矩陣?
答:我們的優良工具梯度下降+反向傳播!
使用這些word2vec嵌入的結果是,我們能夠將相似的單詞組合在一起,並且如果我們對它們進行了降維處理,這些組合甚至可以轉移到2D空間。

總結:

遍歷語料庫中的每個單詞(正文)
預測每個單詞的周圍單詞
這將一次捕獲一個單詞的同時出現