日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

手Q游戏中心的个性化推荐实战 | CSDN博文精选

發(fā)布時(shí)間:2024/1/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手Q游戏中心的个性化推荐实战 | CSDN博文精选 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者 | zakexu 來(lái)源 | CSDN博客

原文由筆者2018年7月份所寫(xiě),在此做下整理。

文章目錄

  • 一、前言

  • 二、背景

  • 三、整體推薦框架

    • (一)離線層

      • 1、推薦物料的準(zhǔn)備

      • 2、數(shù)據(jù)處理

      • 3、樣本設(shè)計(jì)

      • 4、特征提取

      • 5、模型訓(xùn)練

      • 6、數(shù)據(jù)上線

    • (二)近線層

    • (三)在線層

  • 四、算法二期的迭代計(jì)劃

  • 五、總結(jié)

  • 作者簡(jiǎn)介

一、前言

自手Q游戲中心V6.0改版以來(lái),產(chǎn)品形態(tài)發(fā)生了較大的轉(zhuǎn)變,不再是純粹通過(guò)app列表做游戲分發(fā),而是試圖通過(guò)內(nèi)容來(lái)帶游戲分發(fā),全新的產(chǎn)品形態(tài)給推薦算法帶來(lái)了許多的挑戰(zhàn)。截至4月初,算法一期的工作已接近尾聲,借此機(jī)會(huì)寫(xiě)下總結(jié),一方面是將整個(gè)游戲中心的推薦邏輯進(jìn)行梳理,并將其中的一些經(jīng)驗(yàn)沉淀總結(jié),方便回溯;另一方面也試圖在梳理的過(guò)程中,整理出遇到的一些挑戰(zhàn),能夠更加明確算法二期的一些迭代思路。

二、背景

?手Q游戲中心作為騰訊手游重要的分發(fā)渠道之一,既是用戶發(fā)現(xiàn)感興趣游戲的重要入口,同時(shí)也提供了各手游平臺(tái)運(yùn)營(yíng)的能力。新版游戲中心不再是純粹地通過(guò)傳統(tǒng)app列表的方式做游戲分發(fā),而是新增了一系列通過(guò)內(nèi)容(攻略、視頻、直播、禮包等)拉下載、拉活躍的場(chǎng)景(如圖1所示)。為了更好地提升用戶進(jìn)入游戲中心的體驗(yàn)以及滿足平臺(tái)精細(xì)化運(yùn)營(yíng)(拉新、拉活、拉付費(fèi)等)的需求,通過(guò)海量用戶的行為流水挖掘用戶游戲偏好,精準(zhǔn)推薦用戶感興趣內(nèi)容成為了必然趨勢(shì)。為此,我們?cè)O(shè)計(jì)了全新的個(gè)性化推薦框架,給業(yè)務(wù)帶來(lái)了顯著的轉(zhuǎn)化率提升。

圖1:游戲中心個(gè)性化推薦場(chǎng)景

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

為了更好地制定算法二期的迭代計(jì)劃,本文主要對(duì)算法一期的工作做一個(gè)簡(jiǎn)單的復(fù)盤(pán),一方面是將項(xiàng)目開(kāi)展過(guò)程中的一些經(jīng)驗(yàn)進(jìn)行總結(jié)沉淀,另一方面也是想對(duì)游戲中心推薦場(chǎng)景中比較有挑戰(zhàn)性的問(wèn)題進(jìn)行梳理,以便算法二期迭代過(guò)程中更加具有針對(duì)性。

三、整體推薦框架

?本節(jié)主要結(jié)合游戲中心個(gè)性化推薦的算法框架(如圖2所示)以及工程框架(如圖3所示),對(duì)項(xiàng)目過(guò)程中遇到的一些問(wèn)題進(jìn)行總結(jié)歸納。游戲中心所采用的推薦框架是業(yè)界常見(jiàn)的三段式推薦邏輯:offline—nearline—online。離線層主要負(fù)責(zé)存儲(chǔ)全量用戶在游戲中心的流水?dāng)?shù)據(jù)、計(jì)算用戶長(zhǎng)期的行為屬性以及訓(xùn)練用戶的游戲偏好模型等;近線層主要是為了解決離線層計(jì)算周期長(zhǎng),響應(yīng)速度慢的缺點(diǎn),通過(guò)實(shí)時(shí)計(jì)算用戶的短期興趣,反饋到線上,從而能夠?qū)τ脩粼谟螒蛑行牡男袨樽龅綄?shí)時(shí)反饋;在線層可以理解為推薦引擎,主要是對(duì)業(yè)務(wù)請(qǐng)求通過(guò)一系列的計(jì)算,返回最終的推薦結(jié)果列表,在線層可以細(xì)分為召回層—精排層—重排層結(jié)構(gòu)。

圖2:游戲中心個(gè)性化推薦算法架構(gòu)圖

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

圖3:游戲中心個(gè)性化推薦工程架構(gòu)圖

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

(一)離線層

