裴忠一 劉 璘 王 晨 王建民
(大數(shù)據(jù)系統(tǒng)軟件國家工程研究中心(清華大學(xué)) 北京 100084)
(清華大學(xué)軟件學(xué)院 北京 100084)
(peizhyi@tsinghua.edu.cn)
近年來,數(shù)據(jù)驅(qū)動的機(jī)器學(xué)習(xí)技術(shù)在多個行業(yè)領(lǐng)域得到了成功應(yīng)用,包括圖像識別、語音識別、交通路況預(yù)測、自動駕駛、智能助手、用戶偏好預(yù)測和產(chǎn)品推薦等[1].在工業(yè)領(lǐng)域,如工業(yè)互聯(lián)網(wǎng)、工業(yè)大數(shù)據(jù)、工業(yè)機(jī)器學(xué)習(xí)等應(yīng)用也在工業(yè)數(shù)字化轉(zhuǎn)型的過程中獲得長足發(fā)展.應(yīng)用需求的持續(xù)驅(qū)動使智能軟件技術(shù)棧不斷發(fā)展、演變,形成了數(shù)據(jù)驅(qū)動的智能軟件方法與技術(shù)新分支,面向智能軟件需求分析方法的研究與實(shí)踐也得到了廣泛關(guān)注.一方面,軟件工程背景的系統(tǒng)開發(fā)人員習(xí)慣于沿用熟悉的開發(fā)方法,希望既有開發(fā)方式能適用于數(shù)據(jù)驅(qū)動的智能軟件開發(fā);另一方面,機(jī)器學(xué)習(xí)算法開發(fā)人員傾向于基于個人經(jīng)驗(yàn)選擇開發(fā)所需的技術(shù)棧,導(dǎo)致智能軟件的開發(fā)質(zhì)量和開發(fā)效率難以得到保證.上述原因使得我們在工業(yè)以及醫(yī)療等領(lǐng)域中運(yùn)用內(nèi)嵌機(jī)器學(xué)習(xí)模型的智能應(yīng)用時,可解釋性和穩(wěn)定性需求無法被滿足.
國內(nèi)外相關(guān)研究工作聚焦于數(shù)據(jù)驅(qū)動智能系統(tǒng)的需求分析方法和工程應(yīng)用案例,分別從研究與工程實(shí)踐角度,探討現(xiàn)有方法、流程、策略需要的改進(jìn),以支持智能軟件的研發(fā)效能提升[2].研究主題包括機(jī)器學(xué)習(xí)應(yīng)用的功能性需求定義、非功能性需求定義、質(zhì)量評價標(biāo)準(zhǔn)等.其中較為重要的非功能性指標(biāo)包括機(jī)器學(xué)習(xí)模型的可解釋性[3]、預(yù)測分析結(jié)果的公平性[4]、數(shù)據(jù)密集型系統(tǒng)的合規(guī)性等,成為智能軟件工程領(lǐng)域的焦點(diǎn).例如,歐盟委員會于2021 年提出了可信賴人工智能倫理導(dǎo)則[5].
可解釋性是智能軟件開發(fā)中重要的主題[6-8],一方面關(guān)注理解機(jī)器學(xué)習(xí)模型的工作原理,另一方面著重建立機(jī)器學(xué)習(xí)模型的行為與現(xiàn)有知識體系的關(guān)系.目前,對可解釋性的研究多以機(jī)器學(xué)習(xí)技術(shù)研究為主,分析機(jī)器學(xué)習(xí)模型與現(xiàn)有知識體系和數(shù)據(jù)特性的關(guān)聯(lián),從需求分析中針對性地提取可解釋性的依據(jù)是一項(xiàng)需要系統(tǒng)化研究的任務(wù).本文圍繞“可解釋性需求分析”所面臨的要點(diǎn)問題進(jìn)行文獻(xiàn)調(diào)研,構(gòu)建方法學(xué)框架.在本文中,“可解釋性需求”指對機(jī)器學(xué)習(xí)模型可解釋性的要求和理解機(jī)器學(xué)習(xí)模型的需求要素.“可解釋性需求分析”是對獲取機(jī)器學(xué)習(xí)模型可解釋性需求依據(jù)及設(shè)計(jì)決策依據(jù)的過程和方法.
智能軟件需求工程涉及人工智能、領(lǐng)域知識工程、軟件工程、數(shù)據(jù)科學(xué)及科學(xué)倫理等多方面的知識、方法和準(zhǔn)則.為了彌合不同知識領(lǐng)域之間的語義差距,需要建立跨領(lǐng)域的協(xié)作機(jī)制,將跨學(xué)科方法、經(jīng)驗(yàn)和工具整合到可持續(xù)迭代的研發(fā)過程中,形成規(guī)范化、系統(tǒng)化的需求分析,系統(tǒng)設(shè)計(jì)、驗(yàn)證與迭代優(yōu)化方法論.其中,可解釋性貫穿始終,始于需求分析,落實(shí)于技術(shù)實(shí)現(xiàn),最終反映在應(yīng)用效果的驗(yàn)證過程中.
本文采用綜述、歸納與案例分析相結(jié)合的研究方法.首先,從機(jī)器學(xué)習(xí)需求工程的文獻(xiàn)調(diào)研出發(fā),對文獻(xiàn)的背景、問題與挑戰(zhàn)進(jìn)行歸納,以及對其中的可解釋性需求的分析與處理加以總結(jié),得到面向機(jī)器學(xué)習(xí)應(yīng)用的需求工程研究路徑.在此基礎(chǔ)上,提出一種以可解釋性為核心的面向機(jī)器學(xué)習(xí)應(yīng)用開發(fā)的需求工程過程框架,并通過該框架指導(dǎo)數(shù)據(jù)驅(qū)動智能軟件開發(fā)中的可解釋性需求分析.
用戶對智能應(yīng)用的可解釋性需要驅(qū)動我們在問題上下文、領(lǐng)域知識和機(jī)器學(xué)習(xí)模型間建立顯式的聯(lián)系.本文以工業(yè)領(lǐng)域應(yīng)用場景為例,介紹智能應(yīng)用需求分析的主要步驟和領(lǐng)域知識體系.例如如何通過人類可理解的建模方式來定義業(yè)務(wù)對象的屬性和相關(guān)關(guān)系,如狀態(tài)機(jī)、業(yè)務(wù)流程圖、自動機(jī)、實(shí)體關(guān)系圖等,以及如何用工業(yè)自動化和控制領(lǐng)域的模型來分析實(shí)時反應(yīng)式系統(tǒng)等.在許多科學(xué)和工程相結(jié)合的領(lǐng)域中,有特定的數(shù)學(xué)、物理或化學(xué)反應(yīng)過程模型,如機(jī)械工程中的力學(xué)模型、化工過程中的化學(xué)反應(yīng)和工藝流程、建筑工程中的結(jié)構(gòu)力學(xué)模型等.這些模型表示為數(shù)學(xué)方程、符號系統(tǒng)、因果網(wǎng)絡(luò)、結(jié)構(gòu)或動態(tài)行為的3 維仿真建模等[9].領(lǐng)域知識的顯式表達(dá)是我們進(jìn)行工業(yè)應(yīng)用場景需求分析的重要基礎(chǔ),也是對系統(tǒng)設(shè)計(jì)進(jìn)行形式化需求驗(yàn)證的工具[10].
在軟件需求工程中,分析師采用多種需求建模方法指導(dǎo)需求工程師完成需求的獲取,并用來描述與領(lǐng)域知識體系相關(guān)的系統(tǒng)結(jié)構(gòu)和行為約束.例如,面向目標(biāo)的需求建模方法以用戶和設(shè)計(jì)者的意圖和目標(biāo)為起點(diǎn),然后通過目標(biāo)分解和逐級細(xì)化所需系統(tǒng)的成功條件和驗(yàn)收標(biāo)準(zhǔn)[11].在充分理解目標(biāo)后,需求工程師采用統(tǒng)一建模語言(UML)和系統(tǒng)建模語言的多種圖形化模型(SysML)[12]等工具,建立形式化、半形式化的業(yè)務(wù)模型,以此對領(lǐng)域知識體系所涉及的系統(tǒng)結(jié)構(gòu)和行為模型等開展設(shè)計(jì)工作.跨行業(yè)數(shù)據(jù)挖掘標(biāo)準(zhǔn)流程CR?SP-DM[13]將業(yè)務(wù)理解、數(shù)據(jù)理解作為數(shù)據(jù)驅(qū)動開發(fā)過程中2 個獨(dú)立的步驟.當(dāng)我們在系統(tǒng)解決方案中引入機(jī)器學(xué)習(xí)技術(shù),尤其是大數(shù)據(jù)驅(qū)動的深度學(xué)習(xí)技術(shù)時,數(shù)據(jù)理解對于模型可解釋性有重要影響.在需求分析階段,數(shù)據(jù)模型的定義與可視化分析是獲取可解釋性依據(jù)的重要手段.例如,對時序數(shù)據(jù)的周期性分析、對多個數(shù)據(jù)特征的相關(guān)性分析等.
我們調(diào)研了面向機(jī)器學(xué)習(xí)的需求工程相關(guān)文獻(xiàn)163 篇,詳見表1.文獻(xiàn)研究主題包括智能應(yīng)用軟件開發(fā)范式的演化、機(jī)器學(xué)習(xí)應(yīng)用研發(fā)所涉及的干系人角色和關(guān)注點(diǎn)、干系人之間的依賴關(guān)系和可解釋性需求來源.
Table 1 Theme Statistics of Research Literature表1 調(diào)研文獻(xiàn)的主題統(tǒng)計(jì)
目前,軟件開發(fā)與管理的典型范式以敏捷開發(fā)過程和開發(fā)運(yùn)維過程DevOps 為代表.作為數(shù)據(jù)驅(qū)動開發(fā)范式的早期里程碑,CR?SP-DM 將數(shù)據(jù)驅(qū)動的研發(fā)活動組織為6 個階段:業(yè)務(wù)理解、數(shù)據(jù)理解、數(shù)據(jù)準(zhǔn)備、建模、評估和部署.CR?SP-DM 提出了一個規(guī)范的工作步驟,建立了數(shù)據(jù)準(zhǔn)備、模型設(shè)計(jì)和評估的需求分析周期,形成了閉環(huán)迭代周期.CR?SP-ML(Q)擴(kuò)展了CR?SP-DM 以支持機(jī)器學(xué)習(xí)應(yīng)用程序的開發(fā),其特別關(guān)注機(jī)器學(xué)習(xí)模型的質(zhì)量評估,包括魯棒性、可擴(kuò)展性、可解釋性、模型復(fù)雜性和資源需求[28].
Vogelsang 等人[14]嘗試從數(shù)據(jù)科學(xué)家的視角定義機(jī)器學(xué)習(xí)系統(tǒng)的需求工程特征和挑戰(zhàn).他們指出了開發(fā)范式中的主要變化,包括新的機(jī)器學(xué)習(xí)的性能指標(biāo)和質(zhì)量要求等,如可解釋性、公平性和法律法規(guī)要求.Amershi 等人[15]研究了微軟公司的幾個典型機(jī)器學(xué)習(xí)項(xiàng)目,總結(jié)了人工智能(A?)應(yīng)用的重要挑戰(zhàn)和成功要素,其包括:可持續(xù)的端到端通路;數(shù)據(jù)收集、清洗整理和可訪問性;模型評估、進(jìn)化和部署等.然后,提出了一個9 階段的過程模型,以解決數(shù)據(jù)相關(guān)的問題,如數(shù)據(jù)收集、清洗和標(biāo)記等,以及模型相關(guān)的問題,如模型需求、特征工程、模型訓(xùn)練、模型評估、模型部署和模型監(jiān)控.其中,從模型評估和模型監(jiān)控可以向前反饋到最初的步驟,從模型訓(xùn)練也可以反饋到特征工程,如在表示學(xué)習(xí)中構(gòu)建反饋回路.
Nalchigar 等人[29]提出了一種目標(biāo)驅(qū)動的需求建模方法,將典型機(jī)器學(xué)習(xí)目標(biāo)與任務(wù)的匹配過程表示為業(yè)務(wù)分析的解決方案模式.該方法將業(yè)務(wù)決策目標(biāo)映射為幾個不同抽象層次的問題,然后通過將機(jī)器學(xué)習(xí)算法應(yīng)用于給定的數(shù)據(jù)集獲得洞察來回答這些問題.Washizaki 等人[110]回顧了機(jī)器學(xué)習(xí)系統(tǒng)的常用架構(gòu)模式和設(shè)計(jì)模式,內(nèi)容涵蓋多個機(jī)器學(xué)習(xí)子任務(wù),例如用于數(shù)據(jù)存儲的“數(shù)據(jù)湖模式”、用于數(shù)據(jù)分析的“原始數(shù)據(jù)提取模式”“業(yè)務(wù)邏輯與機(jī)器學(xué)習(xí)工作流的解耦模式”“事件驅(qū)動的微服務(wù)架構(gòu)模式”“機(jī)器學(xué)習(xí)模型的版本管理模式”等,是針對機(jī)器學(xué)習(xí)應(yīng)用程序設(shè)計(jì)過程中特定問題的可復(fù)用的局部解決方案.例如,機(jī)器學(xué)習(xí)應(yīng)用需要依從特定法律法規(guī)、特定領(lǐng)域的物理定律和化學(xué)反應(yīng)等.因此,模型可解釋性、科學(xué)倫理、公平性、領(lǐng)域定律的依從性設(shè)定與評估已成為機(jī)器學(xué)習(xí)應(yīng)用需求分析的重點(diǎn).
有研究者提出將科學(xué)知識與端到端機(jī)器學(xué)習(xí)相結(jié)合用于工程和環(huán)境相關(guān)研究,以及將機(jī)器學(xué)習(xí)與仿真相結(jié)合的混合建模方法[92].知識與機(jī)器學(xué)習(xí)的整合可以雙向進(jìn)行,可以使用機(jī)器學(xué)習(xí)增強(qiáng)因果關(guān)系不明顯的領(lǐng)域模型,也可以使用物理定律、專家規(guī)則和領(lǐng)域知識模型改善特定領(lǐng)域的學(xué)習(xí)模型[124].該方向也被稱為物理感知機(jī)器學(xué)習(xí)(physical-aware machine learning)[90]或者具有先驗(yàn)知識的機(jī)器學(xué)習(xí)(informed machine learning)[91].
在軟件開發(fā)范式演化涉及到的系列相關(guān)研究工作中,我們將調(diào)研文獻(xiàn)梳理分為11 個大類,如表1 所示.其中,數(shù)量占比超過10%的有4 類,分別是非功能性指標(biāo)、數(shù)據(jù)與知識融合、可解釋性、智能化應(yīng)用.非功能性指標(biāo)、數(shù)據(jù)與知識融合這2 個主題中包含大量可解釋性相關(guān)的具體研究議題.所以綜合來看,可解釋性是機(jī)器學(xué)習(xí)需求工程中非常重要的議題之一.
Sothilingam 等人[174]對3 個機(jī)器學(xué)習(xí)軟件項(xiàng)目組織進(jìn)行了基于案例的實(shí)證研究,并基于面向主體的i*框架建模分析了機(jī)器學(xué)習(xí)項(xiàng)目團(tuán)隊(duì)組織關(guān)系的差異性.一般軟件應(yīng)用需求分析涉及的主要角色有業(yè)務(wù)專家、需求分析師/產(chǎn)品經(jīng)理、軟件研發(fā)工程師.需求流程從定義業(yè)務(wù)問題開始,通過確定軟件使用的范圍來識別利益相關(guān)者.需求分析師通過與利益相關(guān)者,特別是與業(yè)務(wù)專家的溝通,在需求獲取和識別之后,進(jìn)一步建立需求規(guī)約.當(dāng)涉及到機(jī)器學(xué)習(xí)功能的需求時,數(shù)據(jù)科學(xué)家將參與需求分析.同時,領(lǐng)域?qū)<以诠I(yè)智能應(yīng)用研發(fā)中也發(fā)揮著不可替代的作用,因?yàn)轭I(lǐng)域知識對于理解應(yīng)用場景和業(yè)務(wù)目標(biāo)是必不可少的.
我們在表2 中總結(jié)了面向機(jī)器學(xué)習(xí)應(yīng)用的需求工程中不同角色關(guān)注的主要問題.表2 中列舉了檢索文獻(xiàn)中提及的多個挑戰(zhàn).其中,最受關(guān)注的需求問題包括可解釋性、可信度、風(fēng)險評估和穩(wěn)定性等.這4個問題中有相當(dāng)一部分源于機(jī)器學(xué)習(xí)模型,尤其是深度學(xué)習(xí)模型的黑盒形態(tài),再加上機(jī)器學(xué)習(xí)模型的使用中存在一定的不確定性,使得人們在安全攸關(guān)的場景中無法完全信賴機(jī)器學(xué)習(xí)模型的推理結(jié)果.除上述主要圍繞可解釋性的需求問題以外,業(yè)務(wù)專家的需求中還會考慮公平性問題,因?yàn)闄C(jī)器學(xué)習(xí)模型可以通過選擇有利于特定群體的訓(xùn)練數(shù)據(jù)集而引入偏差.以上這些問題成為人們在科研方向上探索的2 個主要動機(jī):一方面,研究如何突破機(jī)器學(xué)習(xí)技術(shù)瓶頸,讓技術(shù)本身具備可解釋性、穩(wěn)定性等特性;另一方面,研究如何建立相對完備的數(shù)據(jù)驅(qū)動智能軟件的需求分析方法論,從需求分析的方法和規(guī)范、多角色合作機(jī)制、更全面的質(zhì)量保障過程等出發(fā),將機(jī)器學(xué)習(xí)技術(shù)和軟件工程方法與技術(shù)相融合.其中第1 個方面的研究以機(jī)器學(xué)習(xí)專家為主,第2 個方面則以軟件工程專家為主.
Table 2 Focus and Challenges of Different Roles表2 不同角色的關(guān)注焦點(diǎn)及挑戰(zhàn)
表2 所述的不同角色的關(guān)注點(diǎn)存在一些共性,但也存在明顯的差異,這說明每個角色有其獨(dú)特的視角,也代表著在工作中要應(yīng)對不同的挑戰(zhàn).例如,對于業(yè)務(wù)專家來說,建立對相關(guān)技術(shù)的合理預(yù)期有非常重要的意義.要為業(yè)務(wù)目標(biāo)的設(shè)定提供更多依據(jù),避免盲目夸大機(jī)器學(xué)習(xí)技術(shù)的作用,引入不必要的技術(shù)風(fēng)險.對于需求工程師,除傳統(tǒng)的業(yè)務(wù)建模外,更關(guān)注隱私[186]、安全[187]、場景[51]和目標(biāo)演化[179]等問題,并提出了面向機(jī)器學(xué)習(xí)應(yīng)用的需求建模方法.軟件工程師要應(yīng)對的挑戰(zhàn)是適應(yīng)機(jī)器學(xué)習(xí)帶來的軟件組織和運(yùn)行方式的變化,尤其是模型的使用和維護(hù)、數(shù)據(jù)合規(guī)使用的問題.領(lǐng)域?qū)<覄t關(guān)注數(shù)據(jù)和知識的運(yùn)用是否恰當(dāng).而數(shù)據(jù)科學(xué)家更關(guān)注機(jī)器學(xué)習(xí)問題的定義和求解、數(shù)據(jù)質(zhì)量等問題.雖然關(guān)注重點(diǎn)不同,但問題的解決普遍依賴這些角色間的協(xié)同合作.
需求工程中有眾多關(guān)于如何獲取需求、對需求建模、規(guī)范需求、驗(yàn)證需求的方法、工具和最佳實(shí)踐,它們?yōu)榭山忉屝孕枨蟮耐诰蛱峁┝酥匾A(chǔ).例如:使用KAOS[187]進(jìn)行面向目標(biāo)的功能需求建模和分析,使用NFR[188]對非功能需求進(jìn)行分析,使用i*[189]對組織結(jié)構(gòu)進(jìn)行分析,用交互場景來描述用例和系統(tǒng)行為等.這些方法在工業(yè)智能應(yīng)用的需求分析過程中依舊發(fā)揮作用.例如,在早期需求分析階段,可以采用Volere 需求分析過程[190]進(jìn)行業(yè)務(wù)上下文理解、形成系統(tǒng)設(shè)計(jì)思想并進(jìn)行驗(yàn)證.
雖然每個角色都有自己獨(dú)特的關(guān)注點(diǎn)和視角,但在可解釋性需求的分析過程中,干系人之間也存在依賴關(guān)系.業(yè)務(wù)專家和領(lǐng)域?qū)<曳謩e承擔(dān)著“業(yè)務(wù)信息挖掘”和“領(lǐng)域信息挖掘”的工作,挖掘結(jié)果可作為可解釋性評估的依據(jù)和來源.數(shù)據(jù)科學(xué)家產(chǎn)出的算法或者機(jī)器學(xué)習(xí)模型通常是黑盒的,往往會引入可解釋性風(fēng)險.可解釋性的加強(qiáng)和減弱就體現(xiàn)在上述角色間的協(xié)作中,而傳統(tǒng)需求分析方法并沒有充分考慮相關(guān)問題.下面列舉在需求工程的多角色協(xié)作中關(guān)注的4 個焦點(diǎn)問題:
1)干系人共同設(shè)定合理的機(jī)器學(xué)習(xí)目標(biāo)與期望.這個問題涵蓋了非常廣泛的領(lǐng)域和眾多熱點(diǎn)研究主題,其中最受關(guān)注的是可解釋人工智能(explainable A?,XA?)[81,191].在這個問題上,需要業(yè)務(wù)專家、需求工程師、領(lǐng)域?qū)<?、?shù)據(jù)科學(xué)家等角色之間進(jìn)行有效溝通[3,51].首先是在業(yè)務(wù)理解階段,需要多個角色共同來設(shè)定被業(yè)務(wù)專家認(rèn)可的、達(dá)成可解釋性的最終目標(biāo).同時,需求工程師則會將可解釋性與可信性作為分析和評估候選模型的參照依據(jù),保證可解釋性需求不會引入不可接受的負(fù)面影響,例如過高的成本、過低的性能需求等.然后,數(shù)據(jù)科學(xué)家則要負(fù)責(zé)對候選方案進(jìn)行數(shù)據(jù)層面的可解釋性分析,尤其對于黑盒形態(tài)的機(jī)器學(xué)習(xí)模型,需要提供符合可解釋性標(biāo)準(zhǔn)的預(yù)測結(jié)果.最終,解釋的正確性需要領(lǐng)域?qū)<覅⑴c研判.
2)運(yùn)用領(lǐng)域知識提升機(jī)器學(xué)習(xí)模型的可解釋性.領(lǐng)域知識可以是物理規(guī)律、邏輯規(guī)則或知識圖譜,這些知識都為機(jī)器學(xué)習(xí)模型的可解釋性提供了依據(jù).在需求分析階段,這些依據(jù)應(yīng)該作為更細(xì)粒度的需求被提出,進(jìn)而指導(dǎo)技術(shù)路線的決策.將這些約束、規(guī)則、關(guān)系等用于引導(dǎo)機(jī)器學(xué)習(xí)的特征工程、網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)、損失函數(shù)設(shè)計(jì)中,可以顯著增強(qiáng)機(jī)器學(xué)習(xí)與領(lǐng)域知識的聯(lián)系.但為了解決這個問題,需要業(yè)務(wù)專家、領(lǐng)域?qū)<液蛿?shù)據(jù)科學(xué)家之間的密切合作[12,22,104].
3)結(jié)合領(lǐng)域特征設(shè)計(jì)適應(yīng)機(jī)器學(xué)習(xí)應(yīng)用的驗(yàn)證過程.將可解釋性落實(shí)到技術(shù)路線中以后,就要考慮如何驗(yàn)證可解釋性被正確地實(shí)現(xiàn).由于軟件系統(tǒng)和機(jī)器學(xué)習(xí)系統(tǒng)之間的架構(gòu)差異,現(xiàn)有的軟件驗(yàn)證方法不足以保障機(jī)器學(xué)習(xí)應(yīng)用的可解釋性需求的驗(yàn)證.利用領(lǐng)域知識,可以將機(jī)器學(xué)習(xí)模型的驗(yàn)證過程分為幾個階段,通過模型可視化、自動化測試、領(lǐng)域?qū)<掖_認(rèn)、用戶反饋等方式逐步展開驗(yàn)證,在有效驗(yàn)證可解釋性的同時降低驗(yàn)證成本[20,159].
4)設(shè)計(jì)以數(shù)據(jù)流為核心的軟件架構(gòu),確保機(jī)器學(xué)習(xí)的數(shù)據(jù)需求被滿足.在數(shù)據(jù)驅(qū)動的機(jī)器學(xué)習(xí)模型開發(fā)中,架構(gòu)設(shè)計(jì)必須考慮包括數(shù)據(jù)質(zhì)量、數(shù)據(jù)處理、數(shù)據(jù)隱私等問題.其中,就需要建立對數(shù)據(jù)的正確認(rèn)識.數(shù)據(jù)的可解釋性依據(jù)在這一過程中發(fā)揮著重要作用.數(shù)據(jù)從采集到標(biāo)注,再到訓(xùn)練和驗(yàn)證,要經(jīng)歷一系列加工流程,為處理大數(shù)據(jù)量需考慮自動化解決方案,但同時也增加了數(shù)據(jù)個性化特征處理、數(shù)據(jù)質(zhì)量保障的難度.數(shù)據(jù)的不斷變化,也給正確理解數(shù)據(jù)、使用數(shù)據(jù)帶來挑戰(zhàn).這需要軟件工程師和數(shù)據(jù)科學(xué)家協(xié)作,在不降低模型效果和可解釋性特點(diǎn)的前提下實(shí)現(xiàn)高質(zhì)量、高效率的數(shù)據(jù)密集的應(yīng)用軟件架構(gòu)[181,192-193].
基于文獻(xiàn)調(diào)研和綜述分析結(jié)果,本文歸納總結(jié)了2 種有助于機(jī)器學(xué)習(xí)應(yīng)用需求分析的技術(shù)方向,并圍繞其涉及的可解釋性展開討論.
數(shù)據(jù)驅(qū)動的智能軟件需求工程需要跨越5 個知識領(lǐng)域:將給定用例映射到相應(yīng)的機(jī)器學(xué)習(xí)任務(wù),構(gòu)建模型所需要的數(shù)據(jù)流,完成機(jī)器學(xué)習(xí)模型的訓(xùn)練,評估模型以確認(rèn)滿足業(yè)務(wù)需求,并將模型部署為軟件服務(wù).此外,解決方案的設(shè)計(jì)原則被表示為一個上下文模型,模型中定義數(shù)據(jù)的狀態(tài)、動機(jī)和技術(shù)約束.解決方案模式提供了數(shù)據(jù)驅(qū)動的智能需求或設(shè)計(jì)決策的多視角綜合的視圖,但在使用中還需要設(shè)計(jì)一個引導(dǎo)需求工程師按步驟推進(jìn)的過程指南.該方法提供了機(jī)器學(xué)習(xí)技術(shù)的選擇依據(jù):首先,拆解后的具體業(yè)務(wù)問題可以較為直觀地映射為機(jī)器學(xué)習(xí)問題;其次,在問題分解中考慮機(jī)理知識和業(yè)務(wù)上下文的影響因素,可以將一些可解釋性信息融入到方案選擇中;再進(jìn)一步,通過分析數(shù)據(jù)現(xiàn)狀,可以讓數(shù)據(jù)中蘊(yùn)含的規(guī)律、分布特點(diǎn)等作為可解釋性信息輔助機(jī)器學(xué)習(xí)技術(shù)的選擇.
該方案適合業(yè)務(wù)邏輯較復(fù)雜、層次清晰、可拆分為多個具體業(yè)務(wù)問題的用例,并能夠針對各個業(yè)務(wù)問題提出明確的輸入和輸出.相反,如果業(yè)務(wù)邏輯較為簡單,或者難以拆分為輸入和輸出明確的子問題,則不適合采用該方案.但是機(jī)器學(xué)習(xí)應(yīng)用程序的開發(fā)通常障礙重重,失敗的原因不勝枚舉.例如,較差的數(shù)據(jù)條件、不正確的超參數(shù)設(shè)置或算法選擇不合理等.因此,需要定義好解決方案的評估標(biāo)準(zhǔn),包括性能指標(biāo)、置信度、穩(wěn)定性、訓(xùn)練成本等.
圖1 概述了從用例到機(jī)器學(xué)習(xí)算法映射過程中需要考慮的業(yè)務(wù)規(guī)則、機(jī)理、數(shù)據(jù)、算法等問題.其中機(jī)理業(yè)務(wù)上下文背后蘊(yùn)含了可解釋性的邏輯部分,表現(xiàn)為因果關(guān)系、規(guī)則約束和生活常識等.而數(shù)據(jù)現(xiàn)狀中蘊(yùn)含了可解釋性的數(shù)據(jù)部分,包括數(shù)據(jù)的頻域特征、值域范圍以及特征之間的相關(guān)性等.上述可解釋性因素都將在選擇解決方案時發(fā)揮重要作用.從用例逐步分解到數(shù)據(jù)驅(qū)動的機(jī)器學(xué)習(xí)需求必須考慮邏輯和數(shù)據(jù)2 方面的多種可解釋性要素的影響,從而提供更多參考依據(jù),使得機(jī)器學(xué)習(xí)模型可以按照預(yù)期發(fā)揮作用.
Fig.1 Examples of mapping from use cases to machine learning tasks圖1 從用例到機(jī)器學(xué)習(xí)任務(wù)的映射示例
在大多數(shù)工業(yè)應(yīng)用的開發(fā)中,領(lǐng)域知識起著關(guān)鍵作用.當(dāng)談到面向領(lǐng)域的需求工程案例時,領(lǐng)域知識對于需求工程師理解業(yè)務(wù)上下文和業(yè)務(wù)目標(biāo)至關(guān)重要.例如,在安全工程領(lǐng)域,有多種用于評估潛在危害事件的方法和工具,如危險和可操作性分析(hazard and operability analysis,HAZOP)[194]、故障模式和影響分析(failure modes and effects analysis,FMEA)[195]、影響和關(guān)鍵性分析(effects and criticality analysis,FMECA)[196]、保護(hù)層分析(layer of protection analysis,LOPA)[197]、故障樹分析(fault-tree analysis,FTA)[198]和事件樹分析(event tree analysis,ETA)[199]等.這些方法被廣泛應(yīng)用于化工、制藥和核電安全工程領(lǐng)域的研究與實(shí)踐,領(lǐng)域從業(yè)者依此構(gòu)建信息系統(tǒng)來評估和管理潛在的事故風(fēng)險.近年來,相關(guān)的領(lǐng)域分析工具開發(fā)商也在對現(xiàn)有功能進(jìn)行智能化擴(kuò)展.為構(gòu)建可用的機(jī)器學(xué)習(xí)應(yīng)用,機(jī)器學(xué)習(xí)與領(lǐng)域知識的融合必不可少,其中有些依靠領(lǐng)域中的數(shù)據(jù)特性,而更顯著的結(jié)合要依靠領(lǐng)域中的先驗(yàn)知識.單純的機(jī)器學(xué)習(xí)模型開發(fā)過程,僅將數(shù)據(jù)輸入機(jī)器學(xué)習(xí)數(shù)據(jù)流,經(jīng)過調(diào)參驗(yàn)證等生成模型,未在方法論上給特定領(lǐng)域知識留出空間.因此,我們需要新的機(jī)器學(xué)習(xí)模型設(shè)計(jì)方法,將知識納入機(jī)器學(xué)習(xí)的開發(fā)過程中.Von Rueden 等人[91]完成了知識與機(jī)器學(xué)習(xí)融合的綜述,描述了不同的知識表示,如代數(shù)方程、邏輯規(guī)則和模擬結(jié)果如何用于機(jī)器學(xué)習(xí).該工作提出了4 個集成方向,包括訓(xùn)練數(shù)據(jù)生成、假設(shè)集定義、學(xué)習(xí)算法改進(jìn)和最終假設(shè)檢查.該工作描述了30 多種不同知識和機(jī)器學(xué)習(xí)的整合策略.例如,科學(xué)知識可以作為深度學(xué)習(xí)模型損失函數(shù)的設(shè)計(jì)約束.基于圖拉普拉斯矩陣的正則化表示可以約束相關(guān)變量在模型預(yù)測中的表現(xiàn).圖2 中給出知識與機(jī)器學(xué)習(xí)融合的可能方式.
Fig.2 Examples of integration method of knowledge and machine learning圖2 知識與機(jī)器學(xué)習(xí)融合方式舉例
圖2 的方案適用于領(lǐng)域知識有多種表示形式,甚至其形式化程度也不同的場景.例如,數(shù)學(xué)方程表示足夠具體,因此可以直接用于需求分析和開發(fā).有的機(jī)理知識雖然是明確的,但在分析應(yīng)用需求時,需要業(yè)務(wù)專家與領(lǐng)域?qū)<揖C合考慮業(yè)務(wù)上下文和機(jī)理知識的關(guān)聯(lián)性.另外,業(yè)務(wù)規(guī)則也是極為常見的知識表達(dá)形式,廣泛存在于工業(yè)應(yīng)用中.還有一些特殊形式的知識則以不同的方式發(fā)揮著各自的特殊作用.例如,知識圖用于表示因果關(guān)系,領(lǐng)域?qū)<业慕?jīng)驗(yàn)可以用于特征選擇和模型檢驗(yàn).同時,領(lǐng)域知識通常是不完備、有缺陷的.對于可靠性及實(shí)效性較差的領(lǐng)域知識或復(fù)雜多變的業(yè)務(wù)規(guī)則,則不建議與機(jī)器學(xué)習(xí)技術(shù)融合運(yùn)用,以免引入更多不確定性,導(dǎo)致技術(shù)方案難以評價和改進(jìn).同樣地,可以通過機(jī)器學(xué)習(xí)模擬或者修正領(lǐng)域知識,持續(xù)提升對領(lǐng)域的認(rèn)知,其可以看做通過機(jī)器學(xué)習(xí)技術(shù)實(shí)現(xiàn)的從數(shù)據(jù)中挖掘領(lǐng)域知識的方法.對于這種從數(shù)據(jù)加工得到的領(lǐng)域知識,其可解釋性較弱,在使用時并不能完全等同于原有的領(lǐng)域知識,但可以降低人工數(shù)據(jù)分析的難度.典型場景如機(jī)器學(xué)習(xí)輔助數(shù)據(jù)標(biāo)注,以及機(jī)器學(xué)習(xí)輔助天氣預(yù)報(bào)等.
但同時知識與機(jī)器學(xué)習(xí)的融合過程需要建立知識、規(guī)則、數(shù)據(jù)間的平衡,通過該平衡降低機(jī)器學(xué)習(xí)技術(shù)的風(fēng)險,加強(qiáng)技術(shù)方案的可解釋性.但如何達(dá)到高效、適度的平衡需要較多專家經(jīng)驗(yàn),融合方案往往需要具體問題具體分析,尚無普適的經(jīng)驗(yàn),過于偏重知識和規(guī)則會限制通用機(jī)器學(xué)習(xí)技術(shù)發(fā)揮價值.為實(shí)現(xiàn)更好的知識融合運(yùn)用,機(jī)器學(xué)習(xí)技術(shù)的發(fā)展需要深入應(yīng)用領(lǐng)域,在應(yīng)用領(lǐng)域中定義新問題,從而形成面向特定領(lǐng)域的機(jī)器學(xué)習(xí)方法論,建立領(lǐng)域內(nèi)的知識融合技術(shù).
本節(jié)提出一種可解釋性需求分析過程框架,旨在明確機(jī)器學(xué)習(xí)應(yīng)用開發(fā)中可解釋性需求分析的作用,并對其中涉及的重點(diǎn)問題展開討論.
通過對相關(guān)文獻(xiàn)的調(diào)研與分析,我們將可解釋性需求工程執(zhí)行過程歸納為6 個階段及其對應(yīng)的產(chǎn)出物,分別為業(yè)務(wù)上下文、技術(shù)方案、數(shù)據(jù)需求、技術(shù)指標(biāo)、風(fēng)險指標(biāo)、業(yè)務(wù)目標(biāo)等.每個階段通過前后步驟相互銜接,形成基于多主體協(xié)作的面向機(jī)器學(xué)習(xí)應(yīng)用的需求工程分析過程,如圖3 所示.在本節(jié)框架中,可解釋性需求被拆分為邏輯、數(shù)據(jù)2 個方面,在每個方面上要通過需求分析得到相應(yīng)的可解釋性依據(jù),并用于業(yè)務(wù)建模、技術(shù)路線決策等后續(xù)工作.其中,業(yè)務(wù)上下文中包含了可解釋性需求的邏輯依據(jù),通常體現(xiàn)為在問題描述中加入因果關(guān)系、邏輯約束等.在數(shù)據(jù)需求中包含了可解釋性需求的數(shù)據(jù)依據(jù),其可能體現(xiàn)為根據(jù)機(jī)理知識對數(shù)據(jù)特性提出假設(shè),也可體現(xiàn)為通過實(shí)際數(shù)據(jù)的觀測結(jié)果形成的一些數(shù)據(jù)特性的總結(jié)歸納.上述可解釋性依據(jù)會用于建立業(yè)務(wù)建模、增加需求約束條件、引導(dǎo)技術(shù)方案的設(shè)計(jì)等.
Fig.3 Process framework of collaborative requirements engineering for machine learning圖3 面向機(jī)器學(xué)習(xí)的協(xié)作需求工程過程框架
我們對框架中需要多角色協(xié)作的步驟做了標(biāo)注,同時框架中也包含一些由單一角色獨(dú)立完成的工作.本文重點(diǎn)關(guān)注該框架中需要多角色協(xié)作的任務(wù).
對問題的形式化描述是連接業(yè)務(wù)專家和數(shù)據(jù)科學(xué)家之間知識鴻溝的橋梁.不同領(lǐng)域的業(yè)務(wù)問題,通常有慣用的需求表示形式,例如文字描述、流程圖、用例集合、示意圖等.原始需求通常難以準(zhǔn)確地轉(zhuǎn)化為標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)問題.
例如,在本文的案例中,需求可以簡單地表達(dá)為“通過計(jì)算機(jī)視覺技術(shù)識別視頻中的挖掘機(jī)完成了多少次裝載操作”.雖然語義上很清楚,但我們并不能找到一個直接解決這個問題的機(jī)器學(xué)習(xí)模型.究其原因包括2 方面:一方面在于實(shí)際應(yīng)用中的業(yè)務(wù)問題千變?nèi)f化,很可能無法在輸入和輸出上適配已知的機(jī)器學(xué)習(xí)標(biāo)準(zhǔn)問題定義;另一方面,很多機(jī)器學(xué)習(xí)標(biāo)準(zhǔn)問題的求解技術(shù)尚未成熟,需要盡可能將業(yè)務(wù)問題轉(zhuǎn)化為相對成熟的技術(shù)可解決的問題.業(yè)務(wù)問題的形式化,就是一個從“泛泛而談”到“精準(zhǔn)定位”的過程,不斷壓縮業(yè)務(wù)問題的不確定性空間,不斷提升機(jī)器學(xué)習(xí)技術(shù)應(yīng)用的可行性.
業(yè)務(wù)專家首先提出一個完整的業(yè)務(wù)問題,盡可能全面地定義業(yè)務(wù)問題的上下文.數(shù)據(jù)科學(xué)家將試圖從業(yè)務(wù)問題中抽離出1 個或多個標(biāo)準(zhǔn)的技術(shù)問題.典型的技術(shù)問題表達(dá)形式包括數(shù)學(xué)方程、邏輯規(guī)則和機(jī)器學(xué)習(xí)范式等.一旦技術(shù)問題確定下來,數(shù)據(jù)科學(xué)家就可以利用機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘等技術(shù)設(shè)計(jì)問題的解決方案.然而,在復(fù)雜場景中,問題形式化面臨著諸多挑戰(zhàn).因?yàn)樵陧?xiàng)目早期,對需求的認(rèn)知和對領(lǐng)域知識的掌握通常是不完整的,這使得我們很難清楚地識別需求的邊界、技術(shù)的約束與局限、定性定量評價指標(biāo)的選擇等.
一次問題形式化當(dāng)然不能準(zhǔn)確捕捉全部的需求細(xì)節(jié),一旦該工作不到位,遺漏影響問題定義的關(guān)鍵因素,將很可能導(dǎo)致后續(xù)研發(fā)工作失敗.這就需要業(yè)務(wù)專家、領(lǐng)域?qū)<液蛿?shù)據(jù)科學(xué)家充分溝通協(xié)作,在業(yè)務(wù)上下文中不斷挖掘,為問題形式化提供更多參考依據(jù),包括問題的作用域、領(lǐng)域知識、業(yè)務(wù)規(guī)則、常識、功能目標(biāo)和細(xì)節(jié)等.
通過引入機(jī)理知識、業(yè)務(wù)規(guī)則、常識等信息,作為需求的邏輯可解釋性依據(jù),可以在更大程度上保證問題定義的完整性,降低問題定義出錯的風(fēng)險.最終建立從用例到機(jī)器學(xué)習(xí)任務(wù)的映射,如圖1 所示,其中邏輯可解釋性依據(jù)往往與業(yè)務(wù)上下文緊密結(jié)合,輔助建立業(yè)務(wù)模型,加深對業(yè)務(wù)的理解.
該工作并不是單純依靠業(yè)務(wù)專家和領(lǐng)域?qū)<也粩嗵峁┬碌男畔ⅲ嗟厥切枰獢?shù)據(jù)科學(xué)家根據(jù)技術(shù)問題的不確定性定向地引導(dǎo)上下文的挖掘,才能讓需求分析過程更有針對性.該工作涉及到數(shù)據(jù)科學(xué)與多個其他學(xué)科知識的交叉運(yùn)用,詳見圖2 所示的過程.
上下文挖掘幫助我們更好地完成問題形式化,但要進(jìn)一步選擇合適的機(jī)器學(xué)習(xí)技術(shù)解決方案,就必須對數(shù)據(jù)進(jìn)行充分的需求分析.實(shí)際場景中所具備的數(shù)據(jù)條件是技術(shù)方案可行性的重要評判依據(jù),典型的數(shù)據(jù)條件包括數(shù)據(jù)量大小、數(shù)據(jù)集完備程度、標(biāo)注質(zhì)量高低、數(shù)據(jù)分布假設(shè)是否滿足等.業(yè)界實(shí)踐表明,在機(jī)器學(xué)習(xí)應(yīng)用研發(fā)過程中,約80%的時間用于數(shù)據(jù)準(zhǔn)備過程.上述比例并不包括需求分析所需時間,而這部分時間通常占研發(fā)所需時間的10%~20%,但足以說明數(shù)據(jù)理解和需求分析的嚴(yán)謹(jǐn)性和充分性,是避免造成數(shù)據(jù)處理過程反復(fù),甚至影響模型的效果,帶來的額外研發(fā)成本的重要保證.數(shù)據(jù)可解釋性需求的分析能夠在很大程度上排除對數(shù)據(jù)的錯誤認(rèn)識,幫助深入理解數(shù)據(jù)和正確處理數(shù)據(jù).典型數(shù)據(jù)可解釋性依據(jù)是對數(shù)據(jù)機(jī)理特性、統(tǒng)計(jì)特性的刻畫.
與上下文挖掘工作類似,數(shù)據(jù)需求分析也是一個多角色協(xié)同的過程.一方面,業(yè)務(wù)專家負(fù)責(zé)采集數(shù)據(jù)、標(biāo)注數(shù)據(jù),領(lǐng)域?qū)<姨峁┡c數(shù)據(jù)相關(guān)的領(lǐng)域知識.另一方面,數(shù)據(jù)科學(xué)家要結(jié)合數(shù)據(jù)條件選擇適用的技術(shù)方案,并提出待驗(yàn)證的數(shù)據(jù)假設(shè).同時,領(lǐng)域?qū)<液蜆I(yè)務(wù)專家還需要配合數(shù)據(jù)科學(xué)家完成數(shù)據(jù)假設(shè)的驗(yàn)證.更復(fù)雜的情形是,業(yè)務(wù)專家需要在數(shù)據(jù)假設(shè)中引入業(yè)務(wù)目標(biāo)需要關(guān)心的倫理假設(shè)、公平性假設(shè)等.這些數(shù)據(jù)條件將共同制約技術(shù)方案的選擇.其中通過驗(yàn)證的部分即可作為數(shù)據(jù)可解釋性依據(jù),為最終成果的可解釋性評價提供支持.
在模型研發(fā)中,需要針對上述工作獲得的邏輯可解釋性依據(jù)、數(shù)據(jù)可解釋性依據(jù)進(jìn)行設(shè)計(jì),包括引入正則化約束、調(diào)整損失函數(shù),甚至可能進(jìn)一步拆解問題定義,形成由多個機(jī)器學(xué)習(xí)模型級聯(lián)組成的復(fù)雜解決方案.
機(jī)器學(xué)習(xí)模型與系統(tǒng)需要滿足的技術(shù)指標(biāo)由數(shù)據(jù)科學(xué)家根據(jù)技術(shù)方案提出,用以定量化評估方案的性能表現(xiàn)、執(zhí)行效率等.但技術(shù)指標(biāo)常常不易被用戶理解,換言之,技術(shù)指標(biāo)并不直接表達(dá)需求方關(guān)心的業(yè)務(wù)目標(biāo).同時,在缺少可解釋性依據(jù)的情況下,評估指標(biāo)的可解釋性也無從談起,大大影響模型適應(yīng)能力和用戶認(rèn)可度.所以,從技術(shù)指標(biāo)向用戶可以理解的風(fēng)險指標(biāo)進(jìn)行轉(zhuǎn)化,從定量或者定性的角度呼應(yīng)需求分析中得到的邏輯可解釋性依據(jù)和數(shù)據(jù)可解釋性依據(jù),在生產(chǎn)實(shí)踐中具有重要意義.基于可解釋性依據(jù)定義評估指標(biāo),將為軟件帶來更大的可靠性,幫助最終用戶加深對需求內(nèi)涵和應(yīng)用效果的理解.
指標(biāo)的轉(zhuǎn)換需要數(shù)據(jù)科學(xué)家和需求工程師雙向溝通合作.一方面,數(shù)據(jù)科學(xué)家從技術(shù)視角提供相關(guān)的標(biāo)準(zhǔn)技術(shù)指標(biāo),并根據(jù)需求工程師的建議加以補(bǔ)充和調(diào)整.另一方面,需求工程師從業(yè)務(wù)視角提出用戶期待的風(fēng)險指標(biāo),并在數(shù)據(jù)科學(xué)家的幫助下建立風(fēng)險指標(biāo)和技術(shù)指標(biāo)的關(guān)聯(lián),進(jìn)一步提出需要補(bǔ)充或調(diào)整的評估內(nèi)容.尤其針對需求分析中的可解釋性依據(jù)的部分,應(yīng)盡可能設(shè)立對應(yīng)的評估指標(biāo),以全面地考量技術(shù)方案的可靠性.
在需求工程師的主導(dǎo)下,根據(jù)4.1~4.4 節(jié)工作的結(jié)果得到最終業(yè)務(wù)目標(biāo).該工作的復(fù)雜程度取決于協(xié)同4.3 節(jié)工作中的需求分析結(jié)果,形成協(xié)調(diào)一致的、恰當(dāng)?shù)?、滿足業(yè)務(wù)要求的完整需求定義.在這個過程中,既要根據(jù)業(yè)務(wù)需要調(diào)整風(fēng)險指標(biāo)及其驗(yàn)證標(biāo)準(zhǔn),又要根據(jù)技術(shù)的成熟度和作用域調(diào)整業(yè)務(wù)目標(biāo)的預(yù)期范圍,在保持技術(shù)方案與業(yè)務(wù)需求一致的同時,合理評估技術(shù)現(xiàn)狀,以保證方案具有足夠高的可行性.其中的典型問題包括:“哪些業(yè)務(wù)目標(biāo)不在機(jī)器學(xué)習(xí)范圍內(nèi)”“風(fēng)險指標(biāo)支撐了哪些業(yè)務(wù)目標(biāo)”“業(yè)務(wù)目標(biāo)的數(shù)據(jù)條件有哪些”等.該工作由需求工程師主導(dǎo),但仍需業(yè)務(wù)專家、領(lǐng)域?qū)<?、?shù)據(jù)科學(xué)家、軟件工程師密切配合,使得相關(guān)角色明晰各自職責(zé),建立互相支撐的協(xié)作關(guān)系,統(tǒng)一各方的工作目標(biāo).
可解釋性需求分析過程框架可指導(dǎo)各個角色明確機(jī)器學(xué)習(xí)應(yīng)用的需求分析中與可解釋性相關(guān)的工作.如表3 所示,框架涉及業(yè)務(wù)專家、領(lǐng)域?qū)<摇?shù)據(jù)科學(xué)家之間的協(xié)作,但考慮到應(yīng)用開發(fā)者和最終用戶在可解釋性上的重要作用,將這2 個角色一起列入表3 中.我們以工業(yè)、氣象領(lǐng)域的機(jī)器學(xué)習(xí)應(yīng)用為參考,總結(jié)歸納出各個角色關(guān)注的邏輯可解釋性依據(jù)、數(shù)據(jù)可解釋依據(jù),以及在可解釋性建模及評價上通常會關(guān)注的問題.其中,邏輯可解釋性依據(jù)、數(shù)據(jù)可解釋依據(jù)給建模階段提供了重要的參考,也可以作為可解釋性的評價要素.由此可見,可解釋性并不是單純的機(jī)器學(xué)習(xí)技術(shù)問題,而是涉及了業(yè)務(wù)規(guī)則、領(lǐng)域知識、數(shù)據(jù)特性、機(jī)器學(xué)習(xí)技術(shù)、應(yīng)用開發(fā)等多個方面的需求分析對象.通過在需求分析中引入可解釋性需求要素,可以增強(qiáng)各個角色對智能軟件需求內(nèi)容的理解,保障需求分析結(jié)果的完整性、可靠性.
Table 3 Interpretability Related Steps of Each Role’s Participation表3 各個角色參與的可解釋性相關(guān)步驟
我們進(jìn)一步詳細(xì)列舉圖3 框架主要步驟的產(chǎn)出內(nèi)容,并就產(chǎn)出內(nèi)容的合規(guī)性提出若干要求,如表4所示.從表4 中可以看出,本文所提出的需求分析過程框架遵循機(jī)器學(xué)習(xí)軟件開發(fā)的基本過程,同時將邏輯可解釋性要素、數(shù)據(jù)可解釋性要素融入到需求分析的步驟中.其中,明確將可解釋性作為需求分析中的核心要素,以及作為需求分析的產(chǎn)出,并在最終的評價指標(biāo)中要求以可解釋性依據(jù)作為必要的評價手段,為機(jī)器學(xué)習(xí)需求分析提供了可操作的參考依據(jù).
Table 4 Output Content of Each Step of the Demand Analysis Framework表4 需求分析框架各步驟的產(chǎn)出內(nèi)容
面向機(jī)器學(xué)習(xí)應(yīng)用的需求分析在不同的項(xiàng)目上下文環(huán)境中回答不同的重點(diǎn)問題.根據(jù)分析角色和視角的不同,需要獲取和分析的需求是不同的.數(shù)據(jù)科學(xué)家的主要目標(biāo)是為給定任務(wù)準(zhǔn)備合適的算法和模型,設(shè)計(jì)一個能夠適應(yīng)場景的解決方案,并圍繞這一目標(biāo)挖掘可解釋性依據(jù).而需求工程師更關(guān)注整體需求與業(yè)務(wù)目標(biāo)的一致性,以及可行性、可靠性等問題.領(lǐng)域?qū)<覄t更傾向于找到更準(zhǔn)確的領(lǐng)域知識表達(dá)形式,積累可復(fù)用的領(lǐng)域知識和經(jīng)驗(yàn),以及挖掘更嚴(yán)格的可解釋性驗(yàn)證手段.上述不同角色所面對的問題中,仍然有很多場景沒有被充分討論,還潛藏一些重要問題需要研究者們展開更深入的研究.當(dāng)然,很多項(xiàng)目中,上述角色可由一人擔(dān)當(dāng)或多人同時擔(dān)任.下面列舉3 個典型的多角色協(xié)同解決的需求分析難題:
1)需求模型如何適應(yīng)場景動態(tài)變化,建立可持續(xù)的機(jī)器學(xué)習(xí)范式.因?yàn)閷?shí)際生產(chǎn)活動處于動態(tài)變化的場景中,數(shù)據(jù)現(xiàn)狀會發(fā)生變化,甚至機(jī)理知識和業(yè)務(wù)規(guī)則也會發(fā)生演化.這將影響可解釋性依據(jù)的可靠性.在這種情況下,各個角色的協(xié)作需要考慮更多因素,尤其是環(huán)境變化帶來的不確定性因素.
2)如何有效地對項(xiàng)目進(jìn)行可靠的成本估算.在傳統(tǒng)的軟件開發(fā)中,成本估算是必不可少的.然而,機(jī)器學(xué)習(xí)技術(shù)給這項(xiàng)工作帶來了很多挑戰(zhàn).意外引入的成本可能來自過程中的任何步驟,包括數(shù)據(jù)收集、訓(xùn)練、模型部署和服務(wù),以及模型的頻繁更新等.在成本估算中,可解釋性依據(jù)由于其對技術(shù)選型的支撐作用,能夠有效幫助降低技術(shù)成本的評估難度.
3)如何實(shí)現(xiàn)基于仿真原型的設(shè)計(jì)以提高方案設(shè)計(jì)效率.仿真模擬是分析復(fù)雜場景的重要手段,有助于完成可解釋性依據(jù)的驗(yàn)證,進(jìn)一步提高機(jī)器學(xué)習(xí)方案的設(shè)計(jì)效率.在游戲、仿真實(shí)驗(yàn)等領(lǐng)域的推動下,物理引擎技術(shù)已經(jīng)較為成熟.但面對復(fù)雜的工業(yè)場景,在涉及化學(xué)、機(jī)械等一系列學(xué)科交叉的應(yīng)用需求中,仿真技術(shù)面臨著巨大挑戰(zhàn).
結(jié)合前面綜述研究和歸納的結(jié)果,尤其是表2 和表3 的框架,我們對一個基于視覺信息的挖掘機(jī)監(jiān)控應(yīng)用進(jìn)行回顧性分析.在這個案例中,我們需要開發(fā)一個基于智能設(shè)備的自動化工作量計(jì)數(shù)解決方案,以取代挖掘機(jī)現(xiàn)場的人工監(jiān)督.主要任務(wù)是統(tǒng)計(jì)挖掘機(jī)操作員的工作量,將一斗物料從地面拾起并裝入卡車,即為1 次挖掘裝載動作,如圖4 所示.對于挖掘機(jī)租賃公司來說,跟蹤每臺租賃挖掘機(jī)的工作量非常重要,在過去幾年中,這項(xiàng)任務(wù)帶來了高昂的人工成本,亟需自動化解決方案.我們將在該案例中說明如何利用可解釋性需求分析手段挖掘邏輯和數(shù)據(jù)2 方面的可解釋性依據(jù),以構(gòu)建更具魯棒性的技術(shù)路線.
Fig.4 ?ntelligent monitoring case of construction equipment based on vision圖4 基于視覺的施工設(shè)備智能監(jiān)控案例
問題需求描述和上下文挖掘考慮到機(jī)器學(xué)習(xí)在計(jì)算機(jī)視覺任務(wù)中的出色性能表現(xiàn),我們嘗試通過分析安裝在挖掘機(jī)擋風(fēng)前攝像頭所采集的圖像來分析挖斗動作.挖斗的操作按照視頻幀的順序記錄下來,從中可以自動識別出挖斗和卡車,并完成計(jì)數(shù).但挖掘機(jī)的工作過程不穩(wěn)定,涉及到多種動作組合的可能性和異常情況,導(dǎo)致機(jī)器學(xué)習(xí)模型的運(yùn)用存在較高的魯棒性風(fēng)險.這就需要通過可解釋性需求分析手段,挖掘更多的可解釋性依據(jù),以加強(qiáng)技術(shù)路線的可解釋性,降低魯棒性風(fēng)險.
在此案例中,我們從業(yè)務(wù)上下文中挖掘出挖斗的變化規(guī)律作為可解釋性依據(jù).在施工過程中,挖斗會在有限的幾種狀態(tài)之間按一定的順序進(jìn)行切換.為了建立這一可解釋性依據(jù)與問題定義之間的聯(lián)系,以狀態(tài)圖作為可解釋性依據(jù)的形式化方法挖掘過程的業(yè)務(wù)邏輯,定義業(yè)務(wù)狀態(tài);以挖斗和卡車的識別作為觸發(fā)狀態(tài)變化的事件輔助機(jī)器學(xué)習(xí)模型的使用.
如圖5 所示,我們將挖掘機(jī)的工作過程分為7 個狀態(tài),分別為“挖掘中”“運(yùn)送中”“裝車預(yù)備”“卸貨”“正在裝車”“卸貨完畢”“裝車完畢”等.狀態(tài)轉(zhuǎn)移事件則是依靠機(jī)器學(xué)習(xí)模型檢測的具體事件,如“發(fā)現(xiàn)豎斗”“發(fā)現(xiàn)平斗”“發(fā)現(xiàn)卡車”“卡車離開”等.挖掘機(jī)在工作過程中,會在機(jī)器學(xué)習(xí)模型的幫助下,按照既定的狀態(tài)轉(zhuǎn)移關(guān)系在上述狀態(tài)之間切換.
Fig.5 The state diagram is used as an interpretable basis圖5 以狀態(tài)圖作為可解釋性依據(jù)
上述工作中,我們定義了機(jī)器學(xué)習(xí)的標(biāo)準(zhǔn)問題,明確了機(jī)器學(xué)習(xí)模型的作用域,并基于機(jī)器學(xué)習(xí)模型構(gòu)建了上層的業(yè)務(wù)邏輯實(shí)現(xiàn)方案.可解釋性需求被提煉為2 個具體內(nèi)容:圖像中的可識別狀態(tài)的語義表示和描述業(yè)務(wù)推理過程的狀態(tài)圖.
我們通過狀態(tài)機(jī)模型,將業(yè)務(wù)理解和技術(shù)路線更緊密地聯(lián)系在一起.一方面通過可解釋性依據(jù)建立業(yè)務(wù)模型,可以更準(zhǔn)確地表達(dá)業(yè)務(wù)的可解釋性需求,排除掉原有需求描述中不符合可解釋性的矛盾點(diǎn),加強(qiáng)需求的邏輯性和可解釋性的邏輯依據(jù);另一方面可以在更細(xì)的粒度上比較需求與技術(shù)是否匹配,通過持續(xù)跟蹤當(dāng)前的業(yè)務(wù)狀態(tài)對機(jī)器學(xué)習(xí)模型的運(yùn)行加以調(diào)試,及時發(fā)現(xiàn)機(jī)器學(xué)習(xí)模型的誤判帶來的業(yè)務(wù)狀態(tài)偏差.
同時,這種基于可解釋性的需求建模可以顯著增強(qiáng)技術(shù)方案的魯棒性.由于在每個業(yè)務(wù)狀態(tài)下,機(jī)器學(xué)習(xí)模型僅考慮該業(yè)務(wù)狀態(tài)可能發(fā)生的幾種狀態(tài)轉(zhuǎn)移事件,而不是所有事件,從而降低了誤判的可能性,提升模型預(yù)測結(jié)果的魯棒性.需求分析的具體步驟如下.
1)數(shù)據(jù)需求分析.數(shù)據(jù)驅(qū)動的機(jī)器學(xué)習(xí)應(yīng)用研發(fā)中,數(shù)據(jù)的理解、數(shù)據(jù)可獲得性及質(zhì)量的分析是重要的步驟.本文案例中的圖像數(shù)據(jù)是通過固定在機(jī)械臂上的數(shù)字?jǐn)z像機(jī)收集的.由于采用有監(jiān)督學(xué)習(xí)方法,數(shù)據(jù)需求分析的挑戰(zhàn)之一是定義訓(xùn)練數(shù)據(jù)的標(biāo)注規(guī)則.不同人對圖像數(shù)據(jù)中挖斗的標(biāo)注有不同的理解.例如,有人將挖斗整體和突出物料全部放入標(biāo)注框內(nèi),也有人更傾向標(biāo)注挖斗的主體部分.人工標(biāo)注的差異可能會忽略重要的細(xì)節(jié),也可能引入干擾信息,嚴(yán)重影響機(jī)器學(xué)習(xí)模型的訓(xùn)練效果.因此,需要約束數(shù)據(jù)打標(biāo)質(zhì)量,建立符合業(yè)務(wù)目標(biāo)的標(biāo)注要求的可解釋性依據(jù),為機(jī)器學(xué)習(xí)模型訓(xùn)練提供可信的數(shù)據(jù)基礎(chǔ).例如,案例業(yè)務(wù)目標(biāo)的實(shí)現(xiàn)關(guān)注挖斗的姿態(tài)而非挖斗中的物料,所以打標(biāo)工作中應(yīng)該忽視物料,但突出挖斗尖端鋸齒的位置.通過在數(shù)據(jù)打標(biāo)中引入這種可解釋性需求的約束,可以使得技術(shù)層面所需考慮的問題更加準(zhǔn)確,減少“模糊地帶”引入的需求與技術(shù)認(rèn)知不一致.
另一個常見的數(shù)據(jù)需求是樣本在數(shù)據(jù)類間分布的均衡性.樣本數(shù)較少的目標(biāo)識別準(zhǔn)確性不高.本案例中,挖斗數(shù)據(jù)樣本量相對大,但卡車數(shù)據(jù)樣本量相對少,導(dǎo)致卡車的識別準(zhǔn)確率偏低.類別不平衡也是一項(xiàng)常見的數(shù)據(jù)可解釋性依據(jù),通過在需求中補(bǔ)充這種可解釋性依據(jù),可以幫助技術(shù)人員更好地理解需求細(xì)節(jié),減少錯誤假設(shè)帶來的技術(shù)與需求的偏差.數(shù)據(jù)的多樣性和圖像的清晰度是圖像數(shù)據(jù)的重要需求維度.這項(xiàng)工作由業(yè)務(wù)專家、需求工程師、數(shù)據(jù)科學(xué)家承擔(dān),有些場景中也需要領(lǐng)域?qū)<业闹笇?dǎo).
對于成熟的機(jī)器學(xué)習(xí)技術(shù),如應(yīng)用場景是較為固定的,則數(shù)據(jù)需求通常比較明確.但現(xiàn)實(shí)世界的開放性和復(fù)雜性導(dǎo)致我們通常只能應(yīng)對部分典型場景,許多特殊長尾場景無法在早期的訓(xùn)練數(shù)據(jù)中獲得.當(dāng)面對新出現(xiàn)的場景時,模型的表現(xiàn)不夠好,影響用戶對機(jī)器學(xué)習(xí)技術(shù)的信任度,但背后的根本原因是需求發(fā)生了變化,需求中的問題范圍超出了技術(shù)路線做出的假設(shè).可見,可解釋性需求,尤其是數(shù)據(jù)的理解與可解釋性,是一個持續(xù)提升的認(rèn)知過程,詳見表3和表4 中關(guān)于數(shù)據(jù)需求的分析和可解釋性.在應(yīng)用驗(yàn)證中,需要將需求分析階段較為確定的可解釋性依據(jù)作為驗(yàn)證手段和前提,對于超出原有目標(biāo)場景的情況,要讓用戶知悉其不在評價范圍內(nèi).此外,數(shù)據(jù)處理和數(shù)據(jù)質(zhì)量改進(jìn)所需的投入也是至關(guān)重要的.數(shù)據(jù)可用性、真實(shí)世界情況的復(fù)雜性和機(jī)器學(xué)習(xí)模型的通用性都可能會限制基于機(jī)器學(xué)習(xí)解決方案的表現(xiàn).
2)評價指標(biāo)變換.本案例中,在比較檢測挖斗和卡車的多種候選機(jī)器學(xué)習(xí)算法時,一個關(guān)鍵的量化評估指標(biāo)是物體檢測算法的聯(lián)合交集(intersection over union,?oU)指標(biāo).然而,該指標(biāo)并非反映應(yīng)用效果的“工作量計(jì)數(shù)準(zhǔn)確率”.用戶需要真陽性率和假陽性率等指標(biāo).模型的技術(shù)規(guī)范和業(yè)務(wù)最終目標(biāo)的差異給技術(shù)方案的綜合評價帶來了挑戰(zhàn).本案例中,每種狀態(tài)的誤判率是用戶關(guān)注的評價指標(biāo),也是用戶可理解的反映技術(shù)方案優(yōu)劣的指標(biāo),同時在技術(shù)上也具有可實(shí)現(xiàn)性.在可解釋性需求的基礎(chǔ)上對技術(shù)指標(biāo)進(jìn)行評價,可以增強(qiáng)技術(shù)評價與原始需求的關(guān)聯(lián)性,增加用戶對技術(shù)方案的認(rèn)可度.
3)業(yè)務(wù)目標(biāo)定義.考慮到現(xiàn)實(shí)應(yīng)用場景的變化性需求,在設(shè)定業(yè)務(wù)目標(biāo)時,我們應(yīng)該以訓(xùn)練集來約束機(jī)器學(xué)習(xí)模型的使用場景,盡可能降低未知場景帶來的潛在風(fēng)險.在訓(xùn)練集已經(jīng)出現(xiàn)的場景中,同時采用真陽性率和假陽性率作為評判指標(biāo),并支持通過跟蹤挖斗的狀態(tài)變化調(diào)試模型預(yù)測錯誤.此外,應(yīng)保留物體檢測和計(jì)數(shù)記錄,以備隨機(jī)的人工檢查.經(jīng)過訓(xùn)練和驗(yàn)證的模型在部署后仍然可能失敗,因?yàn)樵诂F(xiàn)實(shí)世界的應(yīng)用程序中經(jīng)常會發(fā)生數(shù)據(jù)轉(zhuǎn)移,例如光線影響、天氣影響、角度影響等.為了保持滿意的計(jì)數(shù)效果,需要持續(xù)補(bǔ)充訓(xùn)練數(shù)據(jù),增加數(shù)據(jù)的豐富程度.
在機(jī)器學(xué)習(xí)應(yīng)用的需求工程中,數(shù)據(jù)描述、性能指標(biāo)、數(shù)據(jù)質(zhì)量和候選解決方案必須圍繞業(yè)務(wù)場景和技術(shù)可行性統(tǒng)一考慮,其中可解釋性在多個環(huán)節(jié)起重要作用.為應(yīng)對復(fù)雜的決策與預(yù)測分析任務(wù),任何一個步驟的缺失都可能導(dǎo)致整個項(xiàng)目的失敗.
本文從機(jī)器學(xué)習(xí)應(yīng)用的需求工程中涉及的不同角色和視角進(jìn)行了綜述和分析.重點(diǎn)分析了業(yè)務(wù)專家、軟件需求工程師、軟件研發(fā)工程師、領(lǐng)域?qū)<液蛿?shù)據(jù)科學(xué)家之間的依賴關(guān)系和協(xié)作任務(wù),包括領(lǐng)域知識和機(jī)器學(xué)習(xí)模型的集成,以及如何按預(yù)期使用機(jī)器學(xué)習(xí)模型等,著重闡述了可解釋性相關(guān)的問題.進(jìn)一步總結(jié)了可用于支持需求活動的工具,例如從業(yè)務(wù)用例到機(jī)器學(xué)習(xí)任務(wù)的映射,以及融合先驗(yàn)知識和機(jī)器學(xué)習(xí)工作流的參考模式,還給出了數(shù)據(jù)驅(qū)動智能應(yīng)用的案例.
未來研究工作主要是在工業(yè)領(lǐng)域,面向數(shù)據(jù)驅(qū)動的智能應(yīng)用項(xiàng)目開展工程實(shí)踐,基于成功和失敗案例,對目前的方法框架開展廣泛的實(shí)證研究;總結(jié)需求階段要解決的關(guān)鍵問題,包括可解釋性依據(jù)的構(gòu)造方法、驗(yàn)證方法,并開展更深入的案例分析和共性問題研究;進(jìn)一步完善和評估可解釋型需求分析的過程和知識框架體系,并形成具有實(shí)際指導(dǎo)意義的方法指南,用于指導(dǎo)項(xiàng)目的需求定義和備選方案進(jìn)行有效的協(xié)同決策.
作者貢獻(xiàn)聲明:裴忠一和劉璘為本文共同第一作者.裴忠一完成了主要調(diào)研工作和論文撰寫;劉璘提出調(diào)研思路并完成了部分調(diào)研工作和論文撰寫;王晨參與文獻(xiàn)整理和案例分析;王建民提出指導(dǎo)意見并修改論文.