劉 凱
(東北大學 計算機科學與工程學院,沈陽 110169)
電子競技行業飛速發展,近年來推出的MOBA類游戲正是當下最熱門的競技類游戲之一。在該類游戲中,參賽雙方的陣容選擇、比賽中雙方隊伍的經濟差與經驗差都對比賽的勝負起著決定性作用。根據陣容與比賽中的實時信息來預測比賽雙方的勝率已然成為該領域的研究熱點方向,其結果不僅可以為選手提供英雄選擇參考,也有助于游戲開發者改善游戲平衡性,相關技術還可以用于團隊競技類體育賽事的預測。
目前,研究人員對MOBA類游戲的勝率預測問題進行了大量的研究和工作,早期大部分研究都是基于游戲比賽的歷史數據,采用樸素貝葉斯、決策樹、邏輯回歸等傳統機器學習的方法來解決游戲的勝率預測問題。Kinkade等人用邏輯回歸與隨機森林的方法,在Dota2游戲中分別根據陣容與完整的賽后數據預測比賽的結果。Wang等人使用邏輯回歸、支持向量機、隨機森林的方法,將不同英雄在歷史比賽中的金幣、經驗、擊殺等特征作為特征輸入,預測Dota2游戲的比賽結果。Wang等人利用樸素貝葉斯的方法,根據比賽雙方所選陣容來預測Dota2游戲的比賽結果,雖然在訓練集上取得了85.33%的準確率,但在測試集上只有58.99%的準確率,過擬合現象較為嚴重。Song等人使用逐步回歸的方法,根據陣容預測Dota2比賽的結果,取得了解決61%的預測準確率。Lin使用梯度提升樹與邏輯回歸模型,根據賽前數據對比賽結果進行預測,但由于沒有運用比賽的實時數據,導致預測準確率較低。Cleghern等人使用自回歸模型與統計模型預測Dota2中英雄的血量變化,并取得了較優的效果。
隨著深度學習技術的發展,不少學者將神經網絡應用到預測模型中。Silva等人建立RNN模型,對英雄聯盟比賽進行實時預測,使用0~5 min的數據與20~25 min的數據分別預測比賽結果,各自取得了63.91%與83.54%的準確率。Grutzik等人使用傳統神經網絡建立模型,利用比賽時的玩家信息和英雄信息預測Dota2游戲的比賽結果,取得了較高的準確率。許晨波提出改進的雙向LSTM神經網絡用于預測Dota2游戲的比賽結果,并實現了陣容推薦功能。Yang等人將英雄信息、玩家信息的特征作為模型的輸入,實現了Dota2的賽前勝率預測,在沒有加入比賽實時數據的情況下,最高時取得了71.49%的預測準確率。在加入比賽的實時數據后,最高時則取得了93.73%的預測準確率。Hodge等人進行了Dota2的實時預測研究,并提出了一套電子競技獲勝預測研究的評估標準。Yang等人提出了一種時間序列模型TSSTN,用于解決王者榮耀的勝率預測問題。李康維等人提出了一種序列到序列的模型,預測MOBA類游戲的趨勢發展情況。
上述研究雖然取得了較好的效果,但依舊存在一定的不足。例如:在MOBA類游戲的實時預測問題中,沒有充分考慮不同時間點對結果的影響大小。受到文獻[7]的啟發,本文首先采用基于統計與Word2Vec的方法提取比賽雙方的陣容特征,并結合比賽中的實時信息作為模型輸入。模型結構上,采用2層LSTM模型,同時引入注意力機制,預測比賽的最終結果。本文的主要貢獻與創新點如下:
(1)提出引入注意力機制的雙層LSTM模型,通過雙層LSTM模型提取實時比賽中不同時間節點的特征數值;通過引入注意力機制為不同時間節點的特征數值賦予權重。
(2)采用統計與Word2Vec的方法提取比賽陣容的特征作為網絡輸入信息,提高模型的預測準確率與泛化能力。
(3)在真實的比賽數據集上進行實驗,得到的預測結果優于其他模型。
本節將對模型的輸入特征做詳盡闡述。在MOBA類游戲中,陣容的好壞在一定程度上決定了比賽的發展趨勢,合理的陣容是贏得比賽的基礎,但由于玩家水平、玩家在比賽中的發揮不同,導致較差的陣容也有可能在比賽中取得較大優勢,所以研究中將比賽雙方的陣容特征與比賽雙方實時的數據作為模型的輸入。陣容的好壞可以由陣容中英雄的配合能力、英雄個人能力、對敵方陣容的克制強度、陣容合理度來衡量;比賽的實時數據包含英雄擊殺數、小兵擊殺數、防御塔摧毀數量等,但以上實時數據最終都會轉化為經濟與經驗,所以比賽雙方實時的經濟與經驗數據可以反映不同時間點比賽雙方的實力差距。研究中給出的模型輸入特征見表1。下面將系統論述模型中各輸入特征的計算方式。