離線層適用于用戶長(zhǎng)期興趣的計(jì)算、離線模型的訓(xùn)練、模型參數(shù)的實(shí)驗(yàn)以及其他對(duì)時(shí)效性要求不高的任務(wù),因此離線層主要采取HDFS+Spark的工程實(shí)現(xiàn)(批處理的計(jì)算方式)。業(yè)務(wù)數(shù)據(jù)通過(guò)DC或者TDBank上報(bào),累計(jì)一定的數(shù)據(jù)量(游戲中心是以每小時(shí)為周期)周期性落地到HDFS或者TDW中以庫(kù)表的形式存在,以Spark為計(jì)算引擎,對(duì)庫(kù)表數(shù)據(jù)進(jìn)行一系列處理后,將結(jié)果數(shù)據(jù)推送到線上存儲(chǔ),構(gòu)成線上推薦引擎的重要數(shù)據(jù)來(lái)源。對(duì)于游戲中心這個(gè)場(chǎng)景,離線層的工作流可以劃分為6大步驟:推薦物料的準(zhǔn)備、數(shù)據(jù)處理、樣本設(shè)計(jì)、特征提取、模型訓(xùn)練、數(shù)據(jù)上線。

1、推薦物料的準(zhǔn)備

對(duì)于推薦系統(tǒng)來(lái)講,第一個(gè)需要確定的就是推薦物料(也就是推薦池子)。游戲中心推薦的物品主要有兩大類(lèi):第一大類(lèi)就是游戲app,目前游戲中心接入算法的游戲app主要包括精品游戲、單機(jī)游戲,基本上每天變化不大,因此該類(lèi)物料由業(yè)務(wù)每天例行上報(bào)更新并推送到線上存儲(chǔ)即可。第二大類(lèi)就是游戲內(nèi)容了,主要包括攻略、視頻、直播等,該類(lèi)物料相對(duì)來(lái)講實(shí)時(shí)性要求會(huì)高一些(新游上線當(dāng)天需要內(nèi)容同步更新)。目前游戲中心的內(nèi)容來(lái)源數(shù)據(jù)鏈路如圖4所示,主要來(lái)源是一些上游PGC內(nèi)容的采購(gòu),經(jīng)過(guò)自動(dòng)Tag提取之后進(jìn)入到標(biāo)簽內(nèi)容庫(kù),算法側(cè)直接從標(biāo)簽內(nèi)容庫(kù)獲取推薦物料,目前是按小時(shí)更新。

圖4:內(nèi)容源數(shù)據(jù)鏈路

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

2、數(shù)據(jù)處理

熟悉推薦流程的同學(xué)可能比較清楚,數(shù)據(jù)處理過(guò)程繁瑣枯燥且耗時(shí)較長(zhǎng),占據(jù)了整個(gè)算法開(kāi)發(fā)周期60%以上的時(shí)間,貫穿整個(gè)開(kāi)發(fā)流程。沒(méi)入坑之前有些人可能會(huì)以為推薦算法工程師是一個(gè)高大上的職位,每天舒舒服服地看下paper,研究下算法,做下實(shí)驗(yàn),特別酷。入坑之后就會(huì)發(fā)現(xiàn),每天干的最多的活就是處理數(shù)據(jù)。但這也充分說(shuō)明了數(shù)據(jù)處理的重要性,畢竟只有充分了解數(shù)據(jù)才能更了解業(yè)務(wù),才能更加合理地設(shè)計(jì)你的推薦策略。這兒講的數(shù)據(jù)處理主要包括數(shù)據(jù)驗(yàn)證、臟數(shù)據(jù)過(guò)濾以及數(shù)據(jù)轉(zhuǎn)換等。下面主要總結(jié)一下在數(shù)據(jù)處理過(guò)程中所踩過(guò)的坑:

(1)一定要做好數(shù)據(jù)上報(bào)準(zhǔn)確性的驗(yàn)證:前端同學(xué)有時(shí)候可能不是特別了解算法同學(xué)對(duì)于上報(bào)數(shù)據(jù)的訴求,所以在上報(bào)的時(shí)候可能會(huì)出現(xiàn)目標(biāo)不一致的情況。常見(jiàn)的情況有:上報(bào)邏輯出錯(cuò)(分頁(yè)feeds曝光只上報(bào)了第一條feeds的數(shù)據(jù))、上報(bào)id錯(cuò)位(曝光的operid報(bào)了下載的數(shù)據(jù)),上報(bào)id缺失等。而驗(yàn)證數(shù)據(jù)上報(bào)準(zhǔn)確性的常規(guī)操作就是打開(kāi)游戲中心,將每個(gè)場(chǎng)景你有可能會(huì)用到的用戶行為都操作一遍,記下操作時(shí)間,一個(gè)小時(shí)后從流水中撈出你的數(shù)據(jù),逐一驗(yàn)證是否合理(噩夢(mèng))。

