當前位置:
首頁 > 知識 > 自然語言處理的通用深度學習方法

自然語言處理的通用深度學習方法

6月5號,由阿里巴巴iDST邀請到了江輝老師,在北京阿里巴巴綠地中心阿里同學們做了一場A New General Deep Learning Approach for Natural Language Processing的講座。

自然語言處理的通用深度學習方法


分享概要

如今在NLP領域各種CNN,RNN及其變種網路層出不窮,但是它們在複雜度,模型訓練等方面都有不少問題。在這樣的現狀下,能否有一種更簡單的機制代替這樣的複雜網路,同時又取得與其相當甚至更好的效果,這成為了很多人的訴求。

江輝老師直接切入了NLP的痛點之一——變長編碼(variable-length encoding)。即NLP需要處理的往往不是定長(fixed-size)的數據,而是變長的短語,句子,段落甚至篇章。也是因為變長編碼的原因,才使得NLP領域大量引入CNN和RNN模型。

自然語言處理的通用深度學習方法

技術核心

於是江輝老師及其團隊,提出了FOFE-net架構,即FOFE(Fixed-size Ordinally-Forgetting Encoding) + DNN,來解決變長編碼問題,同時降低模型複雜度,提高訓練速度甚至整體效果

自然語言處理的通用深度學習方法

FOFE是一種簡單精妙的rule-base編碼方式。上圖中,左側1-of-K是傳統的one-hot編碼,右側是FOFE編碼的計算過程的例子,下方是計算公式,公式中,z是整個編碼,t表達不同的時刻,e是當前時刻的詞的one-hot向量。運算當前t時刻的FOFE等於上個時刻t-1的FOFE編碼乘上一個打折係數(遺忘係數)alpha,然後加上t時刻詞的one-hot,通俗的說就是,在one-hot的基礎上利用了數值的大小表明了詞的位置信息

FOFE是簡單的,同時是精妙的,江輝老師也給出了FOFE的理論證明

自然語言處理的通用深度學習方法

解決了變長編碼到定長編碼的問題,那麼後續只需要使用DNN(多層)就能完成很多任務,此次分享中,江輝老師展示了NLP的多個任務上使用FOFE-net和其他方法的結果對比

自然語言處理的通用深度學習方法

(紅色部分為重點介紹的任務)

實驗結果

由於文章篇幅有限,本文僅詳細講述Word Embedding任務,其他任務僅簡單描述方法和結果

自然語言處理的通用深度學習方法

用了FOFE編碼後Word Embedding變得非常簡單,甚至並不需要深度學習相關的做法就能達到很好的性能。如圖上所示,詞表的長度為K,對於每個詞w,我們使用該詞左右兩側的若干詞做FOFE編碼,如果該詞出現多次,那麼left FOFE和right FOFE則是所有出現詞w的上下文FOFE編碼的平均(該做法只是策略之一),得到詞到詞context FOFE編碼的矩陣後(K * 2K,2K是因為左右兩個FOFE長度),使用SVD等sparse to dense的手段就能得到Word Embedding

自然語言處理的通用深度學習方法

這種簡單的方式得到的效果輕鬆超越了word2vec,GloVe等方法

除此外江輝老師還介紹了NLP中不少任務上FOFE-net的做法和表現(下面只列舉部分):

1. 語言模型。使用FOFE方式編碼詞w歷史的詞,然後經過DNN預測下一個詞的概率分布。在Google-1B的數據上,表現出驚人效果(超越絕大多數方法,並與谷歌的最好演算法相當),並且訓練時間上大大降低(google使用32GPU,FOFE使用1GPU)。

2. 命名實體識別。假定某個詞序列S=wn~wn+m為實體,使用FOFE編碼S左右兩側的context,作為特徵進入DNN,輸出判斷該詞序列S是否是實體,是何種實體。在CoNLL03任務上,得到不錯的效果。

3. 信息抽取。在2015 KBP-EDL,2016 KBP-EDL上表現不俗。

還有不少任務,如指代消解,文本分類,實體鏈接,句法分析等都在分享中有分析和對比,由於篇幅原因不能一一列舉


聽眾收穫

江輝老師的分享非常精彩,雖然只有一個小時左右,乾貨多多,讓人意猶未盡。

QA環節也有熱烈的討論:

1. 問:FOFE編碼在處理長句子時,是否會因為alpha不斷打折而導致浮點精度問題丟失了一些詞的信息?答:可以採用雙向的FOFE編碼減緩浮點精度問題

2. 問:FOFE編碼是否能再進入RNN,CNN然後效果是否會進一步提升?答:這個工作有學生做過,訓練速度下降了,但是效果並沒有好

個人思考

如有不對,歡迎評論區拍磚

1. 問:如何在使用FOFE編碼的同時融入更多其他信息,如詞的標籤,詞性等,因為FOFE編碼之後已經是整個sentence粒度,而詞的標籤還停留在word粒度?答:使用相同的編碼方式編碼額外的信息,如FOFE詞性vector,FOFE詞標籤vector等;

2. 問: 為什麼FOFE-net會得到更優的性能?答:猜測。FOFE極大簡化了網路複雜度,使得網路被訓練得非常好,換句話說CNN和RNN這樣得複雜網路在現有的BP演算法下,很有可能沒有被訓得很好。這樣的簡化網路結構換取效果提升的思路貌似是個不錯的方向

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲棲社區 的精彩文章:

看阿里雲窄帶高清如何支援優酷 讓《楚喬傳》更清晰
好消息!阿里雲函數計算支持 Python 運行環境
2017年6月刊——13篇人工智慧乾貨好文
NB-IOT物聯網平台是如何工作的
免費下載!業界首部安卓熱修復寶典出爐,阿里技術大牛聯袂推薦

TAG:雲棲社區 |

您可能感興趣

蒯通用什麼方法使自己無罪釋放?
善良,是世界通用的語言
拍攝自然風光的通用法則
自然語言處理是計算機實現通用人工智慧的最難挑戰嗎?
鄧侃解讀:醫療關鍵數據時間序列敏感度分析的通用方法
通因通用——通竅法治療尿頻的故事
漢語為什麼不是國際通用的語言?
為何中文能成聯合國通用語言,日語卻遭拒?理由讓日本無法反駁
甲亢自擬通用方,輕中重度都可以取效
聯合國世界通用六種語言,日本申請卻被拒絕,理由讓人無法反駁!
蘋果手機怎麼設置鈴聲通用方法
強化學習應用實例:讓機械手靈活多變的高效通用法
業界 | 現代「羅塞塔石碑」:微軟提出深度學習框架的通用語言
聯合國6種世界通用語言,日語申請卻被拒絕,理由讓日本不得不服
全國方言眾多,在古代用什麼通用語言交流,也是普通話嗎
現代「羅塞塔石碑」:微軟提出深度學習框架的通用語言
現代羅塞塔石碑:微軟提出深度學習框架的通用語言
正一道常見法器的通用說明書
有沒有一種通用的學習方式?
業界 | 微軟提出新型通用神經機器翻譯方法,挑戰低資源語言翻譯問題