首席說|NLP場景應用中的可解釋性

泰嶽語義工廠發表於2019-04-22
首席說|NLP場景應用中的可解釋性

01

什麼是NLP的可解釋性

  NLP的可解釋性,是NLP未來發展最重要的方向之一。

可解釋性有兩方面含義,一是NLP的輸出結果符合業務的預期,是確定的結果,而不是一堆人看不懂的概率值。二是NLP的輸出結果與業務知識之間有明確的因果關係,因為什麼樣的業務知識,所以得到這樣的結果。

  可解釋性,是指NLP系統輸出的結果,應該符合基本的語言學規律,符合領域知識的預期,可以用語言學的術語和業務領域的語言進行解釋,而不是讓演算法給出一堆雜亂無章的概率資料,讓使用者費盡洪荒之力從沙子裡找金子,並從資料中解析出其業務價值。

  可解釋性是存在於場景應用和NLP技術之間的最大的鴻溝。包括當前流行的深度學習演算法,在場景應用下遇到的最大的尷尬也是可解釋性差,即使業務人員看到一個明顯的錯誤,也很難調整模型以更正。經常能聽到這樣的對話:

首席說|NLP場景應用中的可解釋性

  可解釋性也是場景應用和實驗室環境之間的最大的區別。實驗室環境下,有標準答案可以參考,處理物件是靜態的,NLP技術的輸出結果只要和標準答案進行比對,算出來得分就行,無需解釋結果為什麼是這樣的。近幾年各大AI公司刷榜的閱讀理解評測(如史丹佛問答資料集SQuAD),其實都是實驗室環境下的探索。而場景應用下,沒有標準答案可以參考,處理物件是動態的,不斷有新資料出現,這時候實驗室得分已沒有任何意義,需要的是明確的因果判斷,對了能知道如何保持,錯了能知道如何改進。

  NLP場景應用中的可解釋性,可以直觀的表述為,業務人員可以看懂的、符合業務知識預期的NLP處理結果。

02

NLP可解釋性,從哪裡來?

1.必須基於語言特徵

當前對可解釋性的工作,主要集中在深度學習模型的視覺化上,希望開啟深度學習的黑盒子,理解、解釋計算的過程。我們認為,這可能沒有觸及到語言的本質,如果模型的輸入是一個不可解釋的巨大的向量的話,整個處理過程只是在做向量的各種變換,以求得與預訓練模型的最優匹配解,並沒有在語言方面有太多的增益。

  NLP的可解釋性,應該與我們的語言直覺相一致,從模型、演算法的輸入,到每個處理環節,再到最終的輸出,都可以用基本的語言特徵和語言結構來解釋。比如用詞向量計算詞語關聯,計算“高興”的關聯詞語時,給出“興奮”、“嗨起來”這樣的結果,是符合語言知識的,但如果給出“傷心”這樣的結果,即使概率值再高,也是不合理的、不可解釋的,因為“傷心”與“高興”是反義詞,雖然他們的上下文環境經常很類似。更進一步來說,“不傷心”這樣的搭配,“不”作為否定詞,在詞向量中如何表示,是否和“高興”有關聯,這是基本常識的對錯問題,而不僅僅是概率大小的解釋問題。

2.必須與領域知識有明確的因果關係

可解釋性和應用場景強相關。應用場景的知識,決定著NLP的需求邊界、任務型別、結果預期等內容,與場景知識之間有明確的因果關係,才是可解釋的。

  因果關係的簡單表示就是“因為A,所以B”,比如在快遞客服場景下,對這樣的一段文字“等了2個小時還沒有來取件”,因為其中有“等待時間長”(從“等了2個小時”這樣的文字中得到)和“沒有取件”這樣的概念,所以這段文字的投訴分類是“取件延誤”。與因果關係容易混淆的是相關性(或相似性),比如資料中發現,購買尿布的使用者更容易購買啤酒,這說明“啤酒與尿布”之間有相關性,但是“啤酒與尿布”之間沒有因果關係。目前常用的機器學習演算法(包括深度學習),輸出的都是相關性,對這些相關性所體現的領域知識進行解釋,是當前可解釋性的主流。但這種解釋面臨著“千人千面”的困境,在同樣的應用場景下,針對不同的訓練語料、採取不同的演算法,其給出的結果差異很大,一致性很難保證。

  NLP的可解釋性,最低的要求是,領域知識與輸出結果之間的因果關係是一致的、穩定的。比如在快遞客服場景中,針對“取件延誤”的投訴分類,不管採用什麼演算法,也不管文字表達的多樣性多麼複雜(如“取件的人怎麼還不來啊”、“2個小時都過了還沒有來取件”等),只要文字表達的意義一樣,都包含“等待時間長”“沒有取件”這樣的概念,都應該給出一致的結果(“取件延誤”)。

