Pytorch 實作系列 — BiLSTM

mz bai
Dec 16, 2020

--

雙向 LSTM(Bidirectional LSTM)是由Schuster et al.(1997, 國際先進電信研究院ATR)在 Bidirectional Recurrent Neural Networks 提出,其概念類似於人類並不只從前向後地了解序列資料,也能從後向前兩個方向取得表徵,因此藉由接合兩層方向一個往前,一個往後的LSTM模型達到前述的效果。

對LSTM不熟的可先參考

任務

詞性註記(POS tagging)屬於語言學的任務,標記文字所屬詞性,常見的延伸任務是NER(Named Entity Recognition), word disambiguation, knowledge graph, autocorrection。

資料集

CoNLL 2000 chunking,POS語法標記資料集,內容來自華爾街日報。

網路

藉由從兩個方向抽取一段序列的資訊,避免RNN家族對最遠時間步數據遺忘程度較高,導致看到尾巴忘記開頭的情形。

BiLstm architecture

訓練

如同多分類任務,使用 Cross Entropy loss 計算每個 token 對應的 class。

評估

測試集平均各類別準確度可達0.50,準確度較高的是介係詞、名詞、限定詞、連接詞、代名詞、標點符號,主要的錯誤判斷是將括號(())跟外來語(FW)當成專有名詞(NNP)、最高級形容詞(JJS)跟助詞(RP)當成名詞(NN)。

代碼連結

--

--

mz bai

Present data engineer, former data analyst, Kaggle player, loves data modeling.