(2)推薦邏輯出現(xiàn)問(wèn)題時(shí)候優(yōu)先考慮數(shù)據(jù)的準(zhǔn)確性:當(dāng)推薦結(jié)果產(chǎn)生問(wèn)題或者出現(xiàn)bug的時(shí)候,優(yōu)先檢查數(shù)據(jù)的準(zhǔn)確性。模型的魯棒性以及容錯(cuò)性一般都較高,最可能出現(xiàn)問(wèn)題的往往是數(shù)據(jù)環(huán)節(jié)。通常都是沿著數(shù)據(jù)鏈路往上游逐步排查從而定位問(wèn)題。

(3)對(duì)業(yè)務(wù)流水?dāng)?shù)據(jù)做一層數(shù)據(jù)中間表做解耦:算法開(kāi)發(fā)過(guò)程中,最好不要直接操作operid相關(guān)的邏輯,遇上業(yè)務(wù)改上報(bào)id時(shí)(比如產(chǎn)品改版換了新的一套o(hù)perid),改代碼改的你頭疼。? ?

(4)算法接入后一定要跟產(chǎn)品以及前端同學(xué)再三確認(rèn)算法ID的上報(bào)準(zhǔn)確性:業(yè)務(wù)在調(diào)用推薦引擎時(shí)都會(huì)獲得一個(gè)算法ID,算法ID上報(bào)的準(zhǔn)確性直接影響效果監(jiān)控報(bào)表的可信度。很多時(shí)候上了一個(gè)算法策略結(jié)果發(fā)現(xiàn)線上效果突然下降,排查半天才發(fā)現(xiàn)原來(lái)部分轉(zhuǎn)化行為的算法ID上報(bào)缺失,所以這兒一定要仔細(xì)驗(yàn)證清楚。

(5)臟數(shù)據(jù)過(guò)濾是一門(mén)玄學(xué):臟數(shù)據(jù)的定義通常需要根據(jù)業(yè)務(wù)場(chǎng)景來(lái)決定,有時(shí)候信心滿滿地將所有臟數(shù)據(jù)都過(guò)濾之后,線上效果反而降了,所以在過(guò)濾數(shù)據(jù)時(shí)要留個(gè)心眼(什么樣才是臟數(shù)據(jù)?臟數(shù)據(jù)是不是一定沒(méi)用?不要想當(dāng)然,還是用線上效果說(shuō)話吧!)。

(6)建立完善的報(bào)表監(jiān)控體系:推薦的一個(gè)重要環(huán)節(jié)就是報(bào)表監(jiān)控,不僅僅包括對(duì)效果的監(jiān)控,還包括對(duì)池子的監(jiān)控、核心用戶的監(jiān)控、item場(chǎng)景表現(xiàn)的監(jiān)控等。只有建立完善的監(jiān)控體系,才能在推薦結(jié)果受到挑戰(zhàn)時(shí)快速定位問(wèn)題。

圖5:游戲中心報(bào)表監(jiān)控體系

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

3、樣本設(shè)計(jì)

一般來(lái)講,推薦問(wèn)題都會(huì)轉(zhuǎn)換成二分類(lèi)問(wèn)題,也就是判斷用戶對(duì)某個(gè)物品是否會(huì)產(chǎn)生操作行為(通常一個(gè)U-I對(duì)就是一個(gè)樣本),那么要訓(xùn)練出一個(gè)看起來(lái)合理線上效果又比較理想的二分類(lèi)模型,正負(fù)樣本的設(shè)計(jì)顯得極其重要,下面總結(jié)一下游戲中心在設(shè)計(jì)不同場(chǎng)景的樣本時(shí)的一些經(jīng)驗(yàn):

(1)如何正確定義正負(fù)樣本?在純icon推薦的場(chǎng)景,咋一看可以理解為用戶下載了該app就是正樣本,沒(méi)有下載就是負(fù)樣本。但仔細(xì)一想這樣做會(huì)產(chǎn)生兩個(gè)問(wèn)題,第一個(gè)問(wèn)題就是正負(fù)樣本極其不均衡(機(jī)器學(xué)習(xí)中經(jīng)典問(wèn)題之一),因?yàn)橛脩魹g覽幾十個(gè)app可能也就下載1個(gè)app,當(dāng)然,機(jī)器學(xué)習(xí)針對(duì)正負(fù)樣本不均衡問(wèn)題會(huì)有很多解決方法,這兒就不展開(kāi)描述了;第二個(gè)問(wèn)題就是用戶沒(méi)有下載并不代表就是不喜歡,這兒會(huì)有幾個(gè)值得推敲的地方:1)用戶曝光了但是從沒(méi)有產(chǎn)生過(guò)下載行為,可能因?yàn)槭菬o(wú)效曝光,用戶關(guān)注的焦點(diǎn)不在這,所以無(wú)法判斷用戶到底是喜歡還是不喜歡;2)用戶在游戲icon曝光的場(chǎng)景并沒(méi)有產(chǎn)生下載行為,但是用戶產(chǎn)生了點(diǎn)擊行為,從而進(jìn)入到游戲詳情頁(yè)后產(chǎn)生下載行為,這樣是不是可以認(rèn)為用戶其實(shí)是喜歡的,產(chǎn)生的也是正樣本呢?舉這么個(gè)例子主要是為了說(shuō)明,對(duì)于每個(gè)不同的推薦場(chǎng)景來(lái)說(shuō),正負(fù)樣本的設(shè)計(jì)都應(yīng)該充分結(jié)合業(yè)務(wù)特性,不然容易產(chǎn)生有偏樣本。

