雲栖号資訊:【 點選檢視更多行業資訊】
在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

機器學習模型可解釋性方面的研究,在近兩年的科研會議上成為一個相當熱門的話題。随着機器學習應用越來越廣泛,大家不再僅僅滿足于模型的效果,而是希望對模型效果背後的原因有更好的了解。同時,在工業界落地 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 算法的具體原理感興趣的同學可以檢視以下兩篇論文:
LIME 算法:
https://arxiv.org/abs/1602.04938SHAP 算法:
https://arxiv.org/abs/1705.07874應用前景
我們可以看到,過去幾年,可解釋性相關的論文數量呈逐年上升趨勢,各個領域的國際頂會都紛紛開設了可解釋性的 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:資料稀疏
對于模型自身可解釋性方法,我們需要訓練出模型的解釋器,這往往是一個有監督的訓練過程,就意味着需要大量的樣本和大量的标注,它才能夠最後給出自身的解釋。但是工業界現在并沒有這麼大量的對于可解釋性的額外的資料标注,如果我們用人工的方法進行海量資料标注,成本非常高,甚至是不可承擔的。一種可能的方式是,借助無監督或者半監督的方法,把我們自身已經有的一些算法的資料标注運用起來,讓它産生可解釋性,這是最合理或者說最可能行得通的一種方法。
嘉賓介紹
邱天,阿裡巴巴達摩院智能服務事業部算法專家,負責知識建構及創新應用的研究和落地工作。
【雲栖号線上課堂】每天都有産品技術專家分享!
課程位址:
https://yqh.aliyun.com/live立即加入社群,與專家面對面,及時了解課程最新動态!
【雲栖号線上課堂 社群】
https://c.tb.cn/F3.Z8gvnK
原文釋出時間:2020-05-10
本文作者:邱天
本文來自:“
AI前線”,了解相關資訊可以關注“
”