表1 模型的輸入特征列表Tab.1 List of input features for the model
部分英雄出場率很高,在團隊取得優勢時作用大,但是在團隊處于劣勢時就很難發揮作用,或者英雄的容錯率太低,一旦玩家發揮失誤,就會陷入劣勢。故英雄的出場次數不能完全反映英雄的強弱。所以引入英雄的平均勝率(average)作為英雄的特征之一。average的公式如下:

其中,win表示英雄獲勝的場次,total表示英雄出現的總場次。
不同英雄之間的技能或者購買的裝備之間存在著不同的配合關系,可以強化彼此的實力。配合關系會在數場比賽中反映出來,當2個配合關系強的英雄出現時,可以認為此時的勝率會比英雄單個出場時要高,于是文中引用配合指數(cooperate)來量化英雄間的配合關系。cooperate的公式如下:

其中,Y表示英雄與英雄屬于同一陣容時的獲勝的場次;N表示英雄與英雄屬于同一陣容的總場次。配合指數越高,說明2個英雄的配合關系越強,當配合關系小于05時,說明2個英雄存在著沖突,會影響彼此發揮。英雄間的配合關系矩陣如圖1所示。

圖1 配合關系可視化圖Fig.1 Visual diagram of mating relationship
圖1的橫、縱坐標均用于表示英雄的。 不同英雄之間的配合關系越強,則英雄的配合指數在圖1中的顏色越接近紅色,反之接近綠色。由于比賽中大部分英雄不會出現在同一隊伍中,故圖1中橫軸的大部分區域顏色一致。
以最低成本、例如一個小技能,來影響敵方英雄的發育、對線、出裝思路、后期輸出環境等,都能算作克制。Dota2中的克制關系表現得十分明顯。當克制關系強的2個英雄對陣時,勝率會出現不平衡的情況。于是通過克制指數(restrain)來量化2個英雄的克制關系。克制指數公式如下:

其中,W表示英雄,對陣時,獲勝的場次;A表示英雄、對陣的總場次。克制指數越高,說明2個英雄的克制關系越強,當克制指數大于05時,說明英雄克制英雄。當克制指數小于05時,說明英雄被英雄所克制。英雄間的克制關系矩陣如圖2所示。
圖2的橫、縱坐標均用于表示英雄的。 不同英雄之間的克制關系越強,則英雄的克制指數在圖2中的顏色越接近紅色,反之接近綠色。由圖2可見,英雄與英雄之間的克制關系差距較為明顯:比如4號英雄對7號英雄的克制指數為0.47,但對103號英雄的克制指數高達0.62。

圖2 克制關系可視化圖Fig.2 Visual diagram of restraint relationship
MOBA游戲的一個陣容由5個英雄構成,一個好的陣容應該同時包含核心、輔助、控制、靈敏等類型的英雄,由于玩家選擇英雄時的主觀性,可能導致陣容里缺少某些類型的英雄,或者重復選用相同類型的英雄,導致陣容不合理。為了解決該問題,本文引入了陣容合理度的概念。通過自然語言處理的方法,可以把英雄的名稱轉化為詞向量,以詞向量表示英雄。由于skip-gram模型能夠根據句子中的某一個單詞預測其上下文,故本節采用Word2Vec中的skip-gram模型來訓練詞向量。在訓練后要求類型越相似的英雄,對應的詞向量之間的相關性更高。于是可以用詞向量之間的相關性來衡量英雄屬于同一類別的概率。例如麗娜(Lina)和鳳凰(Phoenix)都屬于遠程類型、輔助,轉化為詞向量后2個英雄對應的詞向量的相似度應該是高的。研究中把每個陣容作為一個句子來當成輸入,通過訓練2 w個句子后得到不同英雄的詞向量,并通過PCA方法將訓練后的詞向量進行降維,再運用k-means的方法將降維后英雄的詞向量進行聚類,這里將英雄分為5類。不同類別的英雄在繪圖中會用不同顏色進行表示。英雄的詞向量可視化展示如圖3所示。
由圖3可以看出,類型相似的英雄,在圖3上的位置比較接近,相似度高。如Monkey_King(齊天大圣)與Lone Drui(德魯伊)都屬于核心位,在圖3上位置十分接近。通過Word2Vec工具,可以獲得2個英雄間的相似度。本文通過的數值來衡量陣容的合理度,的數學定義公式如下:

