CS224N第三、四講主要在講深度神經網路的基礎知識並以命名實體識別Named Entity Recognition(以下簡稱NER)來講DNN在NLP領域內的應用。

關於DNN方面的基礎知識由於之前在總結花書的時候已經總結過,這裡不再重複,可以參考

川陀學者:深度學習花書讀書筆記目錄?

zhuanlan.zhihu.com
圖標

中的六、七、八章。

這裡著重總結DNN在NER問題上的應用。

NER問題定義

NER主要是要找到文本中的名字並對其進行分類,如下例中

找到地點類的名詞France, Britain以及人名Fischler。

NER的應用場景較多,比如可以追蹤文本中特定的entity,問答系統中很多回答是named entity,通過named entity之間的關聯構建知識圖譜等等。

NER的難點是有的時候很難區分Named Entity的邊界,有的時候很難判斷一個詞是不是Named Entity,而且Named Entity依賴於上下文,同一個名詞可能在某些語境中是機構名,在其他語境中又是人名。

Window Classification

鑒於同一個詞在不同上下文可能是不同的Named Entity,一個思路是通過對該詞在某一窗口內附近的詞來對其進行分類(這裡的類別是人名,地點,機構名等等)。

例如對於museums in Paris are amazing, 我們希望探測到地點名Paris。假設窗口大小為2,並且通過詞向量方法如word2vec得到窗口內5個單詞的詞向量,則我們可以將這5個向量連在一起得到更大的向量,再對該向量進行classification。

對於具有多個class的分類問題,我們通常用softmax classifier來解決,假設用x來表示輸入的詞向量,y表示對應的class,總共有k個class,則x對應類別為y的概率為:

p(y|x) = frac{exp(W_ycdot x)}{sum_{c=1}^k exp(W_ccdot x)}

損失函數為交叉熵:

J(	heta) = frac{1}{N}sum_{i=1}^N -logleft(frac{exp(W_ycdot x)}{sum_{c=1}^k exp(W_ccdot x)} 
ight)

為了處理輸入的元素間的非線性關係,我們可以利用Neural Network,並且輸出層是計算每一個class的概率的softmax layer。

之後我們就可以利用隨機梯度下降演算法SGD來更新網路並利用反向傳播演算法來有效的計算梯度。

當然,這裡僅僅是用前饋神經網路來處理NER問題以此來介紹神經網路的基本概念,之後還會講到循環神經網路等更複雜的結構,也可應用在NER問題上。

參考資料

CS224N第三講講義web.stanford.edu/class/ 第四講講義web.stanford.edu/class/及補充材料web.stanford.edu/class/

CS224N Winter 2019第三講視頻youtu.be/8CWyBNX6eDo, 第四講視頻youtu.be/yLYHDSv-288.


推薦閱讀:
相关文章