2018 CCF-GAIR 參會筆記 - NLP 專場
來自專欄徐阿衡-自然語言處理17 人贊了文章
這篇居然忘了發了……
孫茂松 - 漫談基於深度學習的中文計算
強調的一個概念是 中文自然語言處理需要加入專家知識。主要介紹的工作是 詞表學習:
- 嵌入字信息的詞表學習實踐中還是經常會用到的技巧;詞向量本身對高頻詞是沒問題的,比如說取相近詞 K 近鄰,豬肉/雞肉語義是相似的,但對低頻詞/新詞像馬肉/龍肉,語義相關性就不高了;
因此在詞向量出現歧義時可以加入字向量,相當於平滑作用,在這個刻度上沒有這種信息,就進行回退;
提到了一些其他 trick - Position-based character embeddings 區分字在詞中出現的位置,也就是用 char+pos 來表示字,idea 是通常一個字可能出現在詞的開始、中間、尾部(用 , , 表示),卻分別代表不同的含義,如車道、人行道和道法、道經中的道就不是一個含義;
- Cluster-based character embeddings,對每個字的所有 occurrence 進行聚類,然後對每個類建一個 embedding參考論文:Joint Learning of Character and Word Embeddings
- 嵌入中文資源,基於知網的詞表學習作用大概是消歧,利用 hownet 解決中文詞語的多義性,類比 wordnet 用來加強英語的多義性學習一樣;當然 HowNet 和 WordNet 的構造還是有很大不同的。HowNet 對十幾萬漢語常用詞進行了描述,描述用的三要素分別是 sememe,sense 和 word,比如 apple 包含了兩個 sense,sense1 是水果,sense2 是電腦,對每個 sense,sememe 可以描述其對應的屬性,這些屬性會通過相對複雜的層級結構來對目標 sense 進行說明。
在基於 hownet 的詞表學習里,sememe 是最小的語義單元,數量有限,大概兩千個。每個單詞可能對應多個 sense,將每個 sense 對應的 sememe 看成是一個集合,相似的 sense 會包含相同的 sememe。訓練模型基於經典的 skip-gram,考慮上下文的同時,也考慮了詞的 sememe 信息以及 sememe 與 sense 之間的關係。提供了三種融合方法,SSA/SAC/SAT,SSA 對每個 target word 取它對應所有 sememe embeddings 的平均值,SAC 對 context words 進行消歧來更好的學習目標單詞,也就是 context 用 sememe embedding 來表示 ,target word embedding 可以看做是為 context word embedding 選擇最合適的 sense 和 sememe 的一個 attention 機制,而 SAT 中 context 用原來的 embedding 表示,但 target word 用 sememe embedding 表示,把 context words 看做是 target word 不同 sense 上的 attention。
基於 HowNet 的詞表學習里,sememe, sense, word 之間能夠互相打通。在對低頻詞和新詞問題上,由於多了詞與詞之間共享的 sememe embeddings,低頻詞能夠被解碼成 sememe 並通過其他詞得到良好的訓練,相比於傳統 WRL 模型能有更好的表現。
參考論文:Improved Word Representation Learning with Sememes- 最後還介紹了清華出品的古詩系統,提到了要通過與情感結合、與知識圖譜結合等方法來增強作詩系統。
趙軍 - 開放域事件抽取
主要講的還是關係抽取中的遠程監督(Distant Supervision)問題。遠程監督基本假設是「兩個實體如果在知識庫中存在某種關係,則包含該兩個實體的非結構化句子均能表示出這種關係」,這樣的假設太強,帶來的問題是雜訊很多,一個解決方案是引入多示例學習,假定至少有一個句子表示了這種關係而不是每個句子都表示這種關係,把最有可能的句子標註出來,以提高性能。介紹的 paper 是 Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks,EMNLP 2015 挺有名的一篇文章,用分段卷積神經網路 PCNN 來自動學習特徵,以及加入 multi-instance learning 來解決遠程監督引起的雜訊問題。主要 idea 是在池化層通過兩個實體的位置把句子分成三個部分,分別池化,再把三個部分的向量結合起來,做整個句子的向量化表示。
後面還講了開放域更複雜的事件抽取,像是缺少觸發詞,可以通過從一堆要素中定位核心要素,用核心要素到句子當中找到觸發詞,將觸發詞和前面的要素關聯到一起,再回標,然後在文本當中找到更多數據。
秦兵 - 機器智能中的情感計算
分享了文本情感計算的六個維度:
- 情感分類面向評價對象的情感分類(aspect-based sentiment analysis)比較典型的還是利用上下文信息,採用注意力機制,使某個評價對象和詞語進行更好的搭配,然後分類
- 隱式情感不含情感詞的情感表達(即隱式情感)在情感表達中約佔 20%-30%,類型有事實型、比喻型、反問型等,事實型情感占多數,比如住酒店時說「桌子上有一層灰」,實際表達的就是不滿。要判斷這種情感需要依賴上下文,如 「桌子上有一層灰「 後面一句是 」我很不高興」,就可以把 「桌子上有一層灰」 定義為貶義。找不到上下文可以考慮跨文檔,在其他文檔中找與之類似的句子再判定情感;同時,這類情感的計算通常也需要藉助外部知識如隱式情感語料庫等,尤其是修辭型的隱式情感,比如隱喻,可以藉助隱喻語料庫
- 情感溯因類似問答系統,有情感詞、有原文,可以通過記憶網路判別哪句話是原因
- 個性化
在情感計算中加入用戶特徵/用戶畫像信息,包括自然屬性、社會屬性、興趣屬性、心理屬性等,融入到已有的神經網路模型,來做情感分類
- 跨領域利用領域無關詞和領域相關詞的鏈接關係,分別進行聚類;通過神經網路的隱層參數提取與情感相關、但與領域無關的詞的特徵來分類
- 情感生成根據指定的情感類別生成情感表達,應用如產品評論生成、聊天系統、對情感表達進行情感極性變換、潤色等
還有一個有意思的應用是中考、高考時經常看到的詩詞鑒賞。
鍾黎 - 從 0 到1 打造下一代智能對話引擎
這個和之前的項目/工作經驗高度相關,感覺更像是梳理了一遍之前的工作~~
業界通用智能問答平台要解決的問答類型:- 任務驅動型(Task Oriented Dialogue)用戶希望去完成一些任務,比如查天氣、查匯率等,包括詞槽填充、多輪會話、對話管理等
- 信息獲取型(Information & Answers)目前業界落地最多的一種問答系統類型,包括搜索、單輪對話,根據數據類型劃分有下面幾類
- 結構化知識,比如 CommunityQA(eg., FAQ)和 KBQA
- 半結構化/非結構化知識,比如說 TableQA(表格),PassageQA(文檔)
- 多模態、跨媒體問答,比如說 VQA,存在視頻、音頻問答的語料庫
基礎會話,包括閑聊、情感聯繫、用戶信息等,使對話系統更富於人性化
重點講的是第二類,具體講了兩個部分,一是快速召回,二是深度匹配。
無監督-快速檢索
提高快速召回(無監督的快速檢索)的三種方案,基於辭彙計數(Lexical term counting)、基於語言模型、基於向量化。
很多是信息檢索的思路,在 信息檢索專題類 的博客都有探討過。
有監督-深度匹配
深度匹配的兩類常用方法,Siamese 網路 和 基於交互矩陣的網路。
Siamese 網路的基本思路:兩個輸入用同一個編碼器進行編碼,然後做相似度的計算,特點是共享網路結構和參數;
基於交互矩陣的網路:除了最後的相關性度量,中間過程里兩個輸入的某些詞也會有交互。
問句較短時/短文檔時兩類網路一般能打成平手,但對長文檔而言,基於交互矩陣的網路就會有更好的表現。
再後面還講了如何在非結構化文檔里尋找信息和答案,具體應用是機器閱讀理解(MRC),系列博客也有提到。
最後總結了下業界問答系統建設的一些心得:
- 要重視 Baseline。
- 儘早建立起整個流程的 pipeline。
- 沒有免費午餐定理,不存在萬能演算法。
- 領域相關的數據準備、數據清洗非常重要。
博客: www.shuang0420.com
公眾號: xu_a_heng推薦閱讀:
TAG:深度學習DeepLearning | 自然語言處理 | 聊天機器人 |