打開AI的黑盒子:模型可解釋性的現狀、應用前景與挑戰

機器學習模型可解釋性方面的研究,在近兩年的科研會議上成爲一個相當熱門的話題。隨着機器學習應用越來越廣泛,大家不再僅僅滿足於模型的效果,而是希望對模型效果背後的原因有更好的理解。同時,在工業界落地AI時,構建能讓用戶理解的模型也變得越來越重要,在醫療、金融和司法等高風險應用中,這一點尤其明顯。只有可被解釋的機器學習模型,纔可能被更廣泛地採納,並避免歧視性預測和對決策系統的惡意攻擊。但目前模型可解釋性的研究仍處於非常早期的階段,距離應用尚需時日。當前模型可解釋性領域有哪些主流的研究方法?應用前景如何?應用落地存在哪些挑戰?

本文由InfoQ整理自阿里巴巴達摩院智能服務事業部算法專家邱天在AICUG線上直播公開課上的分享,希望能夠幫助讀者更好地瞭解模型可解釋性領域的發展現狀。

無論在學術界還是工業界,模型可解釋性目前都還是一個相當新的領域。我們會在這次分享中用綜述的形式對模型可解釋性做一個總體介紹,幫助大家瞭解什麼是模型的可解釋性,以及它誕生的背景是什麼樣的,我們爲什麼需要模型的可解釋性;然後對模型可解釋性領域的發展過程和現狀做一個介紹,包括模型可解釋性領域有哪些研究工作,不同的流派和它們的代表性思路;最後會分享我們對這個領域的發展趨勢以及應用所面臨的挑戰的一些思考。

我們爲什麼需要可解釋性?

隨着黑箱機器學習模型越來越多地被用於在關鍵環境中進行重要的預測,人工智能的各個利益相關者對透明度的要求越來越高。黑盒模型的風險在於做出和使用的決策可能不合理、不合法,或者無法對其行爲進行詳細的解釋。

在很多領域,模型的可解釋性都十分有必要。例如,在精準醫療中,爲了支持診斷,專家需要從模型中獲得遠比簡單的二元預測結果多得多的信息。在自動駕駛汽車,以及交通、安全、金融等關鍵領域,AI算法模型也需要是可解釋的。

近幾年,模型可解釋性概念越來越火,相關論文文獻的數量也是這兩年開始暴增。但這是否意味着我們過去一直沒有可解釋性呢?其實並不是。

最早的人工智能系統,如上圖右側圖(a)的線性模型,其實是很容易解釋的。因爲線性模型本身涉及的權重很少,而且非常直觀,每個權重的大小就意味着對應的特徵可以對最後的結果產生多大的貢獻。但是過去幾年我們見證了不透明決策系統的興起,比如深度神經網絡(DNNs)。深度學習模型(如RNN、BERT)的成功源於高效的學習算法及其巨大的參數空間的結合,一個參數空間可能由數百層和數百萬個參數組成,這使得DNNs被認爲是複雜的黑盒模型。隨着算力越來越強,算法模型變得越來越複雜、體積也越來越大,我們已經很難解釋這些模型了,雖然它的能力確實很強,能夠幫我們做越來越多的事情,甚至在很多特定任務上表現超過人類,但是我們越來越無法理解這些模型了,這是一個很棘手的問題。所謂的可解釋性,就是希望尋求對模型工作機理的直接理解,打破人工智能的黑盒子。

模型可解釋研究現狀

可解釋人工智能技術大致可以分爲三大類:

第一類是基於數據的可解釋性,是我們最容易想到的一種方法,也是很多論文裏面經常涉及的一類技術;第二類是基於模型的可解釋性,這類方法主要是在探討能不能讓模型本身就具有可解釋性,模型自身就能告訴我們爲什麼要這麼做;第三類是基於結果的可解釋性,思路是直接將現有的模型當作一個黑盒去看待,我們自己給一些輸入輸出,通過觀察模型的行爲,去推斷出它到底爲什麼會產生這樣的一個結果,我們自己去建模它的可解釋性,這種思路的好處是完全對模型無關,什麼模型都可以用。這三大類方法各有各的算法技術棧,接下來我們會重點介紹後兩類,包括它們的典型算法和思路。

