微軟研究院在IJCAI2016第一天的Tutorial上講述了自己將深度學習、深度神經網絡應用於語義理解上的一些經驗和收穫。作為小娜和小冰的開發者,微軟在自然預言語義理解上的造詣無疑是很高的。而早在一月就將其深度學習開發工具包CNTK開源的舉動也表明微軟確實希望促進人工智慧的發展。這次就讓我們通過Tutorial上演講PPT的概覽部分,看看微軟在他們最擅長的語義識別領域會分享給我們一些什麼樣的經驗。
我們將PPT的文字翻譯直接放在了幻燈片內,有興趣的讀者可以點開大圖查看,不過大家也可以直接觀看我們在每張圖後寫下的註解,一樣能幫你理解微軟的意思。
微軟首先介紹了深度神經網絡的簡要歷史。經過了上圖中所示技術爆發點,幻滅的低谷,生產平穩期,膨脹期望巔峰等幾個階段。終於迎來了新的高潮。
在2013年,深度學習成為了MIT評選的年度十大科技突破之一。
而對深度學習的學術研究也從2012年開始到2015年出現爆發式的增長。在NIPS 2015會議中集中爆發,典型的證據就是主會場內的相關研究參與人數有了巨大增長,相關話題的指導報告更是增加了100%還多。
2012年紐約時報的報導「科學家們在深度學習上看到了希望」被視為深度學習崛起的標誌之一。
DNN是一種完全連接的深度神經網絡,簡單來說,先訓練每個都含有一個隱含層的生產力模型,然後把它們組合成一個深度信任網絡,然後添加輸出並利用反向傳播來訓練DNN網絡。
上圖是微軟在各種領域對基於深度學習的語義識別的應用。
今天微軟要講的這個指南的焦點,並非集中在語音識別或者圖像識別上,而是語音文本的處理和理解,一共分為5部分
上圖是一個需求分類問題的舉例,比如輸入一個問題:丹佛市中心的壽司店,但這個店屬於餐館,酒店,夜店,航班那個領域的店或者館呢?這個是需要搜尋引擎更加細化分類的。
上圖給出了一個單神經元模型的原理,當輸入一個X值後,函數最終會將其通過logistic回歸進行分類,決定是否要給Y加上標籤,並與事先準備好的標籤核對。以此來完成學習的過程。
上圖是單個的神經元模型,把一個數值轉化為概率,然後把概率轉化為一個非線性激活函數,再進行logistic回歸。
在上圖中,微軟給出了訓練模型的思路,由於是只有一個神經元組成的神經網絡,因此方法比較簡單,要訓練的數據集是一組由二維數組組成的數對。
訓練參數的過程,就是不斷的更換w,使得損失函數最小。具體方式是使用隨機梯度下降,將所有訓練樣本更新直到函數收斂。
實際問題基本不可能用單個神經元的網絡就能解決。上圖是一個多層神經網絡的流程圖,實際上也和目前絕大多數的神經網絡結構類似。如果我們忽略下部的結構,只看輸入層、最上面的一層隱含層和輸出層,我們就會發現這正是一個單神經元神經網絡的架構示意。而包含了下面的其他隱含層之後,就是一個多層神經元的結構了,將原始數據(詞語向量)輸入隱藏層中,經過參數w的投射生成新的向量,這個過程就稱作特性生成。
可以看到,標準機器學習的過程同深度學習最大的區別,正在於特徵訓練的方式,傳統的特徵訓練需要開發者手動提取特徵,顯得比較累。而深度學習可以自動從訓練數據中學習到特徵。顯得靈活很多,不過代價就是函數優化和參數選擇等的工作量會更重。
為什麼要使用多個隱含層呢?毫無疑問的,適當增加隱藏層會讓算法的效果更好。對特徵的學習和轉換也更靈活。類似深度學習用於圖像識別時的像素→邊緣→紋理→主題→局部→物體整體的過程。深度學習用於文本分析的時候也遵循了一個從字母→單詞→詞組→從句→句子→整個故事的過程。訓練層數越多,對這些特徵的描述就越精確。最終提取出來的效果也會越好。
DNN有許多中不同的表現形式,它們分別有各自的應用場景和優勢。在此微軟將其分為了三大類和六小類:
分類任務——通過X將Y分類標註
主要應用:多層感知機,卷積神經網絡。
分級任務——通過計算X和Y的加權和進行分級。
主要應用:暹羅神經網絡、深度語義相似模型
文本生成任務:由X的值生成Y
主要應用:序列對序列網絡、記憶網絡
在上圖中,微軟開始講解一個具體的例子:深度語義相似模型(DSSM)。這種模型的處理方式是使用X和Y組成的文本流來計算語義相似度。方式是使用深度神經網絡先在潛在語義空間建立一個x和y的兩個特徵向量。然後計算特徵向量之間的餘弦相似程度。
上兩圖是一個具體的原理圖。表現了計算相似語義空間的方法,而最後一張圖給出了一個基於此方法的整個卷積DSSM網絡的示意圖和原理說明。
總結:
深度學習曾被認為不適合用來做語義理解。主要是因為詞語之間的相似程度與其含義的相似程度並無太大關係。詞表的出現一定程度上解決了這個問題。而現在,深度學習在語義理解上的障礙已經基本不存在了,微軟此次提供的思路也是一個很好的參考。相信應用上了深度學習的語義理解程序的表現將會有極大的提升。