CS224N第三、四講主要在講深度神經網路的基礎知識並以命名實體識別Named Entity Recognition(以下簡稱NER)來講DNN在NLP領域內的應用。
關於DNN方面的基礎知識由於之前在總結花書的時候已經總結過,這裡不再重複,可以參考
中的六、七、八章。
這裡著重總結DNN在NER問題上的應用。
NER主要是要找到文本中的名字並對其進行分類,如下例中
找到地點類的名詞France, Britain以及人名Fischler。
NER的應用場景較多,比如可以追蹤文本中特定的entity,問答系統中很多回答是named entity,通過named entity之間的關聯構建知識圖譜等等。
NER的難點是有的時候很難區分Named Entity的邊界,有的時候很難判斷一個詞是不是Named Entity,而且Named Entity依賴於上下文,同一個名詞可能在某些語境中是機構名,在其他語境中又是人名。
鑒於同一個詞在不同上下文可能是不同的Named Entity,一個思路是通過對該詞在某一窗口內附近的詞來對其進行分類(這裡的類別是人名,地點,機構名等等)。
例如對於museums in Paris are amazing, 我們希望探測到地點名Paris。假設窗口大小為2,並且通過詞向量方法如word2vec得到窗口內5個單詞的詞向量,則我們可以將這5個向量連在一起得到更大的向量,再對該向量進行classification。
對於具有多個class的分類問題,我們通常用softmax classifier來解決,假設用x來表示輸入的詞向量,y表示對應的class,總共有k個class,則x對應類別為y的概率為:
損失函數為交叉熵:
為了處理輸入的元素間的非線性關係,我們可以利用Neural Network,並且輸出層是計算每一個class的概率的softmax layer。
之後我們就可以利用隨機梯度下降演算法SGD來更新網路並利用反向傳播演算法來有效的計算梯度。
當然,這裡僅僅是用前饋神經網路來處理NER問題以此來介紹神經網路的基本概念,之後還會講到循環神經網路等更複雜的結構,也可應用在NER問題上。
參考資料
CS224N第三講講義http://web.stanford.edu/class/cs224n/slides/cs224n-2019-lecture03-neuralnets.pdf 第四講講義http://web.stanford.edu/class/cs224n/slides/cs224n-2019-lecture04-backprop.pdf及補充材料http://web.stanford.edu/class/cs224n/readings/cs224n-2019-notes03-neuralnets.pdf
CS224N Winter 2019第三講視頻https://youtu.be/8CWyBNX6eDo, 第四講視頻https://youtu.be/yLYHDSv-288.