(2)設(shè)計(jì)樣本時(shí)應(yīng)保證每個(gè)用戶樣本數(shù)的均衡:在app分發(fā)或者內(nèi)容分發(fā)場(chǎng)景,容易存在一些刷量用戶;該批用戶頻繁進(jìn)入游戲中心從而產(chǎn)生多次操作行為,因此在設(shè)計(jì)樣本時(shí)應(yīng)對(duì)多次操作的U-I樣本對(duì)去重,并保證每個(gè)用戶樣本數(shù)的均衡,從而避免模型被少數(shù)用戶所帶偏。

(3)樣本權(quán)重的設(shè)計(jì)問(wèn)題:在feeds推薦的場(chǎng)景中,不同推薦槽位所產(chǎn)生的樣本權(quán)重應(yīng)該有所不同;比方說(shuō)首頁(yè)feeds場(chǎng)景,用戶剛進(jìn)入場(chǎng)景時(shí),注意力會(huì)比較集中,產(chǎn)生的負(fù)樣本應(yīng)該置信度較高,權(quán)重也較高;當(dāng)用戶下滑到后面feeds的時(shí)候,對(duì)feeds的內(nèi)容可能會(huì)比較乏味了,產(chǎn)生的正樣本置信度應(yīng)該也是較高的,權(quán)重應(yīng)該也設(shè)置較高。

(4)適當(dāng)豐富樣本來(lái)源的多樣性:一般樣本都是基于當(dāng)前場(chǎng)景所產(chǎn)生的用戶行為來(lái)選取的,而當(dāng)前場(chǎng)景用戶的行為某種程度是受推薦結(jié)果而影響的(“你給我推薦了王者榮耀,那么我只能喜歡王者,但是可能我更喜歡你沒(méi)給我推的吃雞呢”),隨著算法的迭代,越到后面,算法其實(shí)是在迭代自身,越學(xué)越窄,這也是推薦系統(tǒng)經(jīng)典的多樣性問(wèn)題。youtube所采用的一種緩解的方法就是從其他沒(méi)有算法干擾的場(chǎng)景選取部分樣本,來(lái)避免這個(gè)問(wèn)題,而在游戲中心的樣本設(shè)計(jì)中,都會(huì)單獨(dú)開(kāi)設(shè)一股沒(méi)有算法干擾的小流量作為干凈樣本的補(bǔ)充。

4、特征提取

特征決定機(jī)器學(xué)習(xí)的上限,而模型只是在逼近這個(gè)上限。可想而知,特征設(shè)計(jì)的重要程度是多么的高。關(guān)于特征設(shè)計(jì)的方法論有很多,這兒就不具體討論。這里主要介紹一下游戲中心各個(gè)場(chǎng)景在設(shè)計(jì)特征時(shí)候的通用思路以及為了解決首頁(yè)feeds特征空間不一致時(shí)所采用的多模態(tài)embedding特征。

(1)通用特征設(shè)計(jì)思路:如圖6所示。這兒需要提一下的是,游戲中心的推薦場(chǎng)景由于涉及平臺(tái)利益,所以一般情況下,特征設(shè)計(jì)時(shí)都需要考慮特征的可解釋性。

?圖6:特征設(shè)計(jì)思路

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

(2)多模態(tài)embedding特征向量:首頁(yè)feeds流分發(fā)場(chǎng)景是一個(gè)具有挑戰(zhàn)性的場(chǎng)景,其中一個(gè)比較有意思的難題就是待推薦的內(nèi)容類(lèi)型較多。傳統(tǒng)的feeds推薦場(chǎng)景要么都是純視頻流、要么是純文字feeds等,而游戲中心首頁(yè)這兒待推薦的內(nèi)容類(lèi)型有攻略、視頻、直播、活動(dòng)、禮包等,而且每一種內(nèi)容類(lèi)型的二級(jí)承載頁(yè)產(chǎn)品形態(tài)也不一致,這樣會(huì)導(dǎo)致可提取的特征空間維度不一致。比方說(shuō)視頻承載頁(yè)的觀看時(shí)長(zhǎng)與圖文承載頁(yè)的觀看時(shí)長(zhǎng)量級(jí)不一致,視頻承載頁(yè)有icon點(diǎn)擊等操作而圖文承載頁(yè)則沒(méi)有。特征空間的不一致會(huì)導(dǎo)致模型在打分的時(shí)候會(huì)有所偏頗,離線實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn)視頻由于特征維度較齊全,打分結(jié)果整體偏高。因此,為了減緩特征空間維度不一致問(wèn)題,游戲中心首頁(yè)feeds流引入了多模態(tài)embedding特征向量,該方法在企鵝電競(jìng)視頻推薦場(chǎng)景已經(jīng)取得了較好的效果(如圖7所示)。多模態(tài)embedding特征向量的設(shè)計(jì)主要參考youtube的論文,從而獲得每個(gè)user、item的低維特征向量,一方面解決item的原始特征空間維度不一致問(wèn)題,另一方面也根據(jù)用戶的歷史行為,學(xué)習(xí)user、item的隱語(yǔ)義特征維度,起到信息補(bǔ)充的作用。