常見的模型可解釋性方法

目前比較常見的模型可解釋性方法包括可視化、消融實驗(Ablation study)和對輸入輸出的靜態分析等。

可視化解釋不僅能夠幫我們調試代碼,發現黑盒子神經網絡在做某種決策時所犯的明顯錯誤,從而幫助改進模型,還可以尋找輸入圖片中對最終決策起至關重要的因素,實現知識發現。圖右是對於Attention的可視化,也是比較經典的一個例子,我們可以把BERT、Transformer等這些流行的自然語言處理模型一點點地拆解開,看看裏面的這些Attention到底是怎麼工作的,這是一個比較有意思的實現方式。

當前在各個頂會上討論得更多的是剛纔我們強調的後面兩種方法,即基於模型自身的可解釋性和基於結果的可解釋性,這也是近兩年業內研究相當火熱的兩類方法。接下來我們會重點介紹下這兩類方法。

基於模型自身的可解釋性

何爲模型自身的可解釋性?即,把模型本身變成一個可解釋的模型,它自己能說話,不只是給出單純的答案,還能給出得到這個答案的理由,可以讓研究人員對模型本身有更多的把握。

這次重點介紹其中的兩個典型方法,Explanation Generation和Prototype Network,前者是讓模型自己產生可解釋的輸出,後者則是讓模型的思考方式跟人類更接近。

Explanation Generation

典型的例子是VQA  explanation,即在訓練模型的同時訓練一個語言的解釋器。我們向模型提問,並給模型提供一些多模態的輸入(比如圖像或視頻),模型給出輸出結果的同時,讓模型對給出的輸出結果做進一步的解釋,以幫助我們更好地瞭解模型是否真的理解了我們的意思,而不是懷疑模型恰好“猜”對了答案。

假設我們輸入右上角的圖片,Question是What  sport  is  pictured?也就是問這個模型,這張圖在描述一個什麼樣的運動。模型需要做出回答,Answer:Surfing,回答這是在衝浪,回答對了。這時候我們會想,模型確實回答對了,但是它是怎麼回答對的呢?它是因爲看到這有一片海所以說是衝浪,還是說看到背後有白雲所以說是衝浪,還是說真的看到這有個人站在衝浪板上,它才覺得是衝浪呢?對於模型推斷的過程我們是有懷疑的,因爲我們不知道它是怎麼工作的,這時候就要用到模型可解釋性的方法,也就是VQA  explanation。

VQA  explanation要求模型不僅輸出Answer,還要輸出一個Explanation,比如模型給出這麼一個解釋 Because  the  man  is  riding  a  wave  on  a surfboard,因爲這個人站在衝浪板上衝浪,所以這張圖片上的運動是Surfing。這跟我們自身對於這個圖片的理解就是吻合的,同時模型還能把具體的實體跟圖像裏面的像素區域做高亮顯示,說明它確實理解了圖像中的人和衝浪板,並把這些實體結合起來,以及連貫整個行爲之後推理出來說,這個圖片上的運動應該理解成Surfing。通過應用VQA explanation的方法,我們可以將模型變得更可靠,即使模型推理錯了,我們也能知道爲什麼出錯。

VQA explanation具體如何工作可以參考圖片下方的流程圖,或參閱論文《Faithful  Multimodal  Explanation  for  Visual  Question  Answering》

有時候,就算我們把模型一層層拆解開,也還是無法很直觀地瞭解到,它爲什麼最後得出了這個結論。因爲模型最後得出結論的方式,跟人類看一個問題的思維方式,其中的Gap太大了。就算我們真的把每個模型的模塊都解析出來並可視化,也不一定能夠理解得很清楚。

Prototype Network

Prototype Network的思路是,在模型設計的時候,就讓模型的構造出的數據處理加工的方式和人類的思考方式相似,這樣它產生結果之後,我們反過來去看這個模型的工作方式,就能很好地理解爲什麼給出了這麼一個結果。

