田 鵬,藍(lán)雯飛,張 瀟
(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,湖北 武漢 430074)
王者榮耀游戲是一款當(dāng)前廣受歡迎的手機(jī)游戲之一,作為一款可玩性很強(qiáng)的競(jìng)技類游戲,游戲的勝負(fù)成為了玩家和觀眾最關(guān)心的問(wèn)題。由于游戲的復(fù)雜性、部分可觀察性和對(duì)局動(dòng)態(tài)實(shí)時(shí)變化等特點(diǎn),僅僅依靠人工來(lái)解說(shuō)比賽已經(jīng)不能滿足需求,還需要實(shí)時(shí)的勝率預(yù)測(cè)為其提供話題引導(dǎo)和需求。勝率預(yù)測(cè)能夠?yàn)榻庹f(shuō)提供有力依據(jù),增強(qiáng)觀眾的參與感,還可以用于賽后復(fù)盤,提升競(jìng)技實(shí)力。
人工智能(AI)解說(shuō)員越來(lái)越多地出現(xiàn)在比賽直播中,AI會(huì)根據(jù)雙方所獲得的資源預(yù)測(cè)出整場(chǎng)比賽的勝率趨勢(shì),如肯德基KI上校、DOTA PLUS勝率預(yù)測(cè)面板,已經(jīng)在LOL和DOTA玩家中取得了良好的反饋。
實(shí)時(shí)戰(zhàn)略游戲(RTS)在過(guò)去十年中一直是人工智能研究領(lǐng)域的一個(gè)熱點(diǎn),游戲AI是其中的重要研究方向。文獻(xiàn)[1]-[3]提出了一種多人在線戰(zhàn)術(shù)競(jìng)技游戲(Multiplayer Online Battle Arena,MOBA)AI學(xué)習(xí)范式,讓其能夠自主地訓(xùn)練和扮演大量英雄,并且構(gòu)建能夠擊敗頂級(jí)電子競(jìng)技玩家的超人AI代理。勝率預(yù)測(cè)也取得了大量研究成果,如文獻(xiàn)[4]、[5]使用神經(jīng)網(wǎng)絡(luò)以及Naivebayes分類器,通過(guò)分析陣容來(lái)預(yù)測(cè)勝率,但準(zhǔn)確率都不是很高,而且只能在賽前進(jìn)行預(yù)測(cè),具有比較大的缺陷。此外,通過(guò)分析比賽數(shù)據(jù)來(lái)進(jìn)行勝率預(yù)測(cè)也是一種可行方法,如文獻(xiàn)[6]-[8]參考了玩家和角色的歷史表現(xiàn),使用了更豐富的數(shù)據(jù)特征來(lái)進(jìn)行預(yù)測(cè),但運(yùn)用的模型較少參考性不強(qiáng)。文獻(xiàn)[9]中增加實(shí)時(shí)輸入特征和高質(zhì)量的訓(xùn)練集,提出了一種兩階段時(shí)空網(wǎng)絡(luò)(TSSTN),不僅可以提供準(zhǔn)確的實(shí)時(shí)勝方預(yù)測(cè),而且可以將最終的預(yù)測(cè)結(jié)果歸因于不同特征。文獻(xiàn)[10]提出了用賽后數(shù)據(jù)和陣容兩種方法對(duì)整局游戲勝負(fù)作出預(yù)測(cè),但不是實(shí)時(shí)勝率;文獻(xiàn)[11]將陣容和比賽時(shí)的特征相結(jié)合,運(yùn)用邏輯回歸模型進(jìn)行勝率預(yù)測(cè),得到的準(zhǔn)確率為71%,效果比較一般。
關(guān)于實(shí)時(shí)預(yù)測(cè)的現(xiàn)有研究仍然存在局限性,現(xiàn)有工作很大程度上忽視了可解釋性,預(yù)測(cè)的準(zhǔn)確性很難令人滿意。為了解決上述問(wèn)題,本文考慮同時(shí)使用陣容數(shù)據(jù)和對(duì)局?jǐn)?shù)據(jù)來(lái)進(jìn)行勝率預(yù)測(cè)。為了使陣容數(shù)據(jù)具有實(shí)時(shí)性,本文采用關(guān)系模型提取不同時(shí)間節(jié)點(diǎn)時(shí)英雄之間的克制協(xié)同關(guān)系,并采用序列LSTM模型來(lái)進(jìn)行勝率預(yù)測(cè)。為了緩解黑盒模型的不可解釋性,本文決定對(duì)于實(shí)時(shí)數(shù)據(jù)解耦,分離特征值和重要性的影響。提出了時(shí)空網(wǎng)絡(luò)概念,在空間階段將最重要的三個(gè)特征分開進(jìn)行單特征預(yù)測(cè),并在時(shí)間階段為空間階段產(chǎn)生的結(jié)果向量添加時(shí)間權(quán)重向量,最終通過(guò)加權(quán)組合得到預(yù)測(cè)結(jié)果。最后,本文將兩個(gè)模型進(jìn)行聯(lián)合,提出了一種高準(zhǔn)確率且具有可解釋性的角色-實(shí)時(shí)聯(lián)合網(wǎng)絡(luò)。
本文利用收集的真實(shí)對(duì)戰(zhàn)數(shù)據(jù)集,使用角色-實(shí)時(shí)聯(lián)合網(wǎng)絡(luò)進(jìn)行預(yù)測(cè),并對(duì)預(yù)測(cè)結(jié)果進(jìn)行解釋,具體預(yù)測(cè)流程如圖1所示。實(shí)驗(yàn)結(jié)果表明,AI解說(shuō)員可以在解說(shuō)詞中給出較為準(zhǔn)確的勝率預(yù)測(cè)與分析,大大增強(qiáng)游戲觀看者的體驗(yàn)。同時(shí),本方法對(duì)于其他類似的電子競(jìng)技游戲具有相同的實(shí)用價(jià)值。
圖1 王者榮耀可解釋性勝率預(yù)測(cè)流程圖
在王者榮耀中,兩支由五名英雄組成的隊(duì)伍互相戰(zhàn)斗,直至推掉對(duì)方主水晶才算獲得勝利。通過(guò)與王者榮耀發(fā)行商進(jìn)行合作,從2019年11月隨機(jī)選擇一天,提取游戲數(shù)據(jù)庫(kù)中當(dāng)天所有對(duì)局的核心數(shù)據(jù)。核心數(shù)據(jù)是重構(gòu)游戲和提取游戲特征的原始數(shù)據(jù)形式。為了減少數(shù)據(jù)冗余,每隔半分鐘提取一次特征,10 min得到20個(gè)數(shù)據(jù)幀,總共得到了496 342個(gè)數(shù)據(jù)幀。在每個(gè)數(shù)據(jù)幀中,包括了一些明顯對(duì)勝率預(yù)測(cè)有幫助的信息,如經(jīng)濟(jì)、擊殺數(shù)和團(tuán)隊(duì)的塔數(shù)等,如圖2所示。
圖2 王者榮耀數(shù)據(jù)集示例圖
根據(jù)獲得的數(shù)據(jù)集,可以直接提取出基本特征。這些基本特征的主要構(gòu)成如表1所示,基本特征的具體形式如表2所示。
表1 基礎(chǔ)特征
表2 基礎(chǔ)特征每個(gè)字段含義
本文還提取與游戲時(shí)間相關(guān)的統(tǒng)計(jì)信息,描述特征在不同時(shí)間節(jié)點(diǎn)的表現(xiàn),主要包括兩類:一類是戰(zhàn)斗數(shù)據(jù)在不同時(shí)間點(diǎn)的作用;另一類是角色在不同時(shí)間節(jié)點(diǎn)的作用。戰(zhàn)斗數(shù)據(jù)類型能夠反映出兩隊(duì)通過(guò)戰(zhàn)斗所獲得的所有資源差異,主要包括在不同時(shí)間節(jié)點(diǎn)下的經(jīng)濟(jì)、擊殺和塔數(shù)上的差異。例如,需要統(tǒng)計(jì)整局游戲中兩隊(duì)經(jīng)濟(jì)的最大值、最小值、均值以及當(dāng)前節(jié)點(diǎn)與相鄰節(jié)點(diǎn)間經(jīng)濟(jì)的差值等。
統(tǒng)計(jì)特征包括戰(zhàn)斗統(tǒng)計(jì)特征和角色統(tǒng)計(jì)特征,其中戰(zhàn)斗統(tǒng)計(jì)特征的具體形式如表3所示,角色統(tǒng)計(jì)特征的具體形式如表4所示。
表3 戰(zhàn)斗統(tǒng)計(jì)特征的形式
表4 英雄統(tǒng)計(jì)特征的形式
為了建立準(zhǔn)確且可解釋的預(yù)測(cè)模型,需要同時(shí)考慮角色信息和實(shí)時(shí)信息。將角色模型和實(shí)時(shí)模型結(jié)合起來(lái)預(yù)測(cè)勝率,其中角色模型主要由雙線性模型捕獲角色的時(shí)序特性,通過(guò)序列LSTM模型來(lái)進(jìn)行賽時(shí)勝率預(yù)測(cè);實(shí)時(shí)模型主要由LSTM搭建的可解釋性時(shí)空網(wǎng)絡(luò)模型來(lái)進(jìn)行可解釋的賽時(shí)勝率預(yù)測(cè)。為了捕獲時(shí)間序列特征,搭建了序列建模網(wǎng)絡(luò)LSTM來(lái)進(jìn)行任務(wù)預(yù)測(cè),選擇連續(xù)的l個(gè)節(jié)點(diǎn)數(shù)據(jù)作為輸入,游戲時(shí)間t的輸入數(shù)據(jù)為X=[xt-l+1,…,xt]T。 對(duì)于游戲開始4 min前的輸入,同樣輸入四個(gè)數(shù)據(jù),如t=2時(shí),X=[x0,x1,x2,x2]T。最后,將兩個(gè)模型的預(yù)測(cè)輸出進(jìn)行融合,提高預(yù)測(cè)的準(zhǔn)確性。圖3展示了提出的聯(lián)合模型的流程圖。
圖3 模型整體框架圖
為了解角色在比賽中的作用,對(duì)角色的時(shí)序?qū)傩赃M(jìn)行提取。角色數(shù)據(jù)類型能夠反映在不同時(shí)間階段角色以及角色組合的影響力差異。王者榮耀中的角色都有不同的定位,不同定位的角色在不同游戲階段的作用不同,全面了解不同階段內(nèi)游戲角色之間的協(xié)同和對(duì)立關(guān)系是十分重要的。提取角色時(shí)序?qū)傩允紫忍岣吡藙俾暑A(yù)測(cè)的準(zhǔn)確性;其次,可以幫助玩家發(fā)現(xiàn)比賽中每個(gè)角色的影響力,提高了對(duì)預(yù)測(cè)結(jié)果的可解釋性。為了更好地模擬角色的協(xié)同和對(duì)立關(guān)系,提出了一個(gè)潛在變量模型,將游戲角色建模為學(xué)習(xí)的低維空間中的向量。嵌入方法通過(guò)學(xué)習(xí)低維向量來(lái)捕獲實(shí)體的豐富屬性。
給定英雄的編號(hào)N,英雄集合表示為H={H1,H2,…,HN}。將每場(chǎng)比賽中紅藍(lán)兩隊(duì)的英雄表示為對(duì)于英雄Hi,其特征向量表示為hi∈RV,則H∈RN×V表示英雄的特征矩陣。
選擇使用雙線性模型來(lái)模擬協(xié)同和對(duì)立關(guān)系。首先對(duì)兩名英雄之間的關(guān)系進(jìn)行提取。引入?yún)f(xié)同評(píng)分函數(shù)計(jì)算Hi和Hj的協(xié)同得分。
其中CH∈RV×V是Hi和Hj的協(xié)同矩陣。引入了對(duì)抗評(píng)分函數(shù)來(lái)計(jì)算Hi和Hj的對(duì)抗得分。
其中RH∈RV×V是Hi和Hj的對(duì)抗矩陣。圖4展示了角色關(guān)系嵌入并進(jìn)行賽時(shí)預(yù)測(cè)的流程。
圖4 角色模型框架圖
模型的框架如圖5所示,在空間階段,所有特征被分為三個(gè)不同的特征組(金幣、擊殺和塔數(shù)),并投影到3個(gè)獨(dú)立的表示空間上,也是資深專業(yè)評(píng)論員關(guān)注的3個(gè)最重要的特征。構(gòu)建3個(gè)LSTM序列網(wǎng)絡(luò)模型,僅將單個(gè)特征組和游戲時(shí)間t作為輸入并作出各自的獲勝預(yù)測(cè),通過(guò)將游戲時(shí)間添加為模型輸入特征的一部分,模型的準(zhǔn)確性得到了提高,整個(gè)預(yù)測(cè)模型的準(zhǔn)確性也得到了提高。模型的輸出為Si∈[0,1.0],表示基于單個(gè)特征組值差的勝負(fù)可能性預(yù)測(cè)。同一特征的重要性在整個(gè)游戲中并不是一成不變的,為了更好地模擬這種“時(shí)間”特征,在第二階段(時(shí)間階段)中,為3個(gè)空間模型分配了3個(gè)時(shí)變權(quán)重,并通過(guò)空間模型輸出的加權(quán)組合來(lái)進(jìn)行最終的勝率預(yù)測(cè)。給定作戰(zhàn)空間中作戰(zhàn)模型提供的時(shí)間點(diǎn)t的得分向量c(x,t)(其中x代表特征組),在時(shí)間階段通過(guò)重要性權(quán)重wt和得分向量c(x,t)的線性組合獲得Ct:
圖5 實(shí)時(shí)模型框架圖
根據(jù)對(duì)MOBA游戲的深入調(diào)查發(fā)現(xiàn),角色數(shù)據(jù)和戰(zhàn)斗數(shù)據(jù)在整個(gè)游戲中也并非始終重要和同等重要。為了更好地模擬戰(zhàn)斗和角色相對(duì)時(shí)間的重要性變化,在聯(lián)合模型的第二階段,為每個(gè)模型分配了時(shí)間變量和可學(xué)習(xí)權(quán)重。經(jīng)過(guò)空間階段,會(huì)得到得分向量FP=[Ct,Rt],然后將重要權(quán)重向量分配給得分向量以獲得最終預(yù)測(cè)分?jǐn)?shù)Pt。
可解釋性是聯(lián)合模型的重要優(yōu)勢(shì),主要集中于實(shí)時(shí)模型中。在實(shí)時(shí)模型的第二階段會(huì)產(chǎn)生特征貢獻(xiàn)向量,能夠更直觀地解釋特征對(duì)勝率的影響。作出重大貢獻(xiàn)的特征不一定是最重要的特征,例如,在大多數(shù)時(shí)間點(diǎn),雙方的經(jīng)濟(jì)都是非常重要的特征,但如果雙方的經(jīng)濟(jì)差異接近于0,則經(jīng)濟(jì)對(duì)勝率貢獻(xiàn)不大。這也意味著,如果第一階段的預(yù)測(cè)輸出足夠高,那么重要性相對(duì)較低的特征仍然可以作出不可忽略的貢獻(xiàn)。更重要的是,對(duì)每個(gè)貢獻(xiàn)向量求和會(huì)得到實(shí)時(shí)模型的最終得分。如實(shí)時(shí)模型中三個(gè)特征組在10 min時(shí)的預(yù)測(cè)得分為[0.82,0.76,0.75],它們的重要性權(quán)重為[0.56,0.3,0.14],則三個(gè)特征組的貢獻(xiàn)為[0.46,0.23,0.11]。通過(guò)貢獻(xiàn)值排序,對(duì)局層的得分為0.8,功能組1(gold)是對(duì)局層中最為重要的特征。同時(shí)角色模型的最終得分為0.7。此時(shí),對(duì)局層和英雄層的重要性權(quán)重為[0.85:0.15],因此最終勝率為0.785。評(píng)論員可結(jié)合信息作出比賽評(píng)論和精準(zhǔn)預(yù)測(cè)。此信息也可用于在游戲結(jié)束后恢復(fù)游戲,并通過(guò)信息確定游戲的階段性目標(biāo)。
本實(shí)驗(yàn)基于Windows平臺(tái)通過(guò)Python語(yǔ)言實(shí)現(xiàn),采用Windows 11 21H2的操作系統(tǒng),硬件配置為Intel?CoreTMi5-8300H CPU@2.30 GHz,顯卡為NVIDIA GeForce GTX 1050 Ti,內(nèi)存為16 GB,硬盤為512 GB。實(shí)驗(yàn)選擇了496 342個(gè)數(shù)據(jù)幀中的10%作為測(cè)試集,10%作為驗(yàn)證集,剩下的80%作為訓(xùn)練集。對(duì)于聯(lián)合模型的參數(shù)設(shè)置,使用帶有兩個(gè)循環(huán)層的雙向LSTM,dropout的概率是0.2,隱藏狀態(tài)的大小為128。在LSTM之后,使用一個(gè)256維全連通層和一個(gè)tanh函數(shù)來(lái)計(jì)算類分?jǐn)?shù)P(y|X)。
(1)邏輯回歸(LR):邏輯回歸將所有特征作為其輸入。
(2)SVM:SVM將所有特征作為其輸入。輸入與LSTM格式相同,參數(shù)C=0.01,參數(shù)Gamma=10 000。
(3)LSTM:使用雙向LSTM和兩個(gè)循環(huán)層,輟學(xué)概率為0.1,隱藏狀態(tài)的大小為32。在LSTM之后,使用64維完全連接層和tanh函數(shù)來(lái)計(jì)算預(yù)測(cè)結(jié)果。
為了驗(yàn)證提取的角色關(guān)系對(duì)模型性能提升的有效性,使用了LR與GBDT來(lái)進(jìn)行實(shí)驗(yàn)。結(jié)果如表5所示。
表5 角色關(guān)系提取算法在不同模型上的效果(%)
當(dāng)使用由算法提取出的角色關(guān)系作為特征輸入時(shí),不僅能夠依靠角色進(jìn)行賽時(shí)勝率預(yù)測(cè),而且在不同算法的效果都有提升,其中LR的效果最好,最高達(dá)到了77.7%。在圖6中,通過(guò)每2 min進(jìn)行一次預(yù)測(cè),比較了所有提出的方法的準(zhǔn)確性。從這些實(shí)驗(yàn)中可以得出三個(gè)觀察結(jié)果。
(1)實(shí)時(shí)信息大大提高了基線的預(yù)測(cè)準(zhǔn)確性,當(dāng)輸入超過(guò)6 min的實(shí)時(shí)信息時(shí),所有四個(gè)實(shí)時(shí)模型都能獲得更好的準(zhǔn)確性。
(2)中后期實(shí)時(shí)特征比角色特征提供的信息更多。隨著模型間差距的縮小,表明隊(duì)伍的實(shí)時(shí)表現(xiàn)決定了獲勝的一方。
(3)在使用少于10 min的實(shí)時(shí)特征時(shí),聯(lián)合模型的性能優(yōu)于LR。在比賽初期階段,更重要的是對(duì)性能趨勢(shì)進(jìn)行建模,而不是對(duì)當(dāng)前值進(jìn)行建模。聯(lián)合模型明確地建模了4個(gè)時(shí)間序列數(shù)據(jù),編碼了每個(gè)團(tuán)隊(duì)的表現(xiàn)趨勢(shì),因此它在這個(gè)時(shí)期的表現(xiàn)優(yōu)于LR。
所有模型在5個(gè)等距時(shí)間節(jié)點(diǎn)的平均預(yù)測(cè)精度如表6所示。聯(lián)合模型在早期階段顯示出優(yōu)勢(shì),而其他模型在節(jié)點(diǎn)0處的精度稍低。原因是節(jié)點(diǎn)0時(shí)的戰(zhàn)斗數(shù)據(jù)相同,陣容是唯一決定勝率的因素,而聯(lián)合模型可以結(jié)合戰(zhàn)斗數(shù)據(jù)和陣容預(yù)測(cè)比賽,并對(duì)角色關(guān)系進(jìn)行優(yōu)化。由于聯(lián)合模型在不同階段增加了英雄對(duì)獲勝率的貢獻(xiàn),因此結(jié)果略高于其他模型。另外,如圖6所示,節(jié)點(diǎn)10后準(zhǔn)確率下降的原因有兩個(gè):
表6 5個(gè)預(yù)測(cè)模型在5個(gè)等距時(shí)間點(diǎn)的準(zhǔn)確度(%)
圖6 模型在不同時(shí)間節(jié)點(diǎn)的準(zhǔn)確率圖
(1)游戲進(jìn)入后期,雙方設(shè)備達(dá)到最大值,游戲結(jié)果越來(lái)越受到玩家意外失誤等隨機(jī)因素的影響。
(2)由于大部分游戲還未進(jìn)入后期階段便結(jié)束了,游戲后期的數(shù)據(jù)遠(yuǎn)少于游戲中期階段的數(shù)據(jù),導(dǎo)致預(yù)測(cè)精度顯著下降。
此外,本文將所有的特征分成最主要的4個(gè)特征,通過(guò)實(shí)驗(yàn)得到了所有特征在每個(gè)時(shí)間節(jié)點(diǎn)的特征重要性,如圖7所示,在游戲前期,與角色相關(guān)的特征是最為重要的特征;隨著游戲的進(jìn)行,與經(jīng)濟(jì)相關(guān)的特征變得越來(lái)越重要;當(dāng)游戲進(jìn)行到中期,與經(jīng)濟(jì)相關(guān)的特征和與擊殺相關(guān)的特征變得重要;到了游戲后期,與塔數(shù)相關(guān)的特征成為了最關(guān)鍵的特征。
圖7 特征重要性圖
本文利用收集到的王者榮耀游戲的真實(shí)對(duì)戰(zhàn)數(shù)據(jù),提出了一種角色-實(shí)時(shí)聯(lián)合預(yù)測(cè)模型,以提供高準(zhǔn)確率的可解釋性預(yù)測(cè)。該模型結(jié)構(gòu)的核心思想是在賽時(shí)勝率預(yù)測(cè)中引入角色交互,以提高準(zhǔn)確率;同時(shí)分離戰(zhàn)斗數(shù)據(jù)和英雄數(shù)據(jù)價(jià)值差異的影響以及每個(gè)特征的相對(duì)重要性,以解耦不同特征的貢獻(xiàn),從而得到更全面的解釋。結(jié)果表明,隨著游戲時(shí)間的變長(zhǎng),角色的預(yù)測(cè)能力會(huì)下降,通過(guò)對(duì)實(shí)時(shí)時(shí)間序列進(jìn)行建模來(lái)提高預(yù)測(cè)準(zhǔn)確率。模型在預(yù)測(cè)精度和可解釋性方面比其他的模型效果更佳,模型的可解釋結(jié)果可用于各種類似的場(chǎng)景,以促進(jìn)相關(guān)行業(yè)的發(fā)展。