圖7:多模態(tài)embedding網(wǎng)絡(luò)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

5、模型訓(xùn)練

好了,終于到了別人所認(rèn)為的高大上的步驟了——模型訓(xùn)練,其實(shí)一點(diǎn)都不高大上,尤其是有了神盾推薦這個(gè)平臺(tái)。目前神盾推薦離線算法平臺(tái)已經(jīng)集成了大部分常見(jiàn)的推薦算法,包括LR,Xgboost,FM,CF等,因此離線訓(xùn)練只需要準(zhǔn)備好樣本跟特征,配置好參數(shù),就可以一鍵點(diǎn)run喝咖啡了(開(kāi)玩笑開(kāi)玩笑,是繼續(xù)搬下一塊磚)。傻瓜式的模型訓(xùn)練(調(diào)包俠)其實(shí)并沒(méi)有太大的坑,但是有幾點(diǎn)經(jīng)驗(yàn)也在這稍微寫(xiě)一下哈:

(1)注意調(diào)參的正確姿勢(shì):目前神盾默認(rèn)是將數(shù)據(jù)集劃分為train跟test,如果盯著test數(shù)據(jù)集的指標(biāo)來(lái)調(diào)參的話,是很有可能出現(xiàn)線下高線上低的情況。因?yàn)槎⒅鴗est指標(biāo)進(jìn)行調(diào)參的話容易加入個(gè)人先驗(yàn),本身就是一種過(guò)擬合的操作,正規(guī)的操作應(yīng)該是將數(shù)據(jù)集劃分為train-test-validation。

(2)同樣的業(yè)務(wù)場(chǎng)景建議共用一個(gè)大模型:新版游戲中心目前有9個(gè)場(chǎng)景需要算法接入,如果每一個(gè)場(chǎng)景都單獨(dú)建模的話,一來(lái)維護(hù)成本高,二來(lái)浪費(fèi)人力。適當(dāng)對(duì)場(chǎng)景問(wèn)題進(jìn)行歸納,訓(xùn)練通用模型可以有效地節(jié)省開(kāi)發(fā)時(shí)間。比如說(shuō)首頁(yè)分類(lèi)列表推薦,游戲Tab的熱游列表推薦等,其實(shí)都是純icon的推薦,可以用統(tǒng)一的大模型來(lái)建模。通用模型首先要考慮的問(wèn)題就是樣本、特征的選取,樣本可能比較好設(shè)計(jì),匯總所有場(chǎng)景的樣本即可,最多就是根據(jù)場(chǎng)景特性設(shè)計(jì)不同的權(quán)重;而特征就需要好好斟酌,是分場(chǎng)景提取特征還是匯總后提取、不同場(chǎng)景特征維度不一致如何處理等。

(3)選擇合適的機(jī)器學(xué)習(xí)方案:目前首頁(yè)feeds是將排序問(wèn)題轉(zhuǎn)化為二分類(lèi)問(wèn)題,評(píng)估指標(biāo)選取的是auc,所以優(yōu)化的重點(diǎn)在于盡可能地將正負(fù)樣本區(qū)分開(kāi)(正樣本排在負(fù)樣本前面),但對(duì)于正樣本之間誰(shuí)更“正”卻不是二分類(lèi)模型的關(guān)注重點(diǎn)。神盾近來(lái)已經(jīng)支持pari-wise的LTR算法,可以解決任意兩樣本之間置信度問(wèn)題,后續(xù)可以在首頁(yè)feeds場(chǎng)景上做嘗試。

(4)選擇合適的優(yōu)化指標(biāo):對(duì)于視頻瀑布流場(chǎng)景,優(yōu)化的目標(biāo)可以有很多,比如人均播放個(gè)數(shù)、播放率、人均播放時(shí)長(zhǎng),具體需要跟產(chǎn)品同學(xué)溝通清楚。

(5)避免對(duì)分類(lèi)問(wèn)題的過(guò)度擬合:前面已經(jīng)提過(guò),在推薦場(chǎng)景,經(jīng)常將推薦問(wèn)題轉(zhuǎn)化為分類(lèi)問(wèn)題來(lái)處理,但是需要注意的是,推薦問(wèn)題不僅僅只是分類(lèi)問(wèn)題。分類(lèi)問(wèn)題是基于歷史行為來(lái)做預(yù)測(cè),但推薦問(wèn)題有時(shí)候也需要考慮跳出用戶歷史行為的限制,推薦一些用戶意想不到的item,因此,推薦是一個(gè)系統(tǒng)性問(wèn)題,應(yīng)當(dāng)避免過(guò)度擬合分類(lèi)問(wèn)題。

