游戲中心個性化推薦系統(tǒng)實踐
1 引言
1.1 B站游戲中心簡介
B站游戲中心是一個游戲分發(fā)平臺,它提供游戲下載、游戲評測、游戲攻略和游戲活動等相關(guān)內(nèi)容,用戶可以在這里找到各種優(yōu)秀的游戲作品,預(yù)約測試,下載資源,以及參與游戲社區(qū)的互動。游戲中心首頁如圖1-1所示:
圖1-1 B站游戲中心首頁
1.2 游戲中心推薦系統(tǒng)的背景和意義
盡管游戲中心的用戶是主站用戶的一個子集,但鑒于主站用戶有相當(dāng)一部分是游戲玩家,游戲中心的用戶規(guī)模十分龐大;另外游戲中心的游戲非常豐富,涵蓋了各種類型的游戲,包括手機游戲、電腦游戲和主機游戲等。
游戲中心推薦系統(tǒng)是這些游戲和海量用戶的橋梁,為游戲用戶推薦他們感興趣的B服游戲,幫助游戲用戶解決游戲數(shù)量過多帶來的信息過載問題,用戶下載了這些游戲并游玩后,作為渠道服的B站能獲得相應(yīng)的渠道分成,從而實現(xiàn)共贏的局面。
總體來講,游戲中心推薦系統(tǒng)一方面可以幫助用戶解決"發(fā)現(xiàn)游戲"的痛點,精準(zhǔn)推薦可以降低用戶的打開成本。另一方面,推薦系統(tǒng)不僅可以幫助提高轉(zhuǎn)化率,減少無效曝光,而且可以整合利用零碎流量,交叉推廣指定的游戲,還可以建立更加詳細(xì)的用戶畫像體系,將用戶留在B站生態(tài)當(dāng)中。
當(dāng)前游戲中心涉及到個性化游戲推薦的模塊包括首頁feed流推薦,首頁近期新游推薦和詳情頁相關(guān)游戲推薦等,如圖1-2所示:
圖1-2 游戲中心所涉及的個性化推薦模塊
1.3 游戲推薦系統(tǒng)的挑戰(zhàn)
游戲推薦系統(tǒng)在建設(shè)的過程中主要面臨以下兩個方面的挑戰(zhàn):
(1)系統(tǒng)實現(xiàn)上面臨的挑戰(zhàn)
為了適應(yīng)游戲分發(fā)業(yè)務(wù)的快速發(fā)展,游戲推薦系統(tǒng)需要能夠靈活地應(yīng)用新的算法和策略。因此,在設(shè)計推薦系統(tǒng)的時候,要盡量考慮其通用性和可配置性。
(2)模型建設(shè)上面臨的挑戰(zhàn)
首先,用戶特征構(gòu)建方面,由于游戲用戶的興趣和偏好可能會隨著時間、場景、心情等因素而變化,這要求推薦系統(tǒng)需要能夠及時捕捉和適應(yīng)這些變化,提供更符合用戶當(dāng)前需求的游戲內(nèi)容和服務(wù)。
其次,游戲中心的用戶玩游戲需要付出較高的成本。用戶不僅要下載安裝包體,還要花費精力去學(xué)習(xí)游戲的玩法。這與短視頻、電商或信息流推薦不同,用戶可以很容易地退出、切換或忽略不喜歡的內(nèi)容。因此,游戲推薦對用戶來說有較高的試錯成本,使得用戶不愿意輕易改變游戲。例如,用戶看了一部動作電影,你再推薦一部動作電影,他很可能會觀看,但是用戶在玩王者榮耀,你再推薦一個不知名的射擊游戲,他很可能會忽略。
另外,用戶-游戲交互數(shù)據(jù)的稀疏性和偏差性。游戲用戶的行為數(shù)據(jù)往往是非常稀疏和不均衡的,比如用戶對游戲的評分、評論、收藏、下載等行為都是低頻和少量的,而推薦系統(tǒng)需要能夠從這些數(shù)據(jù)中學(xué)習(xí)和預(yù)測用戶的喜好和意圖。此外,用戶行為數(shù)據(jù)還可能存在各種維度的偏差,比如曝光偏差、位置偏差、選擇偏差等,而推薦系統(tǒng)需要能夠消除或減少這些偏差對模型的影響。
最后,游戲推薦系統(tǒng)需要在滿足用戶的個性化需求和保證平臺的利益之間找到一個平衡點。例如,用戶可能更喜歡低肝低氪的游戲,而平臺可能更想推廣付費或高價的游戲。如何設(shè)計一個合理的目標(biāo)函數(shù)和評估指標(biāo),以兼顧用戶和平臺的多方利益,也是一個建模挑戰(zhàn)。
1.4 游戲推薦系統(tǒng)的目標(biāo)和評價指標(biāo)
在游戲中心推薦場景下,用戶消費的是游戲,一旦完成游戲下載和后續(xù)的轉(zhuǎn)化,平臺就可以獲得分成收入,是直接的盈利方式。這與信息流推薦顯著不同,信息流推薦場景下,用戶消費內(nèi)容,平臺優(yōu)化算法來提高用戶粘性,然后通過互聯(lián)網(wǎng)廣告獲得收入,這種盈利方式是間接的。
游戲中心推薦系統(tǒng)的總目標(biāo)是提升B服游戲渠道的收入,這一方面要求系統(tǒng)能為用戶推薦他們真正喜愛的游戲,從而為游戲帶來更多的用戶;另一方面具體到每一個用戶,他們對某個游戲愿意投入的時間是有限的,需要推薦系統(tǒng)盡可能提高游戲用戶生命周期的總價值即LTV,而提升LTV與給用戶所推薦的游戲關(guān)系密切相關(guān)。這種目標(biāo)類似互聯(lián)網(wǎng)電商,既要提升用戶規(guī)模,又要提升客單價。
衡量游戲中心推薦的指標(biāo)主要包含消費側(cè)指標(biāo)和平臺側(cè)指標(biāo),消費側(cè)指標(biāo)如點擊率,下載率,平臺側(cè)指標(biāo)如新增用戶數(shù)和LTV等,如表1-1所示:
指標(biāo) | 公式 | 說明 | |
消費側(cè) | CTR | 點擊次數(shù)/PV | 單次曝光帶來的點擊 |
CVR | 下載次數(shù)/PV | 單次曝光帶來的下載 | |
UV-CTR | 點擊次數(shù)/UV | 人均點擊次數(shù) | |
UV-CVR | 下載次數(shù)/UV | 人均點擊下載次數(shù) | |
平臺層 | 萬次曝光收益 | 10000*收入/推送次數(shù) | 7天內(nèi)萬次曝光帶來的收入 |
NAU | 當(dāng)日新增人數(shù) | 衡量渠道的引量能力 | |
LTV | 生命周期收入/NAU | 衡量渠道的引量質(zhì)量 |
表1-1 游戲推薦系統(tǒng)的核心評價指標(biāo)
2 游戲推薦系統(tǒng)的整體架構(gòu)
圖2-1 游戲算法平臺架構(gòu)圖
游戲中心推薦系統(tǒng)在立項階段就考慮到了復(fù)用性,目前該系統(tǒng)不僅服務(wù)于推薦系統(tǒng),還服務(wù)于其他游戲算法業(yè)務(wù)如智能廣告投放、游戲禮包推薦、流失預(yù)測等系統(tǒng)。其系統(tǒng)架構(gòu)圖如圖2-1所示,涉及的模塊如下:
- 特征平臺:該模塊的核心功能包括特征注冊,特征計算,特征評估,特征篩選和樣本拼接等。算法團隊所有的特征都可以通過該模塊進行統(tǒng)一的管理,方便其他業(yè)務(wù)快速使用,避免重復(fù)造輪子現(xiàn)象。
- 深度學(xué)習(xí)平臺:該模塊的核心功能是包括模型訓(xùn)練,模型評估,模型調(diào)優(yōu),模型調(diào)度和模型分發(fā)。所有的訓(xùn)練任務(wù)都可以在共享的CPU和GPU資源下進行訓(xùn)練和評估,幫助算法工程師提高工作效率。該模塊最主要的產(chǎn)出是模型文件,供在線或者離線推理服務(wù)使用。
- 在線服務(wù)平臺:負(fù)責(zé)提供實時推薦接口服務(wù),包括特征處理引擎,模型推理引擎和算法服務(wù)引擎。特征處理引擎負(fù)責(zé)從特征存儲數(shù)據(jù)庫獲得在線推理所需的用戶、游戲的特征;模型推理引擎負(fù)責(zé)進行召回或者排序模型的實時推理,包含深度模型推理和機器學(xué)習(xí)模型的推理;算法服務(wù)引擎負(fù)責(zé)召回、排序和重排等階段的流量的動態(tài)配置,方便快速調(diào)整各個算法。
- AB實驗平臺:AB實驗平臺是推薦策略產(chǎn)品經(jīng)理和算法工程師必不可少的工具,它可以幫助他們快速驗證新的推薦方案,提升用戶體驗和業(yè)務(wù)收益。AB實驗平臺的核心是分流,即如何將用戶分配到不同的實驗組中,保證實驗的公平性和有效性。特別的,由于線上流量寶貴,待驗證的模型或者策略較多,這要求AB實驗平臺具備同時驗證各個模型優(yōu)劣的能力,涉及同層互斥,分層正交等。AB實驗平臺還需要提供數(shù)據(jù)收集、置信度分析和展示的功能,讓實驗者能夠方便地查看實驗結(jié)果,判斷實驗是否達到預(yù)期目標(biāo),是否需要調(diào)整或終止實驗。
- 配套系統(tǒng):涉及數(shù)據(jù)接入,分布式數(shù)據(jù)存儲和計算,算法模型框架和全鏈路的穩(wěn)定性保障等。
3 游戲推薦系統(tǒng)的核心技術(shù)
3.1 特征工程
3.1.1 涉及的特征和處理方法
數(shù)據(jù)和特征是推薦系統(tǒng)的基礎(chǔ),決定了推薦系統(tǒng)的效果和性能。其中特征的選擇和構(gòu)建直接影響了推薦系統(tǒng)能否有效地學(xué)習(xí)用戶和游戲之間的匹配程度,以及能否提高推薦的準(zhǔn)確性和效率。游戲推薦系統(tǒng)使用的特征類型和特征處理方法主要有:
- 用戶特征:包括用戶的基本屬性(如年齡、性別、地域等)、用戶的游戲中心行為數(shù)據(jù)(如游戲中心的搜索、曝光、點擊、下載、評論、預(yù)約等)、用戶的游戲內(nèi)行為數(shù)據(jù)(如活躍度、時長、玩法、付費等)、用戶的興趣偏好(如游戲類型、風(fēng)格、標(biāo)簽等)等。用戶特征的處理方法包括統(tǒng)計分析、聚類分析、協(xié)同過濾等。
- 游戲特征:包括游戲的基本屬性(如版本號、OB時間、廠商信息、安裝包大小、名稱、類型、風(fēng)格、標(biāo)簽等)、游戲的內(nèi)容數(shù)據(jù)(如畫面、音效、劇情等)、游戲的評價數(shù)據(jù)(如評分、評論、點贊等)、游戲中心統(tǒng)計數(shù)據(jù)(預(yù)約數(shù)、下載數(shù)、關(guān)注數(shù)等)、游戲運營數(shù)據(jù)(活躍、留存、平均時長、ARPU、ARPPU、LTV等)等。游戲特征通過文本分析、視頻圖像分析、語音分析等方法進行處理和提取。
- 上下文特征:包括時間、地點、場景、設(shè)備等影響用戶選擇游戲的外部因素。上下文特征通過時間序列分析、地理位置分析、場景識別等方法進行處理和提取。
3.1.2 特征平臺
游戲推薦系統(tǒng)的特征平臺是專門用來存儲,共享和管理算法模型中的特征。該特征平臺可以幫助其他游戲算法項目進行特征共享,同時可供非算法項目的使用,如廣告投放系統(tǒng)人群包的篩選,輿情分析系統(tǒng)特定人群的洞察等。
特征平臺的建設(shè)不僅可以提高特征復(fù)用率,減少重復(fù)工作,而且還可能保證特征一致性,避免因為特征不一致導(dǎo)致的模型性能下降,還會降低特征開發(fā)成本,簡化特征開發(fā)流程。
圖3-1 特征平臺
如圖3-1所示,游戲推薦的特征平臺的主要由三部分組成:
- 基礎(chǔ)特征管理模塊:一方面將基礎(chǔ)數(shù)據(jù)加工成基礎(chǔ)特征,另外涉及特征的注冊、更新、刪除和查找等。
- 組合特征管理:負(fù)責(zé)從基礎(chǔ)特征出發(fā)進行特征的組合,組合維度涉及時間維度,標(biāo)簽維度,場景維度等;當(dāng)然也支持這些組合特征的增刪改查任務(wù)。
- 樣本生成模塊:主要涉及樣本拼接和數(shù)據(jù)集的劃分,由于游戲推薦是多目標(biāo)學(xué)習(xí)任務(wù),該模塊還支持多標(biāo)簽樣本的生成。
3.2 游戲推薦模型
有了豐富的用戶和游戲特征后,接下來就可以對這些特征數(shù)據(jù)進行算法建模。推薦系統(tǒng)中算法模塊在游戲分發(fā)和智能決策中承擔(dān)重要責(zé)任,游戲分發(fā)鏈路通常被拆分成召回、排序和重排三大模塊,如圖3-2所示。
圖3-2 游戲推薦系統(tǒng)的游戲分發(fā)鏈路
3.2.1 召回模型
召回的目的是從海量的游戲庫中快速地篩選出少量的候選游戲,降低后續(xù)排序階段的排序壓力,召回模型決定了推薦系統(tǒng)的效果上限,所以要盡可能多的從不同維度來挖掘用戶的興趣點,為此我們從不同的方向進行游戲召回,這些召回包括以下幾個方方面:
- 熱門召回模型:根據(jù)游戲的流行度(點擊、下載、預(yù)約等)或評分等指標(biāo),給用戶推薦最熱門的游戲。優(yōu)點是簡單易實現(xiàn),能覆蓋大部分用戶的需求,缺點是缺乏個性化,容易造成頭部效應(yīng),忽略了用戶的興趣偏好和多樣性。
- 新游召回模型:根據(jù)游戲的上線時間或更新時間等指標(biāo),給用戶推薦最新的游戲。優(yōu)點是能提高新鮮感和探索性,缺點是新游戲可能沒有足夠的數(shù)據(jù)支持,難以評估其質(zhì)量和適合度。
- ICF召回模型:根據(jù)用戶對游戲的行為或評分,計算游戲之間的相似度,給用戶推薦與他喜歡的游戲相似的游戲。優(yōu)點是能提高個性化和多樣性,缺點是計算量大,需要定期更新相似度矩陣,忽略了用戶的動態(tài)變化和上下文信息。
- 標(biāo)簽召回模型:根據(jù)游戲的標(biāo)簽屬性,如類型、題材、風(fēng)格等,給用戶推薦與他喜歡的游戲標(biāo)簽相匹配的游戲。優(yōu)點是能提高多樣性和可解釋性,缺點是標(biāo)簽質(zhì)量和覆蓋度不一定高,需要人工維護標(biāo)簽體系,忽略了用戶的行為特征和實時反饋。
- 雙塔u2i模型:利用深度學(xué)習(xí)模型,將用戶和游戲分別編碼成向量,計算用戶和游戲之間的匹配度,給用戶推薦與他最匹配的游戲。優(yōu)點是能提高個性化和準(zhǔn)確性,缺點是模型復(fù)雜度高,需要大量數(shù)據(jù)訓(xùn)練,難以解釋推薦原因。
- 雙塔u2i2i模型:在雙塔u2i召回的基礎(chǔ)上,增加一個游戲向量作為輸入,計算用戶、歷史游戲和候選游戲之間的匹配度,給用戶推薦與他歷史游戲最相關(guān)的候選游戲。優(yōu)點是能提高個性化和多樣性,缺點是模型復(fù)雜度更高,需要更多數(shù)據(jù)訓(xùn)練,難以解釋推薦原因。
鑒于不同游戲召回通道各有優(yōu)缺點,而且效果也不同,實際使用的時候,將不同的通道進行加權(quán)融合,具體做法事給每個召回通道分配一個權(quán)重,根據(jù)權(quán)重對每個通道的召回結(jié)果進行排序或截斷,得到最終的召回召回組結(jié)果,傳遞給下游排序任務(wù)。這樣既考慮游戲召回的覆蓋度,又考慮了召回的準(zhǔn)確性。當(dāng)然不同召回組之間也可以進行效果對比,來確定什么樣的組合效果最好。這些融合方式支持可配置化,根據(jù)線上效果快速進行階段數(shù)量的調(diào)整。一種在線召回組實驗配置如圖3-3所示:
圖3-3 在線召回實驗配置樣例
3.2.2 排序模型
圖3-4 游戲推薦系統(tǒng)排序模型
排序模型的目的是根據(jù)用戶和游戲的特征,更精準(zhǔn)的預(yù)測用戶對游戲的點擊率或下載概率。為了提高排序模型的整體收益,我們的排序模型針對多目標(biāo)進行建模,并從不同的維度來學(xué)習(xí)用戶的不同偏好,包括多階特征交叉、注意力機制和序列建模,該模型的結(jié)構(gòu)如圖3-4所示:
- 多目標(biāo)建模:當(dāng)前的排序模型能同時優(yōu)化點擊和下載兩個目標(biāo),可以更好地捕捉用戶的長期興趣和短期需求,提高排序的效果。游戲推薦系統(tǒng)建設(shè)初期,為了快速論證算法的價值,我們使用點擊率作為排序模型的建模目標(biāo)。盡管取得了一定的收益,但是采用點擊率的單目標(biāo)建模不一定能反映用戶對游戲的真實滿意度,因為用戶可能只是出于好奇或誤操作而點擊了游戲,或者因為標(biāo)題黨或封面黨的問題導(dǎo)致用戶點擊后很快退出,因此在模型的準(zhǔn)確性上缺乏保證。為了提高排序模型的效果,我們將用戶點擊與下載聯(lián)合起來進行多目標(biāo)建模,以衡量用戶對游戲的真實興趣和偏好。下載是指用戶在點擊游戲后,是否選擇下載并安裝游戲。下載可以看作是用戶對游戲的一種更深層次的行為反饋,比點擊更能體現(xiàn)用戶的滿意度和忠誠度。
- 多階特征交叉:特征交叉是指將兩個或多個特征進行組合,生成新的特征,以捕捉特征之間的非線性關(guān)系。例如,用戶的性別和游戲的類型可以交叉生成一個新的特征,表示用戶對某種類型游戲的偏好。特征交叉可以增強模型的表達能力和泛化能力,提高排序效果。
- 注意力機制:注意力機制是指根據(jù)用戶或游戲的某些特征,給其他特征分配不同的權(quán)重,以突出重要的信息。例如,用戶的年齡和興趣可以作為注意力因子,給用戶的歷史游戲行為分配不同的權(quán)重,表示用戶對不同游戲的關(guān)注程度。注意力機制可以增強模型的關(guān)注度和靈活度,提高排序效果。
- 序列建模:序列建模是指將用戶或游戲的特征按照時間順序排列,利用循環(huán)神經(jīng)網(wǎng)絡(luò)或自注意力網(wǎng)絡(luò)等模型,學(xué)習(xí)特征之間的時序依賴關(guān)系。例如,用戶的歷史下載游戲行為可以作為一個序列輸入,利用Transformer模型,學(xué)習(xí)用戶的興趣變化和漂移。序列建??梢栽鰪娔P偷臅r序性和動態(tài)性,提高排序效果。
3.2.3 重排模型
游戲推薦系統(tǒng)重排階段的模型是指在精排模型進行候選游戲得分TopK篩選后,對篩選后游戲進行排序和調(diào)整,以提高推薦效果和用戶體驗,同時兼顧平臺利益。游戲推薦系統(tǒng)重排階段的模型可以包括以下幾個方面:
- 策略打散:策略打散是指根據(jù)一些預(yù)定義的規(guī)則或策略,對候選游戲進行打散或過濾,以避免推薦結(jié)果過于單一或重復(fù)。
- MMR多樣性模型打散:MMR多樣性模型打散是指利用最大邊際相關(guān)性的思想,對候選游戲進行打散或調(diào)整,以平衡推薦結(jié)果的相關(guān)性和多樣性。
- 活動期游戲強插:活動期游戲強插是指在一些特定的時間段或場景下,對候選游戲進行強制插入或替換,以提高推薦結(jié)果的時效性和吸引力。
- 新游扶持:新游扶持是指對一些剛上線或缺乏數(shù)據(jù)的新游戲進行特殊處理或優(yōu)先推薦,以提高推薦結(jié)果的覆蓋率和探索性。
3.3 游戲推薦在線服務(wù)
上一節(jié)的召回和排序算法經(jīng)過深度學(xué)習(xí)平臺訓(xùn)練得到對應(yīng)的模型后,接下來就可以將這些模型部署到線上,為用戶提供個性化的游戲服務(wù),其中最主要的服務(wù)包含召回服務(wù)和排序服務(wù)。
3.3.1 召回服務(wù)
圖3-5 游戲推薦系統(tǒng)召回服務(wù)
首先是召回服務(wù),其負(fù)責(zé)給用戶提供不同召回通道的召回結(jié)果并進行一定的融合,它的輸入是候選游戲池,輸出是當(dāng)前用戶有可能點擊或者下載的游戲列表。其包含兩種召回方式,分別是倒排索引庫直接讀取召回結(jié)果和調(diào)用實時召回服務(wù)獲取召回的游戲列表,如圖3-5所示:
- 倒排索引庫直接返回:對于那些時效性要求沒有那么高的召回結(jié)果,直接從倒排索引庫獲取,比如ICF召回新游召回和熱門召回,這些召回結(jié)果會提前通過離線方式算法,直接同步到倒排索引庫。
- 實時召回服務(wù)返回:對于那些時效性要求比較高的召回結(jié)果,需要進行實時的召回。如1.3節(jié)所述,游戲用戶的興趣和偏好可能會隨著時間、場景、心情等因素而變化,這要求推薦系統(tǒng)需要能夠及時捕捉和適應(yīng)這些變化。為了解決該問題,可以在進行雙塔召回的時候,實時計算出用戶當(dāng)前的表征,然后實時的找到與該用戶最相關(guān)的游戲列表。雙塔模型中的實時游戲召回方案如圖3-6所示,首先通過離線訓(xùn)練獲取用戶塔的模型參數(shù)和所有游戲的表征,其中模型參數(shù)交給推理服務(wù),游戲表征交給索引數(shù)據(jù)庫;然后當(dāng)進行在線推理的時候,將用戶特征和用戶當(dāng)前的狀態(tài)輸入到用戶塔模型得到用戶當(dāng)前的向量表征,然后調(diào)用索引服務(wù)獲取用戶當(dāng)前狀態(tài)下的游戲召回列表。這樣做不僅能根據(jù)用戶當(dāng)前的狀態(tài)有針對性的進行召回,使得召回的結(jié)果更加準(zhǔn)確,而且由于游戲特征一般變化較慢所以不用再做一次推理,從而可以節(jié)省計算資源。
圖3-6雙塔模型的召回服務(wù)
3.3.2 排序服務(wù)
圖3-7多級緩存排序服務(wù)
接下來是排序服務(wù),它負(fù)責(zé)對召回的游戲進行精準(zhǔn)的預(yù)估,得到用戶最有可能點擊或者下載的游戲。該服務(wù)執(zhí)行過程如圖3-7所示,其接收召回服務(wù)得到的游戲列表,然后根據(jù)待預(yù)測的用戶id去特征庫獲取用戶特征,游戲特征和當(dāng)前的上下文信息進行拼接,然后交給3.2.2節(jié)提到的排序模型。其產(chǎn)出是各個召回游戲的精準(zhǔn)預(yù)測得分。
在實際使用過程當(dāng)中,我們采用了多級緩存機制來提升該服務(wù)的效率。主要是考慮到每個用戶召回的游戲不同,如果每來一次請求就去特征庫獲取這些游戲的特征比較耗時,而這些游戲特征通常不會頻繁的變更,所以可以將它們懶加載到JVM內(nèi)存,并設(shè)定過期時間,這樣可以大幅提升排序服務(wù)的速度。同樣的,一些用戶的基礎(chǔ)屬性和長期興趣在一定時間段是固定的,這種時效性較低的特征也可以進行類似的緩存。
3.4 在線AB服務(wù)
游戲推薦系統(tǒng)中的AB服務(wù)系統(tǒng)是一種用于評估和優(yōu)化推薦在線效果的工具。它可以幫助實驗者在不同的推薦策略之間進行對比實驗,比如不同的排序算法、不同的推薦內(nèi)容、不同的展示方式等,然后根據(jù)實驗結(jié)果選擇最優(yōu)的方案。
圖3-8 算法或策略迭代流程
當(dāng)前游戲推薦系統(tǒng)算法或者策略的迭代流程如圖3-8所示,首先進行離線實驗,當(dāng)離線指標(biāo)(如排序的gAUC,召回的HR值)達到預(yù)期的時候,將模型發(fā)布到線上先進行小流量的AB測試,之后進行實驗組效果的置信度檢驗,只有當(dāng)檢驗通過后,才可以全流量上線。為了保證該算法的快速迭代,我們開發(fā)了AB服務(wù),該AB服務(wù)涉及的要點包括:
- 組內(nèi)互斥:在同一個實驗組內(nèi),只有一個實驗策略生效,避免實驗之間的干擾和沖突。目前支持根據(jù)用戶ID或設(shè)備ID進行哈希分桶,也支持根據(jù)用戶特征或行為進行分層抽樣。
- 分層正交:在不同的實驗層級上,實驗策略可以正交組合,增加實驗的靈活性和覆蓋度。比如當(dāng)同時更新了召回和排序模型,需要AB服務(wù)能夠保證不同層的實驗是正交的。
- 置信度檢驗:在實驗結(jié)束后,對實驗結(jié)果進行統(tǒng)計分析,判斷實驗效果是否顯著和穩(wěn)定。目前游戲中心推薦系統(tǒng)的AB服務(wù)支持的置信度檢驗的方法有多種,既包含t檢驗、z檢驗、卡方檢驗等常用的假設(shè)檢驗方法,也包括貝葉斯后驗概率計算等。
- 白名單:在實驗開始前,對一些特定的用戶或設(shè)備進行預(yù)先分配,保證他們能夠接收到指定的實驗策略。該項功能在功能測試、線上灰度和產(chǎn)品驗收環(huán)節(jié)經(jīng)常使用。
- 流量反轉(zhuǎn):為了消除流量本身的影響因素,進一步判斷新的模型或者策略的有效性,我們在實驗流程中,會對部分流量進行反轉(zhuǎn)處理,即將原本分配到對照組的流量分配到實驗組,或者將原本分配到實驗組的流量分配到對照組。
3.5 其他技術(shù)-樣本拼接和模型訓(xùn)練
游戲推薦系統(tǒng)中的樣本拼接,是指在離線訓(xùn)練模型時,將用戶曝光后的點擊、下載、新登等數(shù)據(jù)和候選物品的特征數(shù)據(jù)進行關(guān)聯(lián)和組合,形成一個完整的樣本。
樣本拼接最大的挑戰(zhàn)是樣本實時性與準(zhǔn)確性不可兼得問題:當(dāng)前手機游戲動輒就是幾個GB大小的安裝包,下載安裝包過程比較耗時,這使得游戲曝光和下載完成之間存在很大的時間差,如果在下載完成后進行樣本拼接,則拼接的準(zhǔn)確率是100%,但是時效性往往超過30分鐘。而如果在曝光和下載完成之間進行樣本拼接,則會出現(xiàn)一部分的樣本被誤標(biāo)注的現(xiàn)象。
我們通過Flink窗口等待來解決該問題,其核心是確定窗口的等待時間。首先統(tǒng)計歷史數(shù)據(jù)數(shù)據(jù),找到曝光后的點擊或者下載完成耗時的拐點,以該拐點所對應(yīng)的耗時作為Flink窗口等待的時間。例如,假如95%的下載完成發(fā)生在游戲被曝光后15分鐘內(nèi),那么樣本拼接可以在曝光后等待15分鐘,該時間段內(nèi)游戲被下載則為正樣本,其他情況下都判定為負(fù)樣本。
有了樣本后,下一步就是進行模型訓(xùn)練。由于上述方案會導(dǎo)致部分樣本標(biāo)簽有誤,少量的這種錯誤對模型幾乎沒有影響,但是隨著時間的推移錯誤的樣本數(shù)量會累加,最終會影響模型效果。為了避免這個問題,我們額外開啟一個Flink樣本拼接的Job,該Job的窗口時間設(shè)置的比較大,這樣可以確保所有的樣本都是正確標(biāo)注的,我們把該Job產(chǎn)生的樣本定義為"高完整性低時效性"。相應(yīng)的,我們把上述的第一個Job產(chǎn)生的樣本定義為"低完整性高時效性"樣本。
圖3-9 混合訓(xùn)練模式模式
有了這些樣本之后,我們使用混合訓(xùn)練模式,讓我們訓(xùn)練出更加精準(zhǔn)的模型。如圖3-9所示,這種模式包括兩種訓(xùn)練方式:全量訓(xùn)練和增量訓(xùn)練。全量訓(xùn)練使用的是"高完整性低時效性"的樣本,這些樣本標(biāo)注都是正確的,訓(xùn)練出的模型非常精準(zhǔn),但是訓(xùn)練周期較長。增量訓(xùn)練采用實時模式,從消息隊列獲取"低完整性高時效性"的樣本進行訓(xùn)練,訓(xùn)練出的模型可快速應(yīng)用于線上服務(wù)。我們還會定期從全量訓(xùn)練中獲取精準(zhǔn)模型來進行校準(zhǔn),以確保增量模型的準(zhǔn)確性和時效性。
4 游戲推薦系統(tǒng)的實踐效果
4.1 實驗設(shè)計
當(dāng)前游戲中心推薦系統(tǒng)距離初始版本已經(jīng)將近一年,為了驗證當(dāng)前推薦系統(tǒng)的效果,我們將當(dāng)前線上流量的20%切給初版推薦策略和模型。來對當(dāng)前版本和初始版本進行對比。實驗設(shè)置如下:
實驗組:當(dāng)前版本的推薦系統(tǒng)
對照組:初始版本的推薦系統(tǒng)
流量占比:實驗組vs對照組 = 80% vs 20%
實驗周期:兩周
評估指標(biāo):參考1.4節(jié)
當(dāng)前推薦系統(tǒng)和初始版本推薦系統(tǒng)主要的區(qū)別包括特征源數(shù)據(jù)、召回、排序、重排和時效性幾個方面,如表4-1所示:
組件 | 當(dāng)前版本推薦系統(tǒng) | 初版推薦系統(tǒng) |
特征源數(shù)據(jù) | 游戲中心數(shù)據(jù) | 游戲中心數(shù)據(jù) |
召回 | 熱門召回 | 熱門召回 |
排序 | 多目標(biāo)優(yōu)化 | 單目標(biāo)優(yōu)化 |
重排 | 策略重排 | 策略重排 |
時效性 | 分鐘級 | 天級 |
表4-1 推薦系統(tǒng)對比
4.2 實驗結(jié)果
圖4-1 實驗結(jié)果
實驗結(jié)果如圖4-1所示,其中曝光點擊率提升78%,曝光下載率提升76%,人均點擊提升119%,人均下載提升146%??梢园l(fā)現(xiàn)效果提升十分明顯,這證明了游戲中心個性化推薦系統(tǒng)確實可以幫助業(yè)務(wù)提升效果。
5 總結(jié)與展望
5.1 游戲推薦系統(tǒng)建設(shè)的主要貢獻
游戲推薦系統(tǒng)建設(shè)的主要貢獻如下:
- 業(yè)務(wù)支撐:通過優(yōu)化推薦算法和策略,顯著提升游戲分發(fā)的效率和收入。
- 系統(tǒng)建設(shè):搭建了完善的推薦系統(tǒng)架構(gòu),包括特征平臺、模型建設(shè)、在線服務(wù)、AB實驗平臺和訓(xùn)練平臺等模塊。其中特征平臺提高了特征復(fù)用率,減少了重復(fù)工作;模型上落地了業(yè)界主流的召回、排序和重排模型,并根據(jù)游戲?qū)嵺`進行了定制化改造。
- 方法論輸出:將游戲推薦系統(tǒng)的方法論和經(jīng)驗應(yīng)用到其他算法業(yè)務(wù),涉及游戲禮包推薦、游戲流失預(yù)測、游戲廣告投放、游戲輿情分析等,并取得了良好的效果。
5.2 游戲中心推薦系統(tǒng)未來的發(fā)展方向
游戲中心推薦系統(tǒng)作為一種智能化的信息檢索方式,能夠幫助用戶發(fā)現(xiàn)更適合自己的游戲,提高用戶的滿意度和留存率,為游戲開發(fā)者和運營者帶來更多的收益。隨著技術(shù)的進步和用戶需求的變化,游戲推薦系統(tǒng)也面臨著新的挑戰(zhàn)和機遇,未來的發(fā)展方向主要有以下幾個方面:
- 更準(zhǔn)確的游戲表征:利用多模態(tài)數(shù)據(jù)(如文本、圖像、音頻、視頻等)對游戲進行更全面和細(xì)致的描述,提取更豐富和有效的特征,增強游戲之間的相似性度量,提高推薦的準(zhǔn)確性和多樣性。
- 新的場景:除了傳統(tǒng)的游戲下載和安裝推薦外,接下來將探索新的推薦場景,如游戲素材推薦、游戲社區(qū)推薦等,為用戶提供更豐富和有趣的游戲體驗,增加用戶的參與度和忠誠度。
本期作者
王磊
嗶哩嗶哩資深算法工程師
洪升平
嗶哩嗶哩資深算法工程師
賀坤
嗶哩嗶哩資深算法工程師