我們以《This Looks Like That: Deep Learning for Interpretable Image Recognition》這項工作爲例,來簡單地解釋一下實現的過程。這篇論文中核心的任務目標是對鳥類圖像做分類。那麼人是怎麼對鳥類做分類的呢?我們會有一些特定的方法論,比如要看它的嘴是什麼樣子的,它的爪子是什麼樣子的,它的羽毛是什麼樣子的,它的翅膀是什麼樣子的,我們通過把這幾個特徵組合起來去判斷這屬於什麼鳥類。論文提出了原型的概念,把對圖像的判斷機制拆解爲人類思維方式中的各種原子能力,根據人判斷的機理來分類圖像。在設計模型的時候,讓它用跟人類思考類似的方式,通過分解圖像得到不同的原型部分,比如先對鳥的嘴、爪子、羽毛逐一判斷,再通過組成這些信息最終得到正確的分類。

對具體實現細節感興趣的同學也可以去查閱論文原文:https://arxiv.org/abs/1806.10574

以上是可解釋人工智能第一種技術流派的兩種典型方法,其核心思路是讓模型自身具備可解釋的能力。

基於結果的可解釋性

我們再看第二種技術流派,基於結果的可解釋性,或者叫事後可解釋性,它指的是模型已經是訓練好的成品了,事後嘗試解釋爲什麼這個模型是這樣工作的。這個流派的思路是,我們仍然把深度模型看成是一個黑盒子,不去打開它,或者說不會去顯式地做拆解,而是通過假設和檢驗去觀察這個模型,再去推測這個模型可能是怎麼工作的。通過不斷地假設檢驗給出結論,這個結論會慢慢變得越來越符合模型實際的工作方式,通過不斷地逼近,最終給出一個合理的解釋。這種做法的好處是跟模型無關,適合於任意模型,當然目前也存在一些缺點,我們後面會提到。

基於結果的可解釋性我們舉例一種方法,就是代理模型的方法(surrogate model),在模型局部採用一種簡單可解釋的模型去近似原有的黑盒模型,當精度足夠逼近的時候,就可以用代理模型來解釋原黑盒模型,這裏我們列舉兩種產生代理模型的算法,分別是LIME算法和SHAP算法。

LIME算法的思路可以簡化理解成:嘗試用一個比較容易解釋的簡單的模型(比如線性模型)去逼近、擬合原來比較複雜且不好理解的深度模型,如果能產生一個跟原來的複雜模型結果近似的模型,那這個簡單模型的表徵狀態,就可以用來解釋原來的模型。當然LIME算法不會把整個模型進行線性的降維,因爲這樣做不現實,它是假設局部可線性化,把一個模型做無限的拆解,拆解到每個局部點,再對每個點用一個局部的線性模型或簡單模型進行近似,一旦局部跟一個簡單的線性模型之間產生了近似的擬合關係,就可以用簡單模型去解釋這個局部,局部得到解釋之後,整體也就可以解釋了。

對LIME算法和SHAP算法的具體原理感興趣的同學可以查看以下兩篇論文:

應用前景

我們可以看到,過去幾年,可解釋性相關的論文數量呈逐年上升趨勢,各個領域的國際頂會都紛紛開設了可解釋性的Topic。解釋AI模型的技術興趣在2018年左右開始滲透到整個研究領域。