6、數(shù)據(jù)上線

數(shù)據(jù)上線可以說(shuō)是推薦系統(tǒng)中較為核心的環(huán)節(jié),其中會(huì)面臨很多難題。這兒的數(shù)據(jù)主要指的是離線計(jì)算好的物料數(shù)據(jù)、特征數(shù)據(jù)(用戶、物品)、模型數(shù)據(jù)等。目前神盾會(huì)周期性地對(duì)需要上線的數(shù)據(jù)出庫(kù)到hdfs,通過(guò)數(shù)據(jù)導(dǎo)入服務(wù)推送到線上存儲(chǔ),主要是grocery(用戶特征)跟共享內(nèi)存ssm(物品特征以及池子數(shù)據(jù)等查詢較為頻繁的數(shù)據(jù))。目前這兒會(huì)有幾個(gè)小問(wèn)題:

(1)數(shù)據(jù)的一致性問(wèn)題:離線模型在訓(xùn)練的時(shí)候,會(huì)對(duì)樣本數(shù)據(jù)跟特征數(shù)據(jù)做拼接,通常都是將當(dāng)前周期的樣本跟上一周期的特征做拼接,以天為例,也就是今天的樣本會(huì)跟昨天的特征數(shù)據(jù)做拼接。但是離線數(shù)據(jù)的計(jì)算以及上線是會(huì)有時(shí)間延遲的,尤其是特征數(shù)據(jù)。有可能今天的凌晨0點(diǎn)到5點(diǎn),線上所拉到的特征數(shù)據(jù)其實(shí)是前天的特征數(shù)據(jù),5點(diǎn)之后,昨天的特征數(shù)據(jù)才計(jì)算完并更新到線上。也就是說(shuō)凌晨5點(diǎn)之前,所產(chǎn)生的推薦結(jié)果其實(shí)是用前天的特征數(shù)據(jù)來(lái)計(jì)算的,那么離線訓(xùn)練的時(shí)候,拼接的特征數(shù)據(jù)就會(huì)與實(shí)際的數(shù)據(jù)不一致。

(2)數(shù)據(jù)的實(shí)時(shí)性問(wèn)題:前面也講了,業(yè)務(wù)數(shù)據(jù)一般會(huì)周期(按小時(shí))落地到hdfs或者tdw以庫(kù)表形式存在,基于spark進(jìn)行數(shù)據(jù)處理之后又推送到線上存儲(chǔ),這種復(fù)雜的數(shù)據(jù)處理鏈路導(dǎo)致數(shù)據(jù)時(shí)效性得不到保證(頻繁地?cái)?shù)據(jù)落地以及數(shù)據(jù)上線所導(dǎo)致)。因此,離線層僅適用于對(duì)數(shù)據(jù)時(shí)效性不高的任務(wù),比如長(zhǎng)期興趣的計(jì)算等。

(二)近線層

前面已經(jīng)提到,離線層在數(shù)據(jù)時(shí)效性以及數(shù)據(jù)一致性的問(wèn)題上面臨較大的挑戰(zhàn)。本質(zhì)上是由于數(shù)據(jù)頻繁落地以及上線導(dǎo)致的延遲所引起的,給游戲中心推薦帶來(lái)較大的困擾。企鵝電競(jìng)也面臨同樣的問(wèn)題,因此,兩個(gè)業(yè)務(wù)聯(lián)合設(shè)計(jì)了近線層(如圖8所示)。目前整個(gè)數(shù)據(jù)鏈路已經(jīng)打通,并且也在企鵝電競(jìng)業(yè)務(wù)上試點(diǎn)成功。整個(gè)框架是基于kafka+spark streaming來(lái)搭建的,目前主要實(shí)現(xiàn)兩個(gè)功能點(diǎn):實(shí)時(shí)特征的提取以及實(shí)時(shí)樣本特征的拼接。由于近線層不需要落地以及線上導(dǎo)數(shù)據(jù)服務(wù),而是直接對(duì)業(yè)務(wù)流水進(jìn)行操作后寫(xiě)入線上存儲(chǔ),因此耗時(shí)較少,基本可以做到秒級(jí)別的特征反饋,解決了離線層計(jì)算周期長(zhǎng)的缺點(diǎn),適用于用戶短時(shí)興趣的捕捉。

實(shí)時(shí)樣本特征的拼接主要是為了解決數(shù)據(jù)一致性問(wèn)題。離線層對(duì)樣本、特征進(jìn)行拼接的時(shí)候一般都是默認(rèn)當(dāng)前周期樣本拼接上一周期的特征,當(dāng)由于特征上線的延遲,有部分當(dāng)前周期樣本的產(chǎn)生其實(shí)是由t-2周期的特征所導(dǎo)致,因此為了保證訓(xùn)練數(shù)據(jù)的準(zhǔn)確性,我們?cè)诮€層設(shè)計(jì)了實(shí)時(shí)的樣本特征拼接。當(dāng)用戶請(qǐng)求時(shí),會(huì)帶上讀取的特征數(shù)據(jù),拼接到用戶的操作流數(shù)據(jù)上,構(gòu)成離線層的訓(xùn)練數(shù)據(jù)。

