劉 凱
(東北大學(xué) 計算機(jī)科學(xué)與工程學(xué)院,沈陽 110169)
電子競技行業(yè)飛速發(fā)展,近年來推出的MOBA類游戲正是當(dāng)下最熱門的競技類游戲之一。在該類游戲中,參賽雙方的陣容選擇、比賽中雙方隊(duì)伍的經(jīng)濟(jì)差與經(jīng)驗(yàn)差都對比賽的勝負(fù)起著決定性作用。根據(jù)陣容與比賽中的實(shí)時信息來預(yù)測比賽雙方的勝率已然成為該領(lǐng)域的研究熱點(diǎn)方向,其結(jié)果不僅可以為選手提供英雄選擇參考,也有助于游戲開發(fā)者改善游戲平衡性,相關(guān)技術(shù)還可以用于團(tuán)隊(duì)競技類體育賽事的預(yù)測。
目前,研究人員對MOBA類游戲的勝率預(yù)測問題進(jìn)行了大量的研究和工作,早期大部分研究都是基于游戲比賽的歷史數(shù)據(jù),采用樸素貝葉斯、決策樹、邏輯回歸等傳統(tǒng)機(jī)器學(xué)習(xí)的方法來解決游戲的勝率預(yù)測問題。Kinkade等人用邏輯回歸與隨機(jī)森林的方法,在Dota2游戲中分別根據(jù)陣容與完整的賽后數(shù)據(jù)預(yù)測比賽的結(jié)果。Wang等人使用邏輯回歸、支持向量機(jī)、隨機(jī)森林的方法,將不同英雄在歷史比賽中的金幣、經(jīng)驗(yàn)、擊殺等特征作為特征輸入,預(yù)測Dota2游戲的比賽結(jié)果。Wang等人利用樸素貝葉斯的方法,根據(jù)比賽雙方所選陣容來預(yù)測Dota2游戲的比賽結(jié)果,雖然在訓(xùn)練集上取得了85.33%的準(zhǔn)確率,但在測試集上只有58.99%的準(zhǔn)確率,過擬合現(xiàn)象較為嚴(yán)重。Song等人使用逐步回歸的方法,根據(jù)陣容預(yù)測Dota2比賽的結(jié)果,取得了解決61%的預(yù)測準(zhǔn)確率。Lin使用梯度提升樹與邏輯回歸模型,根據(jù)賽前數(shù)據(jù)對比賽結(jié)果進(jìn)行預(yù)測,但由于沒有運(yùn)用比賽的實(shí)時數(shù)據(jù),導(dǎo)致預(yù)測準(zhǔn)確率較低。Cleghern等人使用自回歸模型與統(tǒng)計模型預(yù)測Dota2中英雄的血量變化,并取得了較優(yōu)的效果。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,不少學(xué)者將神經(jīng)網(wǎng)絡(luò)應(yīng)用到預(yù)測模型中。Silva等人建立RNN模型,對英雄聯(lián)盟比賽進(jìn)行實(shí)時預(yù)測,使用0~5 min的數(shù)據(jù)與20~25 min的數(shù)據(jù)分別預(yù)測比賽結(jié)果,各自取得了63.91%與83.54%的準(zhǔn)確率。Grutzik等人使用傳統(tǒng)神經(jīng)網(wǎng)絡(luò)建立模型,利用比賽時的玩家信息和英雄信息預(yù)測Dota2游戲的比賽結(jié)果,取得了較高的準(zhǔn)確率。許晨波提出改進(jìn)的雙向LSTM神經(jīng)網(wǎng)絡(luò)用于預(yù)測Dota2游戲的比賽結(jié)果,并實(shí)現(xiàn)了陣容推薦功能。Yang等人將英雄信息、玩家信息的特征作為模型的輸入,實(shí)現(xiàn)了Dota2的賽前勝率預(yù)測,在沒有加入比賽實(shí)時數(shù)據(jù)的情況下,最高時取得了71.49%的預(yù)測準(zhǔn)確率。在加入比賽的實(shí)時數(shù)據(jù)后,最高時則取得了93.73%的預(yù)測準(zhǔn)確率。Hodge等人進(jìn)行了Dota2的實(shí)時預(yù)測研究,并提出了一套電子競技獲勝預(yù)測研究的評估標(biāo)準(zhǔn)。Yang等人提出了一種時間序列模型TSSTN,用于解決王者榮耀的勝率預(yù)測問題。李康維等人提出了一種序列到序列的模型,預(yù)測MOBA類游戲的趨勢發(fā)展情況。
上述研究雖然取得了較好的效果,但依舊存在一定的不足。例如:在MOBA類游戲的實(shí)時預(yù)測問題中,沒有充分考慮不同時間點(diǎn)對結(jié)果的影響大小。受到文獻(xiàn)[7]的啟發(fā),本文首先采用基于統(tǒng)計與Word2Vec的方法提取比賽雙方的陣容特征,并結(jié)合比賽中的實(shí)時信息作為模型輸入。模型結(jié)構(gòu)上,采用2層LSTM模型,同時引入注意力機(jī)制,預(yù)測比賽的最終結(jié)果。本文的主要貢獻(xiàn)與創(chuàng)新點(diǎn)如下:
(1)提出引入注意力機(jī)制的雙層LSTM模型,通過雙層LSTM模型提取實(shí)時比賽中不同時間節(jié)點(diǎn)的特征數(shù)值;通過引入注意力機(jī)制為不同時間節(jié)點(diǎn)的特征數(shù)值賦予權(quán)重。
(2)采用統(tǒng)計與Word2Vec的方法提取比賽陣容的特征作為網(wǎng)絡(luò)輸入信息,提高模型的預(yù)測準(zhǔn)確率與泛化能力。
(3)在真實(shí)的比賽數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),得到的預(yù)測結(jié)果優(yōu)于其他模型。
本節(jié)將對模型的輸入特征做詳盡闡述。在MOBA類游戲中,陣容的好壞在一定程度上決定了比賽的發(fā)展趨勢,合理的陣容是贏得比賽的基礎(chǔ),但由于玩家水平、玩家在比賽中的發(fā)揮不同,導(dǎo)致較差的陣容也有可能在比賽中取得較大優(yōu)勢,所以研究中將比賽雙方的陣容特征與比賽雙方實(shí)時的數(shù)據(jù)作為模型的輸入。陣容的好壞可以由陣容中英雄的配合能力、英雄個人能力、對敵方陣容的克制強(qiáng)度、陣容合理度來衡量;比賽的實(shí)時數(shù)據(jù)包含英雄擊殺數(shù)、小兵擊殺數(shù)、防御塔摧毀數(shù)量等,但以上實(shí)時數(shù)據(jù)最終都會轉(zhuǎn)化為經(jīng)濟(jì)與經(jīng)驗(yàn),所以比賽雙方實(shí)時的經(jīng)濟(jì)與經(jīng)驗(yàn)數(shù)據(jù)可以反映不同時間點(diǎn)比賽雙方的實(shí)力差距。研究中給出的模型輸入特征見表1。下面將系統(tǒng)論述模型中各輸入特征的計算方式。
表1 模型的輸入特征列表Tab.1 List of input features for the model
部分英雄出場率很高,在團(tuán)隊(duì)取得優(yōu)勢時作用大,但是在團(tuán)隊(duì)處于劣勢時就很難發(fā)揮作用,或者英雄的容錯率太低,一旦玩家發(fā)揮失誤,就會陷入劣勢。故英雄的出場次數(shù)不能完全反映英雄的強(qiáng)弱。所以引入英雄的平均勝率(average)作為英雄的特征之一。average的公式如下:
其中,win表示英雄獲勝的場次,total表示英雄出現(xiàn)的總場次。
不同英雄之間的技能或者購買的裝備之間存在著不同的配合關(guān)系,可以強(qiáng)化彼此的實(shí)力。配合關(guān)系會在數(shù)場比賽中反映出來,當(dāng)2個配合關(guān)系強(qiáng)的英雄出現(xiàn)時,可以認(rèn)為此時的勝率會比英雄單個出場時要高,于是文中引用配合指數(shù)(cooperate)來量化英雄間的配合關(guān)系。cooperate的公式如下:
其中,Y表示英雄與英雄屬于同一陣容時的獲勝的場次;N表示英雄與英雄屬于同一陣容的總場次。配合指數(shù)越高,說明2個英雄的配合關(guān)系越強(qiáng),當(dāng)配合關(guān)系小于05時,說明2個英雄存在著沖突,會影響彼此發(fā)揮。英雄間的配合關(guān)系矩陣如圖1所示。
圖1 配合關(guān)系可視化圖Fig.1 Visual diagram of mating relationship
圖1的橫、縱坐標(biāo)均用于表示英雄的。 不同英雄之間的配合關(guān)系越強(qiáng),則英雄的配合指數(shù)在圖1中的顏色越接近紅色,反之接近綠色。由于比賽中大部分英雄不會出現(xiàn)在同一隊(duì)伍中,故圖1中橫軸的大部分區(qū)域顏色一致。
以最低成本、例如一個小技能,來影響敵方英雄的發(fā)育、對線、出裝思路、后期輸出環(huán)境等,都能算作克制。Dota2中的克制關(guān)系表現(xiàn)得十分明顯。當(dāng)克制關(guān)系強(qiáng)的2個英雄對陣時,勝率會出現(xiàn)不平衡的情況。于是通過克制指數(shù)(restrain)來量化2個英雄的克制關(guān)系??酥浦笖?shù)公式如下:
其中,W表示英雄,對陣時,獲勝的場次;A表示英雄、對陣的總場次??酥浦笖?shù)越高,說明2個英雄的克制關(guān)系越強(qiáng),當(dāng)克制指數(shù)大于05時,說明英雄克制英雄。當(dāng)克制指數(shù)小于05時,說明英雄被英雄所克制。英雄間的克制關(guān)系矩陣如圖2所示。
圖2的橫、縱坐標(biāo)均用于表示英雄的。 不同英雄之間的克制關(guān)系越強(qiáng),則英雄的克制指數(shù)在圖2中的顏色越接近紅色,反之接近綠色。由圖2可見,英雄與英雄之間的克制關(guān)系差距較為明顯:比如4號英雄對7號英雄的克制指數(shù)為0.47,但對103號英雄的克制指數(shù)高達(dá)0.62。
圖2 克制關(guān)系可視化圖Fig.2 Visual diagram of restraint relationship
MOBA游戲的一個陣容由5個英雄構(gòu)成,一個好的陣容應(yīng)該同時包含核心、輔助、控制、靈敏等類型的英雄,由于玩家選擇英雄時的主觀性,可能導(dǎo)致陣容里缺少某些類型的英雄,或者重復(fù)選用相同類型的英雄,導(dǎo)致陣容不合理。為了解決該問題,本文引入了陣容合理度的概念。通過自然語言處理的方法,可以把英雄的名稱轉(zhuǎn)化為詞向量,以詞向量表示英雄。由于skip-gram模型能夠根據(jù)句子中的某一個單詞預(yù)測其上下文,故本節(jié)采用Word2Vec中的skip-gram模型來訓(xùn)練詞向量。在訓(xùn)練后要求類型越相似的英雄,對應(yīng)的詞向量之間的相關(guān)性更高。于是可以用詞向量之間的相關(guān)性來衡量英雄屬于同一類別的概率。例如麗娜(Lina)和鳳凰(Phoenix)都屬于遠(yuǎn)程類型、輔助,轉(zhuǎn)化為詞向量后2個英雄對應(yīng)的詞向量的相似度應(yīng)該是高的。研究中把每個陣容作為一個句子來當(dāng)成輸入,通過訓(xùn)練2 w個句子后得到不同英雄的詞向量,并通過PCA方法將訓(xùn)練后的詞向量進(jìn)行降維,再運(yùn)用k-means的方法將降維后英雄的詞向量進(jìn)行聚類,這里將英雄分為5類。不同類別的英雄在繪圖中會用不同顏色進(jìn)行表示。英雄的詞向量可視化展示如圖3所示。
由圖3可以看出,類型相似的英雄,在圖3上的位置比較接近,相似度高。如Monkey_King(齊天大圣)與Lone Drui(德魯伊)都屬于核心位,在圖3上位置十分接近。通過Word2Vec工具,可以獲得2個英雄間的相似度。本文通過的數(shù)值來衡量陣容的合理度,的數(shù)學(xué)定義公式如下:
圖3 英雄向量可視化圖Fig.3 Heros vector visualization diagram
其中,S表示同一陣容中,英雄與英雄的相似度,表示同一陣容中英雄的個數(shù)。suitable的值越大,表明陣容中類似的英雄越多,陣容越不合理;suitable的值越小,表明陣容中存在的英雄種類越多,陣容更合理。
研究中將選定的英雄進(jìn)行編號,當(dāng)英雄的編號0,時,認(rèn)為英雄處于陣容;當(dāng)英雄的編號,2*時,認(rèn)為英雄處于陣容。進(jìn)而推得,隊(duì)伍的配合指數(shù)差值公式如下:
研究中將選定的英雄進(jìn)行編號,當(dāng)英雄的編號0,時,可認(rèn)為英雄處于陣容;當(dāng)英雄的編號,2*時,可認(rèn)為英雄處于陣容。如此一來,雙方陣容的克制指數(shù)差值公式如下:
的值衡量了比賽雙方陣容間的克制指數(shù)的大小,越大,表示陣容對陣容的克制能力越大,反之則越小。例如陣容中包含{,,,,}這5名英雄,陣容中包含{,,,,}這5名 英 雄。 將restrain、restrain、…、restrain的值進(jìn)行累加,得到的值。若大于0,說明陣容對陣容的克制關(guān)系較強(qiáng),若小于0,則說明陣容對陣容的克制關(guān)系較強(qiáng)。
研究中將選定的英雄進(jìn)行編號,當(dāng)英雄的編號0,時,認(rèn)為英雄處于陣容;當(dāng)英雄的編號,2*時,認(rèn)為英雄處于陣容。則陣容合理度的差值公式如下:
研究中將選定的英雄進(jìn)行編號,當(dāng)英雄的編號0,時,認(rèn)為英雄處于陣容;當(dāng)英雄的編號,2*時,認(rèn)為英雄處于陣容。則隊(duì)伍中英雄能力強(qiáng)弱的差值的公式如下:
比賽中的雙方隊(duì)伍的經(jīng)濟(jì)差與經(jīng)驗(yàn)差體現(xiàn)了不同時刻雙方的實(shí)力差距。設(shè)比賽雙方共有2*個英雄,則比賽中的實(shí)時數(shù)據(jù)向量()表示如下:
其中,gold表示比賽進(jìn)行到第min時比賽雙方的隊(duì)伍經(jīng)濟(jì)差;xp表示比賽進(jìn)行到第min時比賽雙方的隊(duì)伍經(jīng)驗(yàn)差;G表示英雄在比賽進(jìn)行到第min時獲得的金幣數(shù)值;x表示英雄在比賽進(jìn)行到第min時獲得的經(jīng)驗(yàn)數(shù)值。
對于給定2支隊(duì)伍{,…,a}和{,…,b},其中a和b分別表示2隊(duì)中所選英雄,根據(jù)比賽進(jìn)行過程中的信息預(yù)測,比賽隊(duì)伍和的獲勝概率分別為P和P,且有P+P=1。
在MOBA類游戲中,游戲的勝負(fù)不僅與比賽雙方陣容有關(guān),還與比賽過程中比賽雙方的英雄擊殺、防御塔摧毀、野怪擊殺等實(shí)時數(shù)據(jù)相關(guān)。由于比賽局勢每一個時刻都在變化,僅憑游戲進(jìn)行中單個時刻的數(shù)據(jù)很難預(yù)測比賽的結(jié)果,因此應(yīng)該將比賽雙方的陣容信息以及比賽過程中不同時刻的信息作為預(yù)測依據(jù),展開比賽結(jié)果的預(yù)測。本節(jié)提出的引入注意力機(jī)制的雙層LSTM模型以比賽雙方的陣容信息、不同時間的比賽信息作為模型輸入,運(yùn)用LSTM結(jié)點(diǎn)處理時序信息,作為模型的編碼階段,同時引入注意力機(jī)制來計算不同時刻的信息對結(jié)果的影響權(quán)重,并加入全連接層作為過渡層;作為解碼階段,在輸出層采用函數(shù)作為激活函數(shù),輸出比賽雙方的獲勝概率。
在本文的實(shí)時勝率預(yù)測模型中,模型的輸入是一個時間序列,因此用LSTM層作為輸入層,LSTM層返回每一個時間步的結(jié)果、即{,,…,h},此后將{,,…,h}作為第二層LSTM的輸入,再將第二層LSTM的輸出作為注意力層、即層的輸入,由此來得到不同時間步對結(jié)果的影響大小,最后將層的計算結(jié)果經(jīng)過層,轉(zhuǎn)化為一維向量,另將層的輸出經(jīng)過層后,采用函數(shù)進(jìn)行歸一化,并將模型的輸出結(jié)果轉(zhuǎn)化為概率的形式,得到模型的輸出結(jié)果,模型結(jié)構(gòu)如圖4所示。
圖4 實(shí)時勝率預(yù)測模型結(jié)構(gòu)圖Fig.4 Structure diagram of the real-time winning rate prediction model
2.2.1 模型輸入介紹
模型的輸入為前min的比賽雙方的實(shí)時經(jīng)驗(yàn)、金幣、陣容信息,模型輸入的形式化定義如下:
其中,input(1≤≤)表示比賽第min時比賽雙方的實(shí)時經(jīng)驗(yàn)、金幣、陣容信息。
設(shè)比賽雙方共有2*個英雄,向量input形式化定義如下:
其中,“+”表示向量的連接。
2.2.2 模型輸出介紹
由于勝率預(yù)測是一個二分類問題,故模型的輸出是一個1*2的一維向量,其形式化的定義為:[P,P]。 其中,P表示隊(duì)伍的勝率,P表示隊(duì)伍的勝率。當(dāng)P>P時,認(rèn)為隊(duì)伍獲勝;當(dāng)P<P時,認(rèn)為隊(duì)伍獲勝;P=P時,則認(rèn)為隊(duì)伍、的勝率相等。
本文的數(shù)據(jù)來源于opendota網(wǎng)站,在該網(wǎng)站上可以獲取到每場比賽的詳細(xì)數(shù)據(jù),包括雙方陣容、比賽持續(xù)時間、英雄、比賽雙方每分鐘的金幣與經(jīng)驗(yàn)等。仿真時,從該網(wǎng)站上獲取了2019年1月1日至2019年12月31日的2.5 w場職業(yè)比賽數(shù)據(jù)。每場比賽數(shù)據(jù)至少包含以下信息:天輝、夜魘陣容所選英雄信息;獲勝方;比賽時長;比賽開始后雙方每一分鐘的經(jīng)濟(jì)與經(jīng)驗(yàn);每分鐘發(fā)生的英雄擊殺事件。
獲取的數(shù)據(jù)需要進(jìn)行篩選,通過對每場比賽時間的判斷,時間小于20 min的比賽,可以認(rèn)為是因?yàn)樘厥庠蛱崆敖Y(jié)束的比賽,將這些數(shù)據(jù)剔除掉,以防干擾特征的準(zhǔn)確性。將所有數(shù)據(jù)按6∶2∶2的比例劃分為訓(xùn)練集、驗(yàn)證集、測試集,且數(shù)據(jù)在輸入到模型前均進(jìn)行歸一化處理。
實(shí)時勝率預(yù)測模型的效果由預(yù)測準(zhǔn)確率()來評估,的公式如下:
其中,P表示隊(duì)伍比賽獲勝、且預(yù)測結(jié)果也為獲勝的次數(shù);P表示隊(duì)伍比賽獲勝、且預(yù)測結(jié)果也為獲勝的次數(shù);表示隊(duì)伍比賽獲勝的次數(shù);表示隊(duì)伍比賽獲勝的次數(shù)。預(yù)測準(zhǔn)確率的值越高,說明模型效果越好。
為了驗(yàn)證模型與不同輸入特征的效果,本節(jié)進(jìn)行2組消融實(shí)驗(yàn)。第一組消融實(shí)驗(yàn)分析了不同特征對實(shí)驗(yàn)結(jié)果的影響;第二組消融實(shí)驗(yàn)分析了不同模型結(jié)構(gòu)對實(shí)驗(yàn)結(jié)果的影響。
(1)消融實(shí)驗(yàn)一。在{,,,,}集合中5個特征的基礎(chǔ)上,分別舍棄不同特征,再將剩余特征作為引入注意力機(jī)制的雙層LSTM模型的輸入,對比實(shí)驗(yàn)效果見表2。
表2 選擇不同輸入特征的實(shí)驗(yàn)效果對比表Tab.2 Comparison table of experimental effects of choosing different input features
由表2可見,當(dāng)選擇{克制指數(shù)差值、配合指數(shù)差值、英雄強(qiáng)弱、陣容合理度、前15 min的比賽的實(shí)時數(shù)據(jù)}中所有特征作為模型輸入時,模型的預(yù)測準(zhǔn)確率為71.8%,當(dāng)減少某一特征時,對比選擇所有特征作為輸入的實(shí)驗(yàn)結(jié)果,模型的預(yù)測準(zhǔn)確率均有所下降。其中,當(dāng)減少前15 min的比賽的實(shí)時數(shù)據(jù)這一特征時,模型的預(yù)測準(zhǔn)確率只有61.2%。說明在上述所有特征中,前15 min比賽的實(shí)時數(shù)據(jù)對結(jié)果的影響是最大的。綜上可知,本文選擇的所有特征,都對模型最后的預(yù)測結(jié)果有所貢獻(xiàn)。
(2)消融實(shí)驗(yàn)二。將所有特征:{克制指數(shù)差值、配合指數(shù)差值、英雄強(qiáng)弱、陣容合理度、前15 min的比賽的實(shí)時數(shù)據(jù)},分別作為引入注意力機(jī)制的雙層LSTM模型、雙層LSTM模型、多層感知機(jī)、隨機(jī)森林模型的輸入,對比在相同輸入特征下,不同模型中的效果。各模型實(shí)驗(yàn)效果對比見表3。
表3 不同模型的實(shí)驗(yàn)效果對比表Tab.3 Comparison table of experimental effects of different models
由表3可知,相對其他模型,引入注意力機(jī)制的雙層LSTM模型的預(yù)測準(zhǔn)確率最高,為71.8%。
針對比賽實(shí)時預(yù)測問題,本文采用引入注意力機(jī)制的雙層LSTM模型模型,該模型以比賽中的經(jīng)驗(yàn)、金幣及陣容信息作為模型輸入,預(yù)測比賽的最終結(jié)果,在比賽進(jìn)行到第15 min時,預(yù)測準(zhǔn)確率為71.8%。較傳統(tǒng)方法相比,預(yù)測準(zhǔn)確率提高了1.5%以上,得到了較優(yōu)的效果。在MOBA類游戲中,選手的水平同樣影響著比賽的勝負(fù),而本文暫未考慮選手的因素,在未來的研究中,可以彌補(bǔ)這一不足,從而進(jìn)一步提升模型預(yù)測結(jié)果的準(zhǔn)確性。