圖3 英雄向量可視化圖Fig.3 Heros vector visualization diagram

其中,S表示同一陣容中,英雄與英雄的相似度,表示同一陣容中英雄的個數。suitable的值越大,表明陣容中類似的英雄越多,陣容越不合理;suitable的值越小,表明陣容中存在的英雄種類越多,陣容更合理。
研究中將選定的英雄進行編號,當英雄的編號0,時,認為英雄處于陣容;當英雄的編號,2*時,認為英雄處于陣容。進而推得,隊伍的配合指數差值公式如下:


研究中將選定的英雄進行編號,當英雄的編號0,時,可認為英雄處于陣容;當英雄的編號,2*時,可認為英雄處于陣容。如此一來,雙方陣容的克制指數差值公式如下:

的值衡量了比賽雙方陣容間的克制指數的大小,越大,表示陣容對陣容的克制能力越大,反之則越小。例如陣容中包含{,,,,}這5名英雄,陣容中包含{,,,,}這5名 英 雄。 將restrain、restrain、…、restrain的值進行累加,得到的值。若大于0,說明陣容對陣容的克制關系較強,若小于0,則說明陣容對陣容的克制關系較強。
研究中將選定的英雄進行編號,當英雄的編號0,時,認為英雄處于陣容;當英雄的編號,2*時,認為英雄處于陣容。則陣容合理度的差值公式如下:


研究中將選定的英雄進行編號,當英雄的編號0,時,認為英雄處于陣容;當英雄的編號,2*時,認為英雄處于陣容。則隊伍中英雄能力強弱的差值的公式如下:


比賽中的雙方隊伍的經濟差與經驗差體現了不同時刻雙方的實力差距。設比賽雙方共有2*個英雄,則比賽中的實時數據向量()表示如下:

其中,gold表示比賽進行到第min時比賽雙方的隊伍經濟差;xp表示比賽進行到第min時比賽雙方的隊伍經驗差;G表示英雄在比賽進行到第min時獲得的金幣數值;x表示英雄在比賽進行到第min時獲得的經驗數值。
對于給定2支隊伍{,…,a}和{,…,b},其中a和b分別表示2隊中所選英雄,根據比賽進行過程中的信息預測,比賽隊伍和的獲勝概率分別為P和P,且有P+P=1。
在MOBA類游戲中,游戲的勝負不僅與比賽雙方陣容有關,還與比賽過程中比賽雙方的英雄擊殺、防御塔摧毀、野怪擊殺等實時數據相關。由于比賽局勢每一個時刻都在變化,僅憑游戲進行中單個時刻的數據很難預測比賽的結果,因此應該將比賽雙方的陣容信息以及比賽過程中不同時刻的信息作為預測依據,展開比賽結果的預測。本節提出的引入注意力機制的雙層LSTM模型以比賽雙方的陣容信息、不同時間的比賽信息作為模型輸入,運用LSTM結點處理時序信息,作為模型的編碼階段,同時引入注意力機制來計算不同時刻的信息對結果的影響權重,并加入全連接層作為過渡層;作為解碼階段,在輸出層采用函數作為激活函數,輸出比賽雙方的獲勝概率。
在本文的實時勝率預測模型中,模型的輸入是一個時間序列,因此用LSTM層作為輸入層,LSTM層返回每一個時間步的結果、即{,,…,h},此后將{,,…,h}作為第二層LSTM的輸入,再將第二層LSTM的輸出作為注意力層、即層的輸入,由此來得到不同時間步對結果的影響大小,最后將層的計算結果經過層,轉化為一維向量,另將層的輸出經過層后,采用函數進行歸一化,并將模型的輸出結果轉化為概率的形式,得到模型的輸出結果,模型結構如圖4所示。