3.應該追求處理結果的可解釋性,而非NLP演算法過程的可解釋性

  當前的可解釋性,更多的是對演算法過程的去魅,希望通過揭示演算法過程中的邏輯性,來證明輸出結果的合理性。解釋的重點主要在於中間過程所產生的特徵的相關性、具體引數值對結果的影響等。這些工作對演算法的改進無疑有幫助,但對不懂演算法的業務人員來說,要從動輒上億的引數中,找到與具體業務知識的因果性或相關性,真的只能是“霧裡看花”了。

  應該將重點放到對輸出結果的可解釋性,承認演算法過程是個黑盒子,對輸出結果做好統籌規劃。通過對訓練語料的控制,儘可能的縮小每個模型的覆蓋範圍,把不確定性限制在每個模型內部。換句話說,不能追求對大模型的擬合過程和具體引數值的解釋,而應該將一個問題,拆分成多個小模型來表示,提高小模型與領域知識之間的因果關係。

03

泰嶽語義工廠,可解釋的NLP服務

NLP的可解釋性,目前還沒有成熟的方法可以實現,只能在具體的應用場景下,面對具體的輸入資料,因地制宜,選擇正確的策略來面對。實際應用場景中,經典的符號系統、形式化規則的可解釋性往往表現更好,而大多數人迷戀的深度學習,則因為可解釋性差而經常被詬病。

泰嶽語義工廠,在場景化的自然語言處理上,已經耕耘了8年時間,積累了豐富的場景化的技術和經驗,在NLP可解釋性,積累了豐富的實踐經驗,已經在16個行業的上百個典型客戶實現了落地應用。


1.語義與計算的結合,提高NLP技術的可解釋性

泰嶽語義工廠,將符號化語義表示與深度學習技術進行結合,形成了自主智慧財產權的智慧語義認知技術。智慧語義認知技術,能有效地識別多種語言結構,實現同一意思、不同結構的歸一化處理;同時對語言結構的遞迴巢狀處理,也表現優異。

  下文的例子,包含著4層語言結構的巢狀關係。

    例句:

        含有從燃料電池排出的氫廢氣的陽極廢氣向系統外排出的氣體流路貫穿了整個通道。

    第一層: 核心句

.        .....氣體流路貫穿了整個通道

    第二層: "氣體"的限定語也是一個句子

.        .....陽極廢氣向系統外排出的氣體[流路]

    第三層: "陽極廢氣"的限定語也是一個句子

        含有......氫廢氣的陽極廢氣

    第四層: "氫廢氣"的限定語也是一個句子

        從燃料電池排出的氫廢氣

  泰嶽語義工廠對這種具有複雜結構的句子,除了利用詞語組合、概率統計等表層特徵和方法,還加入了遠距離的語義約束計算,以及句子序列的切分和層級處理。目前我們已經可以識別出3層以上語言結構的遞迴巢狀。對複雜語言結構的有效處理,不僅可以提升NLP在歸一化、遞迴處理等方面的能力,而且可以把包含在複雜語言現象下的語言特徵,像剝洋蔥一樣,一層層開啟,這將大大增強NLP的可解釋性。

2.本體論的領域知識建模,提高因果關係的可解釋性

泰嶽語義工廠所使用的場景化NLP開發平臺——DINFO-OEC,提供一個領域知識建模的IDE整合環境,在本體論的指導下,支援兩種型別領域模型。一是支援場景化業務建模,可通過概念規則,來構建形式化的業務規則,二是通過資料標註,指定機器學習(包括深度學習)演算法,來訓練機器學習模型。

  建模工具的價值在於,將服務於業務人員的領域知識的表示,與服務於NLP演算法人員的演算法、語言資源等完全隔離,讓業務人員聚焦在業務知識的因果關係上,從而提高應用的可解釋性。業務人員只需要對業務知識進行分類,對業務規則中的因果關係進行形式化描述,即可完成建模。建模過程中,可以使用預定義概念資源來定義業務知識,一個預定義概念的引用,本質上是對底層的NLP演算法模組的呼叫,對其輸出結果的使用,建模人員不用考慮其背後複雜的NLP演算法,建模工具已經對其做了封裝。

  對下面的一段例子。業務人員只需要關注客服投訴分類,是應該分到“信用卡->額度->臨時提額”,還是“信用卡->額度不夠”,而不需要關心用到的NLP演算法,如命名實體識別、情緒識別等。

首席說|NLP場景應用中的可解釋性3.面向場景的應用開發框架,通過結果驅動過程,提高應用輸出的可解釋性

泰嶽語義工廠提供面向場景的應用開發框架,與NLP相關的所有工作,我們均已打包到框架中。與演算法相關的,如基礎的語義資源、文字資料的標註、演算法的引數調優、深度學習預訓練模型等;與應用場景相關的,如業務模型的構建、演算法的遷移、效果的評估等;與執行部署相關的,如Spark記憶體計算、TensorFlow環境配置、伺服器資源的購置等。我們致力於輸出最專業、最全面、最便捷、價效比最高的NLP服務。

  面向場景的應用開發框架的價值在於,讓應用開發者聚焦在應用邏輯的開發上,而無需關注NLP相關的資料標註、調參,訓練等工作。以本文開始的業務人員與NLP開發人員的對話為例,在場景應用開發框架下,應用開發人員不用關心深度學習模型是否有2億引數,而只需要關心如何把“態度不好”和“額度”的模型分開,給兩個模型的訓練資料更加細分,以增加模型的區分度。這兩類區分度提高了,輸出結果不容易混淆了,自然而然,結果的可解釋性也就提高了。

可解釋性,是NLP場景應用成功的關鍵。泰嶽語義工廠,可以助力NLP場景應用提高可解釋性。

相關文章