我們認爲可解釋性能夠更好地推動深度學習、人工智能在整個業界的應用,它可以帶來以下好處:

  • 可信賴。可解釋性能夠讓模型變得更加可信賴,尤其是對於非技術工作人員,有助於推動深度學習在金融、交通、安全等關鍵領域的大規模應用,是人工智能在各行各業落地的重要基礎。
  • 公平性。當前人工智能、深度學習大部分都依賴於大數據,而大數據本身是來源於人的,其中難免存在偏差(bias),機器對這些存在偏差的數據進行學習的時候,也會把偏差學進去,但這些偏差並不是我們想要的。我們希望模型本身能夠抵抗這些偏差,而不是單純的去模擬數據的偏差,比如在金融風控領域,模型可能對於特定性別、特定地域來源、特定年齡的人的判別存在偏差。如果能夠讓模型本身可解釋、可理解,我們就能夠把偏差糾正過來,讓它變得更公平。
  • 可轉移性。我們現在經常提遷移學習(Transfer Learning),就是把模型從一個領域遷移到另一個領域。如果模型是個黑盒子,我們不清楚它具體是怎麼工作的,就很難清晰地界定模型遷移的邊界在哪裏,哪裏可用、哪裏不可用,這些都無從知曉。如果我們能夠對模型有更深的瞭解,就可以更好地把模型模塊化,進而更好地對模型進行無縫的遷移,遷移學習的領域運用也會更加的廣闊。
  • 高效率。假設AI產品部署之後出現Bug,如果模型是個黑盒,我們就無法知道它是如何工作的,自然也不可能知道Bug出在哪裏,只能用小修小補的方式把Bug屏蔽掉,而不能真正地解決問題。如果模型可解釋,我們就可以更快速地定位和修正badcase。
  • 多樣性:模型可解釋可以推動生成模型的廣泛應用。以阿里小蜜爲例,它是一個會話機器人,目前一些生成模型技術(如括文本生成)已經相當成熟了,能夠給我們提供一些比較好的生成結果,如果我們將生成模型應用到會話機器人中,可以提供比傳統的檢索方法更好的個性化回答服務,對於會話服務的整體質量會有很好的提升。可是我們卻沒辦法這麼用,爲什麼呢?因爲工業界應用對模型可靠性有一定的要求,但生成模型一個比較大的問題在於它是不可控的,特別是深度的生成模型,我們根本無法控制輸入一個問題之後它會給出一個什麼樣的回答,可能導致實際應用中出現各種意外情況。這就需要我們對模型有更深層次的把握,能夠更好地理解生成模型是怎麼工作的、怎麼在一定程度上控制它,這之後才能夠讓模型更好地應用起來。

面臨的挑戰

前面說了很多模型可解釋性方法的優點,那爲什麼我們到目前還沒有大規模地應用起來呢?實際使用這些可解釋技術的時候可能會遇到哪些問題?這裏簡單總結了三個比較典型的挑戰:

  • 挑戰1:算法成熟度

我們前面介紹了當前比較有代表性的兩種模型可解釋性流派,一種是基於結果的事後可解釋性,一種是模型自身的可解釋性。

對於模型自身的可解釋性,它本身跟模型強綁定,我們需要根據模型和應用場景一對一地進行迭代,才能夠讓它產生可解釋性,通用性非常受限,修改的難度也比較大。

而基於結果的可解釋性,雖然我們可以把它看成一個黑盒子,但目前算法本身還存在一些問題。比如LIME算法,因爲它是一種近似,它對於採樣有一定依賴,導致結果不穩定。不過算法本身的問題也在不斷迭代改進,LIME算法是2016年提出來的,現在Linkedin又提出了xLIME算法,針對LIME存在的問題做了一些改進。通過工業界和學術界一步一步地探索,相信這些算法會變得越來越好,離大規模應用也會越來越近。

  • 挑戰2:算力成本

第二個挑戰跟第一個挑戰是緊密相關的。剛纔我們提到,基於結果的可解釋性方法對採樣有依賴,結果也不太穩定,那對一部分可以工作的比較好的模型,我們總可以用了吧?但我們發現要真正用起來還有一個問題:對於目前的算法,包括LIME也好、SHAP也好,它本身的算法複雜度還是太高。一篇200字段落的MRC,通過SHAP算法基於模特卡洛抽樣也需要迭代超過5000次,耗時數小時,才能較好地擬合一個樣本。假設有幾萬篇樣本,那得算到什麼時候呢?解決的辦法一方面是優化算法,降低複雜度,另一方面是繼續提升算力。

  • 挑戰3:數據稀疏

對於模型自身可解釋性方法,我們需要訓練出模型的解釋器,這往往是一個有監督的訓練過程,就意味着需要大量的樣本和大量的標註,它才能夠最後給出自身的解釋。但是工業界現在並沒有這麼大量的對於可解釋性的額外的數據標註,如果我們用人工的方法進行海量數據標註,成本非常高,甚至是不可承擔的。一種可能的方式是,藉助無監督或者半監督的方法,把我們自身已經有的一些算法的數據標註運用起來,讓它產生可解釋性,這是最合理或者說最可能行得通的一種方法。

嘉賓介紹

邱天,阿里巴巴達摩院智能服務事業部算法專家,負責知識構建及創新應用的研究和落地工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章