圖8:近線層功能邏輯

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

(三)在線層

在線層是推薦系統(tǒng)的關(guān)鍵環(huán)節(jié),直接影響最終的推薦結(jié)果。一般分為召回層,精排層、重排層(或者是matching、ranking、rerank)。召回層一般是起到粗篩的作用,對(duì)于內(nèi)容推薦來(lái)說(shuō),推薦的池子一般都是上萬(wàn)級(jí)別,如果直接進(jìn)行模型打分的話,線上服務(wù)壓力會(huì)比較大,因此,通常都會(huì)采用各種召回的策略來(lái)進(jìn)行候選集的粗篩。目前游戲中心所采用的召回策略主要有標(biāo)簽、熱度、新鮮度、CF等。精排層所干的事情就比較純粹了,一般就是模型加載以及模型打分,對(duì)召回的物品進(jìn)行一個(gè)打分排序。最后就是重排層,主要是對(duì)模型打分結(jié)果進(jìn)行一個(gè)策略的調(diào)整。游戲中心的重排排層主要有以下幾個(gè)邏輯:1)分類(lèi)打散:首頁(yè)feeds在推薦的時(shí)候,如果只由模型進(jìn)行打分控制的話,容易出現(xiàn)游戲扎堆的現(xiàn)象,也就是連續(xù)幾條feeds都是同款游戲,因此需要重排層來(lái)調(diào)整展示的順序;2)流量分配:游戲的分發(fā)涉及平臺(tái)的利益,每款游戲的曝光量會(huì)影響平臺(tái)的收入,因此需要合理分配每款游戲的展示量;3)bandint策略:主要是用于興趣試探,feeds場(chǎng)景會(huì)涉及多種內(nèi)容類(lèi)型,如何在推薦用戶歷史喜歡的內(nèi)容類(lèi)型以及嘗試曝光新的內(nèi)容類(lèi)型之間做平衡是推薦系統(tǒng)典型的E&E問(wèn)題,這兒我們?cè)O(shè)計(jì)了一個(gè)簡(jiǎn)單的bandint策略,下面會(huì)詳細(xì)講一下。4)運(yùn)營(yíng)策略:一些偏業(yè)務(wù)性質(zhì)的運(yùn)營(yíng)策略也會(huì)在重排層體現(xiàn)。

推薦系統(tǒng)中會(huì)遇到一個(gè)經(jīng)典的問(wèn)題就是Exploitation(開(kāi)發(fā)) VS Exploration(探索)問(wèn)題,其中的Exploitation是基于已知最好策略,開(kāi)發(fā)利用已知具有較高回報(bào)的item(貪婪、短期回報(bào)),而對(duì)于Exploration則不考慮曾經(jīng)的經(jīng)驗(yàn),勘探潛在可能高回報(bào)的item(非貪婪、長(zhǎng)期回報(bào)),最后的目標(biāo)就是要找到Exploitation & Exploration的trade-off,以達(dá)到累計(jì)回報(bào)最大化。對(duì)于游戲中心首頁(yè)feeds而言,一味推薦用戶歷史喜歡的內(nèi)容類(lèi)型或者大量嘗試曝光新的內(nèi)容類(lèi)型都是不可行的;首先用戶的興趣可能會(huì)有所波動(dòng),過(guò)去可能喜歡視頻類(lèi)型,但是下一刻就可能不喜歡了;其次一味推薦用戶歷史喜歡的內(nèi)容類(lèi)型,可能會(huì)讓用戶產(chǎn)生厭倦。為了平衡兩者之間的關(guān)系,我們?cè)谥嘏艑釉O(shè)計(jì)了一個(gè)簡(jiǎn)單的策略,具體如圖9、圖10所示。

圖9:游戲中心bandit策略算法邏輯? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

圖10:游戲中心bandit策略具體實(shí)現(xiàn)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

四、算法二期的迭代計(jì)劃

?目前游戲中心個(gè)性化推薦所遇到的難點(diǎn)以及下一步的迭代計(jì)劃主要如下:

1、外部數(shù)據(jù)的引入:

1)結(jié)合第三方數(shù)據(jù)做推薦:目前游戲中心個(gè)性化推薦的依據(jù)主要是用戶的場(chǎng)景表現(xiàn)、游戲內(nèi)表現(xiàn)以及一些基礎(chǔ)的畫(huà)像數(shù)據(jù),數(shù)據(jù)來(lái)源較為單一。引入更多的第三方業(yè)務(wù)數(shù)據(jù)(比如企鵝電競(jìng)),一方面可以豐富用戶的特征維度,另一方面可以給用戶帶來(lái)體驗(yàn)上的提升(用戶剛在企鵝電競(jìng)看了個(gè)吃雞的直播,來(lái)到游戲中心就給推薦了“刺激戰(zhàn)場(chǎng)”)。