圖4 實時勝率預測模型結構圖Fig.4 Structure diagram of the real-time winning rate prediction model
2.2.1 模型輸入介紹
模型的輸入為前min的比賽雙方的實時經驗、金幣、陣容信息,模型輸入的形式化定義如下:

其中,input(1≤≤)表示比賽第min時比賽雙方的實時經驗、金幣、陣容信息。
設比賽雙方共有2*個英雄,向量input形式化定義如下:

其中,“+”表示向量的連接。
2.2.2 模型輸出介紹
由于勝率預測是一個二分類問題,故模型的輸出是一個1*2的一維向量,其形式化的定義為:[P,P]。 其中,P表示隊伍的勝率,P表示隊伍的勝率。當P>P時,認為隊伍獲勝;當P<P時,認為隊伍獲勝;P=P時,則認為隊伍、的勝率相等。
本文的數據來源于opendota網站,在該網站上可以獲取到每場比賽的詳細數據,包括雙方陣容、比賽持續時間、英雄、比賽雙方每分鐘的金幣與經驗等。仿真時,從該網站上獲取了2019年1月1日至2019年12月31日的2.5 w場職業比賽數據。每場比賽數據至少包含以下信息:天輝、夜魘陣容所選英雄信息;獲勝方;比賽時長;比賽開始后雙方每一分鐘的經濟與經驗;每分鐘發生的英雄擊殺事件。
獲取的數據需要進行篩選,通過對每場比賽時間的判斷,時間小于20 min的比賽,可以認為是因為特殊原因提前結束的比賽,將這些數據剔除掉,以防干擾特征的準確性。將所有數據按6∶2∶2的比例劃分為訓練集、驗證集、測試集,且數據在輸入到模型前均進行歸一化處理。
實時勝率預測模型的效果由預測準確率()來評估,的公式如下:

其中,P表示隊伍比賽獲勝、且預測結果也為獲勝的次數;P表示隊伍比賽獲勝、且預測結果也為獲勝的次數;表示隊伍比賽獲勝的次數;表示隊伍比賽獲勝的次數。預測準確率的值越高,說明模型效果越好。
為了驗證模型與不同輸入特征的效果,本節進行2組消融實驗。第一組消融實驗分析了不同特征對實驗結果的影響;第二組消融實驗分析了不同模型結構對實驗結果的影響。
(1)消融實驗一。在{,,,,}集合中5個特征的基礎上,分別舍棄不同特征,再將剩余特征作為引入注意力機制的雙層LSTM模型的輸入,對比實驗效果見表2。

表2 選擇不同輸入特征的實驗效果對比表Tab.2 Comparison table of experimental effects of choosing different input features
由表2可見,當選擇{克制指數差值、配合指數差值、英雄強弱、陣容合理度、前15 min的比賽的實時數據}中所有特征作為模型輸入時,模型的預測準確率為71.8%,當減少某一特征時,對比選擇所有特征作為輸入的實驗結果,模型的預測準確率均有所下降。其中,當減少前15 min的比賽的實時數據這一特征時,模型的預測準確率只有61.2%。說明在上述所有特征中,前15 min比賽的實時數據對結果的影響是最大的。綜上可知,本文選擇的所有特征,都對模型最后的預測結果有所貢獻。
(2)消融實驗二。將所有特征:{克制指數差值、配合指數差值、英雄強弱、陣容合理度、前15 min的比賽的實時數據},分別作為引入注意力機制的雙層LSTM模型、雙層LSTM模型、多層感知機、隨機森林模型的輸入,對比在相同輸入特征下,不同模型中的效果。各模型實驗效果對比見表3。

表3 不同模型的實驗效果對比表Tab.3 Comparison table of experimental effects of different models
由表3可知,相對其他模型,引入注意力機制的雙層LSTM模型的預測準確率最高,為71.8%。
針對比賽實時預測問題,本文采用引入注意力機制的雙層LSTM模型模型,該模型以比賽中的經驗、金幣及陣容信息作為模型輸入,預測比賽的最終結果,在比賽進行到第15 min時,預測準確率為71.8%。較傳統方法相比,預測準確率提高了1.5%以上,得到了較優的效果。在MOBA類游戲中,選手的水平同樣影響著比賽的勝負,而本文暫未考慮選手的因素,在未來的研究中,可以彌補這一不足,從而進一步提升模型預測結果的準確性。