劉春紅 李為麗 焦 潔 王敬雄 張俊娜
1 (河南師范大學(xué)計(jì)算機(jī)與信息工程學(xué)院 河南新鄉(xiāng) 453007)
2 (智慧商務(wù)與物聯(lián)網(wǎng)技術(shù)河南省工程實(shí)驗(yàn)室(河南師范大學(xué)) 河南新鄉(xiāng) 453007)
近年來,機(jī)器學(xué)習(xí)模型在眾多領(lǐng)域中都得到了廣泛的應(yīng)用,并且表現(xiàn)出很好的性能.然而模型的黑盒特性,使其缺乏透明度、可解釋性和可信賴性,如果不能從人類的角度對(duì)模型決策進(jìn)行理解,尋找更好的模型最終將淪為試錯(cuò)法.例如在云平臺(tái)中,對(duì)任務(wù)的終止?fàn)顟B(tài)進(jìn)行預(yù)測時(shí),需要很高的透明度和可信度,這意味著我們需要能夠解釋模型的決定、預(yù)測和證明它們的可靠性.這需要更好的可解釋性,意味著我們需要理解算法背后的機(jī)制[1].
在分布式云平臺(tái)的調(diào)度管理中,用戶的應(yīng)用請(qǐng)求以作業(yè)的形式提交到數(shù)據(jù)中心,每個(gè)作業(yè)由調(diào)度器分配計(jì)算和存儲(chǔ)資源,作業(yè)的一次調(diào)度運(yùn)行稱為任務(wù).作業(yè)包含1 個(gè)或多個(gè)任務(wù).其中,任務(wù)終止?fàn)顟B(tài)包含驅(qū)逐、失敗、完成和被殺[2].Jassas 等人[3]提出了一種能夠在早期發(fā)現(xiàn)失敗作業(yè)的失敗預(yù)測框架,該框架的優(yōu)勢是減少資源浪費(fèi),提高云應(yīng)用的性能.Gao 等人[4]提出了一種基于多層雙向長短期記憶(Bi-LSTM)的失敗預(yù)測算法來識(shí)別云中的任務(wù)和作業(yè)失敗,提高以往基于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方法的失敗預(yù)測精度.現(xiàn)有任務(wù)終止?fàn)顟B(tài)預(yù)測模型在預(yù)測精度上有很大的提高,但是模型缺乏可解釋性,人們無法確定模型產(chǎn)生的輸出是否符合常理,所以即使模型產(chǎn)生較好的結(jié)果,人們依然無法完全信任模型.
為了克服模型缺乏可解釋性的限制,必須考慮用于建模的輸入變量的可解釋性,即特征選擇的可解釋性,以及模型預(yù)測的可解釋性.由于模型內(nèi)部復(fù)雜的結(jié)構(gòu),會(huì)導(dǎo)致輸入特征和預(yù)測結(jié)果之間的因果關(guān)系難以理解,所以模型是不可解釋的.基于此,可以通過對(duì)特征進(jìn)行統(tǒng)計(jì)分析,以建立特征和輸出之間的因果關(guān)系,從而實(shí)現(xiàn)模型內(nèi)部的透明化[5-10].特征統(tǒng)計(jì)分析方法是指對(duì)模型的特征進(jìn)行匯總分析或者顯著性可視化,對(duì)混亂的特征進(jìn)行統(tǒng)計(jì)分析,計(jì)算不同特征對(duì)模型輸出的貢獻(xiàn),并對(duì)顯著特征進(jìn)行可視化.該方法是基于特征對(duì)模型進(jìn)行解釋,特征作為可解釋性和模型之間的橋梁[11].鑒于特征選擇對(duì)模型可解釋性的作用,故研究基于樹模型探討其在任務(wù)終止?fàn)顟B(tài)預(yù)測研究中的實(shí)用性.
基于樹的機(jī)器學(xué)習(xí)模型是當(dāng)今最流行的非線性模型.隨機(jī)森林、梯度增強(qiáng)樹、決策樹等樹模型被用于金融、醫(yī)學(xué)、生物學(xué)、客戶保留、廣告、供應(yīng)鏈管理、制造、公共衛(wèi)生和許多其他領(lǐng)域.基于輸入特征集做出預(yù)測,為每個(gè)輸入特征分配信用數(shù)字來度量局部解釋.如圖1 所示,在任務(wù)終止?fàn)顟B(tài)預(yù)測中,將一組相同的特征變量分別輸入到黑盒模型和白盒模型,“白盒”局部解釋可以通過為每個(gè)特征分配一個(gè)特征重要性系數(shù)來表示特征對(duì)于模型產(chǎn)生某種預(yù)測結(jié)果的影響程度.在保證模型預(yù)測性能的同時(shí),提高模型的可解釋性,其中的可解釋性意味著我們可以理解模型如何使用輸入特征來表示預(yù)測[12].
圖1 局部解釋示意圖Fig.1 Illustration of local explanation
然而,盡管樹的全局解釋方法有豐富的歷史,總結(jié)了輸入特征對(duì)整個(gè)模型的影響,但是人們對(duì)解釋輸入特征對(duì)個(gè)體預(yù)測影響的局部解釋的關(guān)注較少.
目前有3 種比較常用的方法用來解釋樹模型的個(gè)體預(yù)測,即局部解釋方法:1)報(bào)告決策路徑;2)一個(gè)未發(fā)表的啟發(fā)式方法,為每個(gè)輸入特性分配積分;3)各種與模型無關(guān)的方法,需要為每種解釋多次執(zhí)行模型[12].這3 種方法有3 個(gè)局限性:1)簡單地報(bào)告預(yù)測的決策路徑對(duì)大多數(shù)模型都是沒有幫助的,特別是對(duì)那些基于多棵樹的模型;2)行為啟發(fā)式信用分配方法還沒有被仔細(xì)分析,對(duì)基于樹的深度改變特征的影響有強(qiáng)烈的偏差;3)由于模型不可知的方法依賴于任意函數(shù)的事后建模,它們可能速度很慢,并存在抽樣可變性.
樹解釋器,是一種新的用于樹的局部解釋方法,它使得最優(yōu)局部解釋的易處理計(jì)算成為可能,由博弈論的理想性質(zhì)定義[13].研究借助任務(wù)終止?fàn)顟B(tài)預(yù)測模型,選擇出最佳特征子集,并對(duì)進(jìn)一步的模型可解釋性進(jìn)行研究.為了解決當(dāng)前樹集成方法存在的不一致問題,即當(dāng)一個(gè)特征的真正影響實(shí)際增加時(shí),它們會(huì)降低該特征的重要性,我們使用博弈論的最新應(yīng)用,將樹集成特征屬性方法與SHAP 方法相結(jié)合,使用SHAP 值來衡量特征的重要性[14],將各特征對(duì)輸出的影響可視化.通過結(jié)合許多局部解釋,可以表示任務(wù)終止預(yù)測全局結(jié)構(gòu),同時(shí)保持對(duì)原始模型的局部忠實(shí)性,任務(wù)終止?fàn)顟B(tài)預(yù)測可解釋性全局結(jié)構(gòu)圖如圖2 所示.
圖2 任務(wù)終止?fàn)顟B(tài)預(yù)測可解釋性架構(gòu)Fig.2 Architecture of the task termination state prediction interpretability
云平臺(tái)中,對(duì)任務(wù)的終止?fàn)顟B(tài)進(jìn)行預(yù)測,對(duì)預(yù)測結(jié)果采取相應(yīng)的調(diào)度措施,將失敗的作業(yè)/任務(wù)提前終止,以確保良好的時(shí)間性能,并大量降低系統(tǒng)的資源浪費(fèi),提高資源利用率.通過解釋作業(yè)/任務(wù)的系統(tǒng)屬性、動(dòng)態(tài)負(fù)載變化情況等因素與任務(wù)終止?fàn)顟B(tài)之間的關(guān)系,可視化負(fù)載特征對(duì)預(yù)測結(jié)果的貢獻(xiàn)度,選擇重要特征,進(jìn)而提高任務(wù)終止?fàn)顟B(tài)預(yù)測模型的可解釋性,可以更好地調(diào)度任務(wù).
本文的貢獻(xiàn)包括2 個(gè)方面:
1) 提出了一種可解釋性強(qiáng)的云平臺(tái)任務(wù)終止?fàn)顟B(tài)預(yù)測模型,研究負(fù)載特征與任務(wù)不同終止?fàn)顟B(tài)之間的關(guān)系.
2) 通過一系列直觀的可視化結(jié)果,分析負(fù)載特征如何影響模型對(duì)任務(wù)不同終止?fàn)顟B(tài)的預(yù)測,探索特征與任務(wù)終止?fàn)顟B(tài)之間的映射機(jī)理.
本文使用谷歌數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),在保證任務(wù)終止?fàn)顟B(tài)預(yù)測模型性能的同時(shí),打破模型的黑盒特性,提高可解釋性.在下文中,我們將討論為什么樹形模型在許多情況下都是最合適的模型,因?yàn)樗鼈兊臏?zhǔn)確性及其可解釋性(1.2節(jié)),將計(jì)算精確SHAP 值的復(fù)雜度從降至,分析全局特征重要性(2.2 節(jié)),討論對(duì)基于樹的模型進(jìn)行更好的局部解釋的必要性(2.3 節(jié)和2.4 節(jié)),擴(kuò)展了局部解釋來捕獲交互效應(yīng)(2.5 節(jié)),并找出特征與任務(wù)終止?fàn)顟B(tài)之間的映射機(jī)理(2.6 節(jié)).
Google 日志中包含任務(wù)各種資源的實(shí)際使用情況,其能基本準(zhǔn)確反映出任務(wù)在實(shí)際運(yùn)行過程中消耗的資源,但在早期運(yùn)行過程中,任務(wù)的數(shù)據(jù)所含信息量很少,所以需要對(duì)數(shù)據(jù)進(jìn)行額外的信息補(bǔ)償,以彌補(bǔ)模型預(yù)測中動(dòng)態(tài)信息的不足,動(dòng)態(tài)信息主要與任務(wù)的動(dòng)態(tài)屬性有關(guān).在早期階段,任務(wù)的運(yùn)行狀態(tài)數(shù)據(jù)較少,例如樣本CPU 使用率、分配的內(nèi)存使用率、未映射的頁面高速緩存內(nèi)存使用率、平均磁盤I/O 時(shí)間以及每個(gè)周期指令(CPI) 等動(dòng)態(tài)屬性.只利用單個(gè) 任務(wù)數(shù)據(jù)構(gòu)建預(yù)測模型,限制了預(yù)測性能的提高.同時(shí),部分作業(yè)之間具有相似資源消耗周期性變化的特點(diǎn),引入更多的作業(yè)之間的相似信息以增加預(yù)測模型的動(dòng)態(tài)信息[15].
加入任務(wù)的動(dòng)態(tài)信息,最終選擇用于任務(wù)終止?fàn)顟B(tài)預(yù)測的 59 個(gè)特征[16],其包含有 5 個(gè)靜態(tài)特征和54 個(gè)動(dòng)態(tài)特征.特征描述如表1 所示,其中靜態(tài)特征指不隨著時(shí)間戳的變化而改變的特征,動(dòng)態(tài)特征指隨著時(shí)間戳的變化而改變的特征.
Table 1 Static and Dynamic Characteristics of Tasks表1 任務(wù)的靜態(tài)和動(dòng)態(tài)特征
為了描述方便,本文使用英文特征名簡寫表示表1 中的中文特征名稱:任務(wù)采樣CPU 使用率最大值max_cpu,任務(wù)規(guī)范內(nèi)存使用的最大值max_dsik,任務(wù)分配內(nèi)存使用的最大值max_fendsik,任務(wù)分映射頁面緩存的內(nèi)存使用的最大值max_chachdsik,任務(wù)平均disk 的I/O 時(shí)間的最大值max_dsikOI,任務(wù)平均使用的本地磁盤空間的最大值max_localdsik,任務(wù)每個(gè)指令存儲(chǔ)器訪問的最大值max_instructiondsik,任務(wù)每個(gè)指令周期的最大值max_perInstructiondsik,任務(wù)平均CPU 的使用率的最大值max_Mcpu.對(duì)于均值(mean)、峰值(pv)、標(biāo)準(zhǔn)差(sd)、均方根(msr)、方根幅值(rpv)的命名同理.
樹解釋器可以通過平均許多局部解釋作為一種全局方法[13].如果對(duì)數(shù)據(jù)集中的所有樣本都采用樹解釋器,那么就可以得到一個(gè)特征重要性的全局度量,它不會(huì)受到經(jīng)典增益方法不一致性的影響,與排列方法不同,它不會(huì)錯(cuò)過高階交互效應(yīng).基于樹解釋器的全局特征歸因,與目前最先進(jìn)的方法相比,在存在交互作用時(shí)具有更高的檢測重要特征的能力,這對(duì)于基于樹集合的特征選擇任務(wù)具有重要意義.
為了更好地理解模型的輸出,可以從特征的角度出發(fā)對(duì)模型進(jìn)行解釋,采用SHAP 可視化特征對(duì)終止?fàn)顟B(tài)的重要性,利用變量重要性結(jié)合SHAP 值來解釋XGBoost 模型,對(duì)任務(wù)終止?fàn)顟B(tài)預(yù)測模型建模后的結(jié)果進(jìn)行解釋.SHAP 值用于特征的重要性,被定義為觀察每個(gè)輸入特征的值對(duì)模型輸出順序的影響,并在所有可能的特征排序上取平均值[2].對(duì)于所有可能的排序,我們?cè)谀P洼敵龅臈l件期望中每次引入一個(gè)特征,然后將期望中的變化歸因于所引入的特性.
SHAP 交互值由一個(gè)特征屬性矩陣(對(duì)對(duì)角線的主要影響和對(duì)非對(duì)角線的交互影響)組成,并具有類似于SHAP 值的唯一性保證.通過單獨(dú)考慮單個(gè)模型預(yù)測的主要影響和交互效應(yīng),樹解釋可以發(fā)現(xiàn)可能被遺漏的重要模式.
集成樹模型做分類任務(wù)時(shí),模型輸出的是一個(gè)概率值.SHAP 實(shí)際是將輸出值歸因到每一個(gè)特征的SHAP 值上,依此來衡量特征對(duì)最終輸出值的影響.SHAP 屬于加性特征歸因方法,其表示如式(1)所示:
其中g(shù)是解釋模型;M是輸入特征的數(shù)量;表示在所有的M個(gè)特征中,有多少特征是該樣本所在的決策路徑中包含的特征,對(duì)于某個(gè)樣本,如果特征k不在其決策路徑中,那么對(duì)應(yīng)特征的SHAP 值為0,即φk=0,表示該特征不會(huì)對(duì)樣本產(chǎn)生歸因,對(duì)于最終預(yù)測值沒有貢獻(xiàn).
在樹模型中,對(duì)于某個(gè)特征j,需要針對(duì)所有可能的特征組合(包括不同順序)計(jì)算SHAP 值,然后進(jìn)行加權(quán)求和,如式(2)所示:
其中N為訓(xùn)練集中所有特征的集合;M為特征數(shù)量;S是模型中使用的特征的子集;fx(S)表達(dá)的是只利用特征集合S,根據(jù)樹的結(jié)構(gòu)、葉子節(jié)點(diǎn)的取值、內(nèi)部節(jié)點(diǎn)的Cover 值等,計(jì)算出樣本的平均值;fx(S∪{i})表達(dá)的是在特征集合的基礎(chǔ)上,加上特征i,然后再根據(jù)樹的結(jié)構(gòu)、葉子節(jié)點(diǎn)的取值、內(nèi)部節(jié)點(diǎn)的Cover值等,計(jì)算出樣本的平均值;是對(duì)應(yīng)特征子集S下,對(duì)于上述包含特征i和不包含特征i的情況下,樣本取值之差的權(quán)重.
正如Lundberg 等人[12]所提到的,這類附加特征屬性方法的一個(gè)重要屬性是,該類方法中存在一個(gè)唯一的解,且該解具有3 個(gè)期望的屬性:局部精確性、一致性和缺失性.局部精確性表示特征歸因的總和等于我們要解釋的模型的輸出;一致性表明,更改模型以使某個(gè)特性對(duì)模型產(chǎn)生更大的影響,永遠(yuǎn)不會(huì)減少分配給該特征的屬性的總和等于我們?cè)噲D解釋的函數(shù)的輸出;缺失性表示已經(jīng)缺失的特征(例如不具有重要性.
如果忽略計(jì)算復(fù)雜度,那么可以通過估計(jì)E[f(x)|xS]計(jì)算樹的SHAP 值,然后使用式(2),其中fx(S)=E[f(x)|xS].E[f(x)|xS]是輸入特征的子集S的條件期望值,圖3 解釋了如何從E[f(x)]得到預(yù)測值,SHAP 值將每個(gè)特征的歸因值賦值為在調(diào)整該特征時(shí)模型預(yù)測的預(yù)期變化,將模型f對(duì)于樣本x1=a1,x2=a2,x3=a3,x4=a4的預(yù)測解釋為引入條件期望的每個(gè)特征的影響 φj的總和.
圖3 SHAP 加和解釋原理Fig.3 Principle of SHAP addition explanation
樹解釋器用于任務(wù)終止?fàn)顟B(tài)可解釋性研究中,其背后的主要算法可以精確地計(jì)算SHAP 值,從而保證一致的解釋.在低階多項(xiàng)式時(shí)間內(nèi)精確計(jì)算式(2),其中條件期望函數(shù)fx是使用樹遍歷(算法1)來定義的.通過直接計(jì)算SHAP 值,我們能夠保證解釋總是一致的和局部精確的.
算法1.估計(jì)E[f(x)|xS].
算法2.Tree SHAP.
傳統(tǒng)的特征重要性方法可以直觀地反映出特征的重要性,但是依然無法得出特征與模型預(yù)測結(jié)果之間的關(guān)系,SHAP 屬于加性特征歸因方法,將每個(gè)特征都視為貢獻(xiàn)者,計(jì)算每個(gè)特征的貢獻(xiàn)值,可以反映出每個(gè)特征對(duì)于最終預(yù)測結(jié)果的影響,增加任務(wù)終止?fàn)顟B(tài)預(yù)測模型的可解釋性.使用XGBoost 模型對(duì)任務(wù)終止?fàn)顟B(tài)進(jìn)行預(yù)測,從特征的角度出發(fā),以SHAP 值來衡量模型預(yù)測中特征的重要性,并對(duì)其結(jié)果進(jìn)行直觀的可視化.使用SHAP 總結(jié)圖可視化特征的變化如何影響任務(wù)的不同終止?fàn)顟B(tài),進(jìn)而找出特征與任務(wù)終止?fàn)顟B(tài)之間的映射機(jī)理.
本文以 Google 云平臺(tái)的計(jì)算調(diào)度系統(tǒng) Borg[17]為研究對(duì)象,利用 Google 公開的工作負(fù)載監(jiān)控日志數(shù)據(jù)集①https://github.com/google/cluster-data進(jìn)行驗(yàn)證,該日志有1 個(gè)月的監(jiān)控?cái)?shù)據(jù).驗(yàn)證實(shí)驗(yàn)篩選了Google 集群日志前3 天的數(shù)據(jù)進(jìn)行實(shí)驗(yàn).該樣本數(shù)據(jù)集中共有10 473 個(gè)job,包含1 665 280個(gè)任務(wù).為了更準(zhǔn)確地對(duì)云平臺(tái)任務(wù)不同終止?fàn)顟B(tài)的影響因素進(jìn)行更直觀的可視化,需要進(jìn)一步對(duì)任務(wù)的終止?fàn)顟B(tài)進(jìn)行細(xì)分,即不僅預(yù)測任務(wù)是成功(finish)還是失敗,還需要進(jìn)一步細(xì)分失敗是驅(qū)逐(evict)、失?。╢ail)或被殺(kill)的狀態(tài),從而采取提前終止或繼續(xù)運(yùn)行等不同的調(diào)度策略.
由于Google 云平臺(tái)數(shù)據(jù)集是從真實(shí)環(huán)境中采集獲取,同時(shí)數(shù)據(jù)集存在含有部分噪聲和缺失值等問題,所以需要對(duì)數(shù)據(jù)進(jìn)行清洗預(yù)處理.實(shí)驗(yàn)篩選了Google 集群日志前3 天的數(shù)據(jù),處理清洗過程參考文獻(xiàn)[17].
多分類評(píng)價(jià)指標(biāo)分為宏平均(macro-average)和微平均(micro-average),以召回率(recall)為例,Macro-R表示宏平均的召回率,Micro-R表示微平均的召回率.針對(duì)極度不均衡的多分類來說,Macro-R受樣本數(shù)量少的類別影響較大,比Micro-R更合理[15].所以本文在測試數(shù)據(jù)集上,選擇宏平均來度量分類器性能,更側(cè)重對(duì)小類判別的有效性,本文使用的評(píng)價(jià)指標(biāo)均使用宏平均的方法進(jìn)行計(jì)算.
Kappa 評(píng)價(jià)指標(biāo)k可以用來進(jìn)行多分類模型準(zhǔn)確度的評(píng)估,k的取值范圍是[-1,1],實(shí)際應(yīng)用中一般k∈[0,1],與ROC曲線中一般不會(huì)出現(xiàn)下凸形曲線的原理類似.k的值越高,則代表模型實(shí)現(xiàn)的分類準(zhǔn)確度越高.
海明距離用來衡量預(yù)測標(biāo)簽與真實(shí)標(biāo)簽之間的距離,取值在0~1 之間.海明距離為0 說明預(yù)測結(jié)果與真實(shí)結(jié)果完全相同,海明距離為1 說明模型與我們想要的結(jié)果完全背道而馳.
各個(gè)多分類各評(píng)價(jià)指標(biāo)的計(jì)算如式(3)~(6)所示.其中Macro-R表示召回率的宏平均;召回率表示任務(wù)樣本中有多少運(yùn)行成功的樣本被正確預(yù)測;Macro-P表示準(zhǔn)確率的宏平均;Macro-F1 表示F1 的宏平均;k表示Kappa 系數(shù),式(6)中po是總體精度,pe是偶然一致性誤差.
實(shí)驗(yàn)設(shè)計(jì)為2 組: 1)特征重要性的可視化,使用特征重要性圖表示4 種不同的任務(wù)終止?fàn)顟B(tài)的特征重要性; 2)特征對(duì)模型輸出影響的可視化,使用個(gè)體樣本力圖、多個(gè)樣本力圖、部分相關(guān)圖、SHAP 總結(jié)圖可視化特征如何影響任務(wù)的不同終止?fàn)顟B(tài).
繪制樹集合模型中特征的影響通常是用條形圖來表示全局特征重要性,或用部分相關(guān)性圖來表示單個(gè)特征的影響.然而,由于SHAP 值是個(gè)性化的特征屬性,對(duì)于每個(gè)預(yù)測都是唯一的,因此它能夠?qū)崿F(xiàn)新的、更豐富的視覺表示.
取每個(gè)特征的SHAP 值絕對(duì)值的平均值作為該特征的重要性,并進(jìn)行降序排序,由于任務(wù)有多種終止?fàn)顟B(tài),得到的結(jié)果是堆疊的條形圖,基于XGBoost模型的20 個(gè)重要變量的排序結(jié)果如圖4 所示.
圖4 特征重要性圖Fig.4 Feature importance map
從圖4 可以看到,在選出的20 個(gè)重要特征中,finish 類不使用sd_instructiondisk,pv_cpu,sd_cpu,max_fendisk等特征;kill 類不使用pv_Mcpu,sd_cpu,sd_Mcpu,rpv_chachdisk,mean_cpu這些特征;fail 類不使用pv_Mcpu,rpv_chachdisk,rpv_chachdisk,pv_disk這些特征;evict 類不使用pv_disk,pv_Mcpu,sd_instructiondisk,pv_chachdisk等特征.
對(duì)于正確分類的樣本,通過單個(gè)樣本的力圖,可以得知模型預(yù)測值的高低是如何造成的、由哪些特征造成的.如圖5 所示,模型predict_proba值為0.91,代表當(dāng)前樣本的SHAP 值的輸出值,基值為0.429 8,即全體樣本的平均值,模型作出這樣的結(jié)果,主要是受到任務(wù)平均CPU 使用率的方根幅值、 任務(wù)采樣CPU 使用率的方根幅值、任務(wù)平均CPU 使用率的均方差、任務(wù)采樣CPU 使用率的最大值的影響,這些特征對(duì)模型產(chǎn)生正向作用.任務(wù)分映射頁面緩存的內(nèi)存使用的最大值、任務(wù)分映射頁面緩存的內(nèi)存使用的峰值是對(duì)模型產(chǎn)生反向作用的特征.
圖5 預(yù)測正確的樣本力圖Fig.5 Force plot of prediction correct sample
根據(jù)模型的預(yù)測結(jié)果找出被模型分錯(cuò)的樣本,對(duì)其進(jìn)行可解釋性分析,查看哪些因素導(dǎo)致樣本被錯(cuò)誤分類.在測試集中,樣本ID 為2610 的樣本是成功完成的,但是模型將其終止?fàn)顟B(tài)預(yù)測為失敗,導(dǎo)致模型這種錯(cuò)誤預(yù)測的原因如圖6 所示,主要受到任務(wù)平均CPU 的使用率峰值、任務(wù)磁盤空間資源請(qǐng)求、任務(wù)每個(gè)指令存儲(chǔ)器的訪問峰值、任務(wù)分映射頁面緩存的內(nèi)存使用峰值的影響.
圖6 預(yù)測錯(cuò)誤的樣本力圖Fig.6 Force plot of prediction wrong sample
對(duì)多個(gè)樣本的預(yù)測結(jié)果進(jìn)行可視化,可以將單個(gè)樣本的力圖旋轉(zhuǎn)90°,然后橫向堆疊,得到力圖的變體,這樣我們可以得到對(duì)整個(gè)數(shù)據(jù)集的解釋.對(duì)于多個(gè)樣本的解釋,在生成的力圖中,可以選擇不同的橫縱坐標(biāo),實(shí)現(xiàn)對(duì)模型預(yù)測的直觀可視化.從圖7 可以看出,在基于樣本的解釋中,對(duì)輸出貢獻(xiàn)正向影響的特征和對(duì)輸出貢獻(xiàn)負(fù)向影響的特征;x軸是樣本數(shù)量,y軸是SHAP 值加總(每個(gè)特征的SHAP 值);左邊紅色扎堆是正向SHAP 增益區(qū), 任務(wù)的局部磁盤空間資源請(qǐng)求、優(yōu)先級(jí)對(duì)一些樣本是正向增益的.整體來說,圖7 是一個(gè)宏觀的了解,將諸多樣本中不同特征對(duì)預(yù)測結(jié)果產(chǎn)生的影響進(jìn)行可視化.
圖7 預(yù)測多個(gè)樣本的力圖Fig.7 Force plot of prediction multiple samples
特征相關(guān)圖表示特定變量或變量組的值固定時(shí)模型的預(yù)期輸出.固定變量的值是變化的,并繪制出最終的預(yù)期模型輸出.繪制一個(gè)函數(shù)的預(yù)期輸出如何隨著我們改變的一個(gè)特征而改變,有助于解釋模型如何依賴于該特征.
特征相關(guān)圖如圖8 所示,可以更清楚地顯示出特征對(duì)于模型輸出的影響,x軸表示特征的取值,y軸表示該特征的SHAP 值,也就是說特征的取值會(huì)給模型的輸出帶來變化量.通過繪制數(shù)據(jù)集中許多任務(wù)的這些值,我們可以看到特征的屬性重要性如何隨其值的變化而變化.標(biāo)準(zhǔn)的相關(guān)圖僅產(chǎn)生直線,而特征相關(guān)圖由于模型中的相互作用而捕捉垂直離差.這些效果可以通過用交互特征的值給每個(gè)點(diǎn)著色來可視化.
圖8 特征相關(guān)圖Fig.8 Feature dependence plot
對(duì)于相關(guān)圖中的同一個(gè)x值,也就是特征取值相同的樣本,它們的SHAP 值不同.其原因是,該特征和其他特征有著交互效應(yīng),相關(guān)圖可以自動(dòng)地選擇與該特征相關(guān)的另外一個(gè)特征,來表現(xiàn)特征之間的這種交互效應(yīng).圖8 右邊是對(duì)比的特征,紅色代表相關(guān)特征的高分部分,藍(lán)色代表相關(guān)特征的低分部分.任務(wù)分映射頁面緩存的內(nèi)存使用的峰值的高分部分,對(duì)于低任務(wù)的CPU 資源請(qǐng)求來說,SHAP 值一般小于0,所以是負(fù)面影響.
使用SHAP 特征歸因方法實(shí)現(xiàn)對(duì)特征與任務(wù)終止?fàn)顟B(tài)之間關(guān)系的解釋,對(duì)不同終止?fàn)顟B(tài)預(yù)測的特征重要性進(jìn)行直觀的可視化,根據(jù)可視化的結(jié)果,分別找出任務(wù)終止?fàn)顟B(tài)為完成、被殺、失敗、驅(qū)逐的影響因素,并對(duì)特征如何影響模型的預(yù)測結(jié)果進(jìn)行分析,找出特征與終止?fàn)顟B(tài)之間的映射機(jī)理.
特征重要性條形圖給出了訓(xùn)練數(shù)據(jù)集中相對(duì)重要性的概念,但并不表示特征對(duì)模型輸出的影響范圍和分布,也不表示特征的值與其影響的關(guān)系.SHAP摘要圖利用個(gè)性化的特征屬性來傳達(dá)特征重要性的所有方面, 同時(shí)保持視覺簡潔.
SHAP 值類似回歸系數(shù),有正負(fù)之分,也有大小之分,SHAP 值越高,表示在任務(wù)終止?fàn)顟B(tài)預(yù)測模型中預(yù)測為該類的對(duì)數(shù)的幾率越高,數(shù)據(jù)集中的每個(gè)樣本都在模型中運(yùn)行,并且為每個(gè)特征屬性值創(chuàng)建一個(gè)點(diǎn),因此每個(gè)任務(wù)在特征的線上獲得一個(gè)點(diǎn),該點(diǎn)由該任務(wù)的特征值著色,并垂直堆積以顯示密度.每個(gè)點(diǎn)都是一個(gè)特征和實(shí)例的SHAP 值.
SHAP 概要圖如圖9 所示,其中y軸上的位置由特征決定,x軸上的位置由對(duì)應(yīng)特征的SHAP 值決定.圖9 的右側(cè)有一條表示特征值大小的線,顏色從藍(lán)色變?yōu)榧t色,代表特征的值從低到高.如果特征對(duì)模型輸出的影響隨著其值的變化而平滑變化,則該顏色也將具有平滑的漸變.重疊點(diǎn)在y軸方向上抖動(dòng),因此我們得到每個(gè)特征的SHAP 值的分布,這些特征是根據(jù)它們的重要性排序的.
圖9 不同任務(wù)終止?fàn)顟B(tài)的SHAP 概要圖Fig.9 SHAP summary chart of different task termination states
由圖9(a) 可知,對(duì)于終止?fàn)顟B(tài)為finish 的任務(wù),priority這一特征對(duì)模型非常重要,而且priority值較大時(shí),SHAP 值小于0,對(duì)模型產(chǎn)生負(fù)向影響,會(huì)降低輸出為finish 的概率.橫向來看,diskrequest這個(gè)特征,樣本分布較為分散,具有長長的右尾,對(duì)該類的預(yù)測產(chǎn)生正向影響.不難理解,在云平臺(tái)中,過高優(yōu)先級(jí)的任務(wù)需要被優(yōu)先調(diào)度,但在機(jī)器資源過度分配時(shí),其資源請(qǐng)求得不到滿足,容易失敗.
由圖9(b) 可知,對(duì)于終止?fàn)顟B(tài)為kill 的任務(wù),ramrequest對(duì)模型輸出的影響最大,較大的ramrequest,使得SHAP 值大于0,對(duì)模型產(chǎn)生正向影響,增加模型產(chǎn)生這種輸出的概率.資源請(qǐng)求值表示在任務(wù)運(yùn)行過程中,各請(qǐng)求被允許使用的最大值,當(dāng)任務(wù)的資源請(qǐng)求超過資源請(qǐng)求值時(shí),該任務(wù)可能會(huì)被終止或者受到限制.當(dāng)調(diào)度程序在計(jì)算機(jī)上過度提交資源時(shí),即使任務(wù)請(qǐng)求小于限制值,也會(huì)出現(xiàn)沒有足夠的資源滿足任務(wù)運(yùn)行時(shí)請(qǐng)求的情況,這種情況下,云平臺(tái)會(huì)殺死1 個(gè)或多個(gè)低優(yōu)先級(jí)任務(wù).
由圖9(c) 可知,對(duì)于終止?fàn)顟B(tài)為fail 的任務(wù),cpurequest,diskrequest對(duì)模型輸出的影響較大,對(duì)于較小的cpurequest,SHAP 值大于0,增加模型產(chǎn)生這種輸出的概率.在資源請(qǐng)求較少時(shí),任務(wù)在運(yùn)行過程中有很大概率會(huì)超過資源請(qǐng)求的界限,導(dǎo)致任務(wù)失敗.同時(shí),priority對(duì)類fail 的影響也很大,對(duì)于較高的priority,SHAP 值大于0,增加模型產(chǎn)生這種輸出的概率,即過高優(yōu)先級(jí)的任務(wù)更容易失敗.
由圖9(d) 可知,對(duì)于終止?fàn)顟B(tài)為evict 的任務(wù),cpurequest,diskrequest,pv_instructiondisk,rpv_Mcpu,ramrequest對(duì)模型輸出的影響較大.當(dāng)任務(wù)的實(shí)際需求超過計(jì)算機(jī)的處理能力時(shí),任務(wù)的資源請(qǐng)求得不到滿足,或磁盤所保存的任務(wù)數(shù)據(jù)丟失,都可能會(huì)導(dǎo)致任務(wù)被驅(qū)逐.
通過SHAP 摘要圖,可以直觀清晰地看出任務(wù)不同終止?fàn)顟B(tài)的影響因素,以及各個(gè)特征是如何影響任務(wù)的不同終止?fàn)顟B(tài)的,通過對(duì)可視化的結(jié)果進(jìn)行分析,找出特征與終止?fàn)顟B(tài)時(shí)間的映射機(jī)理.
本節(jié)分別構(gòu)建XGBoost、隨機(jī)森林、GBDT、樸素貝葉斯、決策樹、k近鄰算法、Adaboost 這7 種任務(wù)終止預(yù)測模型.由表2 的模型性能評(píng)價(jià)結(jié)果可得,除了樸素貝葉斯模型,其余6 個(gè)模型均具有較好的分類性能,其中,XGBoost 模型具有較高的Kappa 值(0.686)、ACC值(0.959 7) 、Macro-P值(0.956 4)、Macro-R值(0.957 2)、Macro-F1 值(0.953 1),并且其具有較低的海明距離值(0.057).綜合考慮各個(gè)指標(biāo)的最優(yōu)值,最終選擇XGBoost 模型作為任務(wù)終止?fàn)顟B(tài)預(yù)測模型,該模型計(jì)算簡單且易于理解,并且具有較強(qiáng)的可解釋性.
研究結(jié)果表明,與已有工作相比,在進(jìn)行特征選擇和處理的基礎(chǔ)上,本文所提的融合XGBoost 與SHAP 模型的可解釋性方法可以更好地對(duì)云平臺(tái)中任務(wù)的終止?fàn)顟B(tài)進(jìn)行預(yù)測.
大型異構(gòu)云計(jì)算平臺(tái)上,使用特征選擇結(jié)合模型可解釋性方法,構(gòu)建易于理解的任務(wù)終止?fàn)顟B(tài)預(yù)測模型.XGBoost 模型結(jié)合SHAP 方法,在保證模型預(yù)測性能較好的同時(shí),提高模型的可解釋性.從特征的角度出發(fā),對(duì)任務(wù)的不同終止?fàn)顟B(tài)進(jìn)行可解釋性研究,可視化特征與終止?fàn)顟B(tài)之間的關(guān)系,對(duì)于實(shí)驗(yàn)結(jié)果進(jìn)行了深入分析,找出特征是如何影響不同任務(wù)終止?fàn)顟B(tài)的,進(jìn)而探索出特征與任務(wù)終止?fàn)顟B(tài)之間的映射機(jī)理,實(shí)現(xiàn)對(duì)云平臺(tái)系統(tǒng)調(diào)度決策的優(yōu)化,提升云平臺(tái)的運(yùn)算性能.未來將繼續(xù)研究云邊融合中任務(wù)終止?fàn)顟B(tài)可解釋性方面的工作,探索更好的可解釋性方法,并對(duì)負(fù)載特征與任務(wù)終止?fàn)顟B(tài)之間的映射機(jī)理進(jìn)行更加深入的探索,增加本文所提方法的應(yīng)用范圍.
作者貢獻(xiàn)聲明:劉春紅提出方法思路和實(shí)驗(yàn)方案;李為麗負(fù)責(zé)完成實(shí)驗(yàn)并撰寫論文;焦?jié)嵦岢鎏卣鬟x擇意見;王敬雄協(xié)助完成實(shí)驗(yàn);張俊娜提出論文整體的修改意見.