2)豐富推薦物料:目前游戲中心的內(nèi)容來(lái)源部分存在“同質(zhì)化”現(xiàn)象,素材類(lèi)型還不是特別豐富,需要引入更多優(yōu)質(zhì)的外部?jī)?nèi)容。

2、多模態(tài)特征提取:游戲中心的推薦內(nèi)容類(lèi)型較為豐富,包括了視頻、圖文、活動(dòng)、禮包等,如何在同一個(gè)特征向量空間對(duì)各個(gè)item進(jìn)行信息抽取是目前遇到的難題之一。現(xiàn)有的解決方案是基于youtube的embedding網(wǎng)絡(luò)進(jìn)行user、item的embedding向量學(xué)習(xí)。該網(wǎng)絡(luò)的輸入是無(wú)序的,也就是沒(méi)有考慮用戶歷史行為的軌跡,那么是否可以用圖來(lái)表示行為的軌跡,基于graph embedding的方法獲得信息更加豐富的item向量?目前業(yè)界也有若干基于graph embedding的推薦案例(手淘首頁(yè)、阿里湊單)。

3、內(nèi)容元信息的提取:目前游戲中心對(duì)于item的特征提取要么是基于統(tǒng)計(jì)的特征,要么就是基于item歷史行為的embedding特征或者tag提取,對(duì)于內(nèi)容本體信息的提取還較為薄弱,如何有效地提取非結(jié)構(gòu)化內(nèi)容的信息是下一步迭代需要考慮的問(wèn)題。

4、模型的快速更新:對(duì)于用戶興趣的實(shí)時(shí)捕捉,不僅依賴于數(shù)據(jù)的實(shí)時(shí)更新,同樣依賴于模型的實(shí)時(shí)更新。目前線上的模型是按天例行更新,如何快速地訓(xùn)練模型以及部署模型是后續(xù)不可避免的問(wèn)題。

5、優(yōu)化指標(biāo)考慮收入相關(guān)因子:當(dāng)前的優(yōu)化指標(biāo)基本是轉(zhuǎn)化率、時(shí)長(zhǎng)等推薦系統(tǒng)常見(jiàn)的指標(biāo),但游戲中心涉及平臺(tái)收入,需要綜合考慮每個(gè)游戲的收益(類(lèi)似廣告系統(tǒng)中的競(jìng)價(jià))。如何設(shè)計(jì)合理的優(yōu)化指標(biāo)(考慮游戲arpu、ltv等)以及在用戶體驗(yàn)跟平臺(tái)收入之間做平衡也是下一步迭代的關(guān)鍵。

6、流量分配問(wèn)題:首頁(yè)feeds場(chǎng)景既涉及游戲流量的分配,也涉及內(nèi)容類(lèi)型流量的分配,如何有效地設(shè)計(jì)流量分配方案,從而減輕重排邏輯的負(fù)擔(dān)也是需要考慮的優(yōu)化點(diǎn)。

7、拉活還是拉新:如何根據(jù)用戶在游戲生命周期的不同階段推薦合適的內(nèi)容是首頁(yè)feeds場(chǎng)景需要考慮的問(wèn)題。

8、新品試探:目前我們只是在內(nèi)容類(lèi)型上做了一些簡(jiǎn)單的策略,后續(xù)還需要調(diào)研更加成熟的解決方案來(lái)解決E&E問(wèn)題。

五、總結(jié)

本文主要是對(duì)游戲中心在算法一期的接入過(guò)程所遇到的問(wèn)題做一些總結(jié),以及梳理下一步迭代的計(jì)劃。由于算法一期的重心在于算法的快速接入,因此整個(gè)個(gè)性化推薦框架中所涉及到的策略可能都略顯“著急”,希望各位同行大佬多多包涵。關(guān)于游戲中心個(gè)性化推薦問(wèn)題,歡迎隨時(shí)交流。

作者簡(jiǎn)介

zakexu,碩士畢業(yè)于華南理工大學(xué),現(xiàn)任騰訊云AI算法工程師,負(fù)責(zé)騰訊云NLP的公有云產(chǎn)品架構(gòu)以及標(biāo)準(zhǔn)化產(chǎn)品交付!

個(gè)人博客:https://zakexu.blog.csdn.net/

知乎ID:zakexu

掃碼查看原文

▼▼▼

(*本文為AI科技大本營(yíng)轉(zhuǎn)載文章,轉(zhuǎn)載請(qǐng)聯(lián)系作者)


精彩推薦



2019 中國(guó)大數(shù)據(jù)技術(shù)大會(huì)(BDTC)再度來(lái)襲!豪華主席陣容及百位技術(shù)專家齊聚,15 場(chǎng)精選專題技術(shù)和行業(yè)論壇,超強(qiáng)干貨+技術(shù)剖析+行業(yè)實(shí)踐立體解讀,深入解析熱門(mén)技術(shù)在行業(yè)中的實(shí)踐落地。 6.6 折票限時(shí)特惠(立減1400元),學(xué)生票僅 599 元!

推薦閱讀

總結(jié)

以上是生活随笔為你收集整理的手Q游戏中心的个性化推荐实战 | CSDN博文精选的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。