導(dǎo)讀:用戶增長一直是各類應(yīng)用關(guān)注的熱門議題,虎牙公司作為國內(nèi)知名的直播平臺(tái),除了在直播游戲化技術(shù)、虛實(shí)融合等領(lǐng)域持續(xù)積累,也在用戶增長方面投入了大量的實(shí)踐,用外部信息流廣告做有效投放進(jìn)行平臺(tái)的拉活、拉新。今天請(qǐng)到了虎牙直播用戶增長的算法組負(fù)責(zé)人郭楷揚(yáng)老師和架構(gòu)負(fù)責(zé)人葉士銘老師,分享《虎牙直播用戶增長中臺(tái)算法與工程實(shí)踐》,主要分為以下三部分:
- 背景介紹:用戶增長和投放
- 用戶增長算法實(shí)踐
- 用戶增長工程實(shí)踐
—
01
背景介紹:用戶增長和投放
首先和大家分享下用戶增長和投放的背景介紹。
1. 用戶增長全流程
首先簡單介紹一下用戶增長的全流程鏈路,分別是用戶獲取、激活用戶、提高留存和增加收入。今天主要介紹用戶獲取中的廣告拉新和提高留存中的廣告拉活。
接下來是廣告投放的流程:
- 首先,是投放前的目標(biāo)人群圈定。譬如:拉活的目標(biāo)人群就是最近N天沉默的人群。
- 隨后,在廣告平臺(tái)進(jìn)行投放并出價(jià)。
- 接著,用戶對(duì)展示廣告點(diǎn)擊,進(jìn)而進(jìn)行APP的拉起或者下載激活。
- 最后,我們會(huì)對(duì)用戶質(zhì)量進(jìn)行監(jiān)測(cè)。譬如:次日留存率、觀看率等,進(jìn)行用戶質(zhì)量跟蹤。
2. 廣告投放業(yè)務(wù)背景
廣告投放中的具體流程如圖,首先在抖音、QQ空間、手機(jī)百度等外部渠道展示虎牙的廣告素材。用戶點(diǎn)擊對(duì)應(yīng)的廣告,如果用戶已經(jīng)下載過虎牙app,那么則會(huì)跳轉(zhuǎn)至虎牙APP的承接頁面,否則跳轉(zhuǎn)至下載頁面。
以上就是用戶增長的廣告投放業(yè)務(wù)背景的介紹。
—
02
用戶增長算法實(shí)踐
算法實(shí)踐按廣告投放的幾個(gè)主要節(jié)點(diǎn)分為四大部分:人群定向、素材優(yōu)選、出價(jià)策略和用戶承接策略。
3. 人群定向
首先是人群定向,也就是保證廣告曝光給了我們的目標(biāo)用戶。這塊在過往,我們迭代過三個(gè)不同的階段。
第一個(gè)階段:離線白名單。
- 做法:就是通過離線計(jì)算目標(biāo)人群的白名單。按天傳給廣告平臺(tái)進(jìn)行投放。
- 效果:實(shí)現(xiàn)人群定向的基本訴求。
- 不足:由于離線延遲比較大,人群的更新不及時(shí),進(jìn)而導(dǎo)致用戶誤拉率比較高。
第二階段:離線白名單+黑名單。
- 做法:上傳非目標(biāo)人群黑名單。
- 效果:對(duì)已經(jīng)轉(zhuǎn)化為非目標(biāo)用戶的群體進(jìn)行處理,解決了部分誤拉問題。
- 不足:如果目標(biāo)用戶安裝了虎牙app,但在最近三天未打開虎牙,在投放當(dāng)天,如果用戶自主打開虎牙或者點(diǎn)擊廣告打開虎牙,即轉(zhuǎn)化為非目標(biāo)用戶,當(dāng)前離線策略仍舊無法解決。
第三階段:RTA控制策略。
- 做法:在廣告平臺(tái)投放前,平臺(tái)會(huì)實(shí)時(shí)發(fā)送RTA廣告請(qǐng)求,其中包含了用戶的設(shè)備信息,我們就可以依此判斷回復(fù)是否投放,來實(shí)現(xiàn)實(shí)時(shí)屏蔽掉當(dāng)天已打開APP用戶。
- 效果:RTA策略在人群誤拉和用戶首啟率上都有不同程度的優(yōu)化,此外,結(jié)合用戶差異化出價(jià),客單價(jià)上也有百分之十五的成本下降。
在第一部分確保我們目標(biāo)用戶被準(zhǔn)確投放到,第二部分主要解決如何確定目標(biāo)用戶,也就是uplift增益模型的工作了。
左上圖是營銷人群四象限:
- 營銷敏感人群:就是只有投放廣告用戶才會(huì)回到虎牙進(jìn)行活躍,就是廣告敏感人群,也就是我們投放的目標(biāo)群體。
- 自然轉(zhuǎn)化人群:就是無論我們是否對(duì)他投放廣告,他都會(huì)自主活躍。成本考慮,我們就不投放此類群體。
- 無動(dòng)于衷人群:就是無論是否投放廣告,這類用戶都難以促使回到虎牙活躍,這部分也是直接放棄。
- 反作用人群:就是對(duì)廣告是比較反感,不投放廣告活躍,投放了廣告,反而會(huì)因?yàn)榉锤腥ゲ粫?huì)回到虎牙,也不做投放。
傳統(tǒng)點(diǎn)擊率模型是指看過廣告后購買的概率,而uplift模型的核心是要去找出圖中的營銷敏感人群。最后我們實(shí)驗(yàn)了不同建模策略,并在廣告拉活業(yè)務(wù)上進(jìn)行了一個(gè)ABTest,選取營銷敏感人群進(jìn)行廣告投放。最終在DAU和DAU轉(zhuǎn)化率上都有明顯提升。
第三部分在拉新廣告中會(huì)用到的虛擬回調(diào)技術(shù)。
目前市場(chǎng)上拉新廣告投放的都是OCPX廣告原理,也就是通過回傳廣告平臺(tái)的深度轉(zhuǎn)化行為(譬如次日留存),來提升廣告平臺(tái)篩選有價(jià)值人群的能力。
假設(shè)我們拉新標(biāo)準(zhǔn)是用戶的次日留存大于40%,且觀看時(shí)長大于30分鐘。那么回傳真實(shí)留存的傳統(tǒng)方案,會(huì)存在以下三個(gè)問題:
- 定向只考慮了次日留存,沒有觀看時(shí)長。
- 轉(zhuǎn)化事件回傳慢,留存由于天然的限制最早也要次日回傳。
- 轉(zhuǎn)化事件回傳少,廣告學(xué)習(xí)期通過率低。
因此我們探索性的提出了虛擬回調(diào)的方案來解決上述問題。
廣告ECPM是每千次展示可以獲得的廣告收入。公式如圖,也就是點(diǎn)擊率、轉(zhuǎn)化率和出價(jià)的乘積再乘1000。廣告?zhèn)饶苤苯痈深A(yù)的主要兩部分,CPA(出價(jià))和CVR(廣告轉(zhuǎn)化率)。
基于上面介紹,虛擬回調(diào)針對(duì)前面三個(gè)問題做了一一處理。
- 用戶定向:通過在真實(shí)留存中剔除時(shí)長不達(dá)標(biāo)的用戶來保證用戶觀看時(shí)長的要求。
- 轉(zhuǎn)化回傳少:通過對(duì)觀看時(shí)長較長的用戶進(jìn)行加量的回傳。
- 轉(zhuǎn)化事件回傳慢:通過對(duì)用戶激活當(dāng)日的行為,通過模型對(duì)其次日是否會(huì)留存進(jìn)行預(yù)判,對(duì)大概率次日留存的用戶在當(dāng)日就進(jìn)行提前回調(diào)。
這三種技術(shù)方案里面的核心思想其實(shí)是有兩點(diǎn):
- 一是通過回傳不同的人群來影響廣告平臺(tái)的人群定向。
- 二是通過轉(zhuǎn)化事件的回傳來干預(yù)廣告的轉(zhuǎn)化率(CVR),進(jìn)而影響廣告的ECPM,提升廣告競爭力。
最后對(duì)兩種方案進(jìn)行了對(duì)比,虛擬回調(diào)在時(shí)長優(yōu)化上、轉(zhuǎn)化回傳速度和回傳量都有明顯的優(yōu)勢(shì)。
留存事件提前回調(diào),是通過次日留存預(yù)測(cè)模型來實(shí)現(xiàn)的。該模型主要是利用戶在激活后N小時(shí)內(nèi)的行為特征來對(duì)用戶次日是否留存進(jìn)行預(yù)測(cè),再提前回調(diào)給廣告平臺(tái)。
首先是模型目標(biāo)的確認(rèn)。雖然我們模型追求的目標(biāo)是時(shí)長較長而且次日留存的用戶,但是我們是以次日留存用戶為label去建模的。原因有兩點(diǎn):
- 一是模型的正負(fù)樣本差距會(huì)過大,模型學(xué)習(xí)的難度大。
- 二是用戶的次日留存率與觀看時(shí)長相關(guān)性比較大,強(qiáng)化次日留存可以進(jìn)而提升時(shí)長。
其次是時(shí)間窗口的選擇。一方面,特征時(shí)間窗口越大,特征用戶特征越豐富,模型理論上越準(zhǔn)確。另一方面,時(shí)間窗口越小,特征預(yù)測(cè)回傳速度則更快。
面對(duì)這種平衡問題,我們通過激活后特征從1到6小時(shí)分別做訓(xùn)練,發(fā)現(xiàn)AUC 在3小時(shí)之后增長是非常緩慢的。所以選擇了3小時(shí)作為用戶特征時(shí)間窗。
最后看下我們這個(gè)項(xiàng)目的一個(gè)成果。我們通過構(gòu)造三種不同的回調(diào)策略,形成了虛擬回調(diào)方案與傳統(tǒng)的激活留存做了雙出價(jià)的ABTest。發(fā)現(xiàn)不管是量級(jí)消耗還是用戶質(zhì)量都有非常明顯的提升,此外作為完整的技術(shù)輸出也應(yīng)用到其他部門的業(yè)務(wù)上。
4. 素材優(yōu)選
接下來,算法的第二部分是廣告素材優(yōu)選工作。廣告素材方面,我們主要是有四大策略:熱門內(nèi)容,優(yōu)質(zhì)素材檢索、低質(zhì)素材下線,還有人工精選素材(詳見上圖)。
5. 出價(jià)策略
第三部分是廣告出價(jià)策略工作,在廣告投放過程中非常重要的環(huán)節(jié)就是廣告出價(jià)。
之前的方案就是在各個(gè)廣告渠道的投放中根據(jù)拉活目標(biāo)價(jià)格統(tǒng)一出價(jià)。這種方式存在兩大弊端:
- 一是用戶質(zhì)量是比較差的,統(tǒng)一出價(jià)導(dǎo)致優(yōu)質(zhì)客戶占比較少。
- 二是成本不易控制,市場(chǎng)價(jià)格變動(dòng)比較頻繁,人工去維護(hù)上不同渠道百個(gè)賬號(hào)的調(diào)價(jià)的工作量也是非常大的。
因此提出了智能出價(jià)方案來解決上述問題:
- 通過PID 算法計(jì)算基準(zhǔn)出價(jià),達(dá)到成本可控的目的。
- 通過用戶分層策略對(duì)不同用戶質(zhì)量賦予不同的出價(jià)權(quán)重,來達(dá)到整體質(zhì)量提升的目的。
由于我們是差異化出價(jià)來提升用戶質(zhì)量,那重點(diǎn)就是如何對(duì)用戶質(zhì)量進(jìn)行有效劃分了。
通過數(shù)據(jù)分析可知,用戶在沉默前的活躍天數(shù)分布是對(duì)用戶質(zhì)量一種簡單而有效劃分,統(tǒng)計(jì)基本成線性關(guān)系。因此,策略步驟大致如下:
① 通過活躍天數(shù)對(duì)用戶做大致劃分分層;
② 通過各層的轉(zhuǎn)化率來控制出價(jià)權(quán)重之間的差距;
③ 將每層的權(quán)重控制在-1到1之間,對(duì)質(zhì)量低的用戶進(jìn)行降價(jià),對(duì)質(zhì)量高的提高,最終結(jié)合基準(zhǔn)出價(jià)合成最終的差異化出價(jià)。
但由于分層相對(duì)粗粒度,存在不夠精準(zhǔn)的局限性,因此這里我們提出用戶價(jià)值模型策略,來給用戶做價(jià)值打分。而且,通過歷史數(shù)據(jù)驗(yàn)證,發(fā)現(xiàn)用戶價(jià)值得分越高,用戶質(zhì)量越好。
首先,是模型選型問題。我們測(cè)試了多種模型,包括邏輯回歸、隨機(jī)森林等,隨后發(fā)現(xiàn)邏輯回歸和隨機(jī)森林都存在擬合能力不足的問題。尤其是我們這種沉默用戶,他在歷史的行為特征是非常稀疏的,非常容易過擬合。所以我們選用了XGB加邏輯回歸的模型融合策略。
① 首先將原始特征進(jìn)行了非線性的變化得到樹的葉子節(jié)點(diǎn)。
② 再通過One-Hot編碼將其構(gòu)造成新的特征向量。
③ 最后將原始特征和新特征一起放入邏輯回歸進(jìn)行訓(xùn)練。
最終,智能出價(jià)策略在成本控制和用戶質(zhì)量上都取得了不錯(cuò)的效果。
6. 承接策略
最后一部分是用戶承接策略,就是如何使得用戶點(diǎn)擊廣告后跳轉(zhuǎn)至合適的落地頁提升用戶在虎牙內(nèi)的觀看、留存等行為。策略主要有以下幾個(gè)方式:
- 用戶興趣承接:根據(jù)用戶歷史觀看、訂閱等等行為來去計(jì)算用戶承接主播的召回列表,進(jìn)而通過不同行為特征計(jì)算出用戶感興趣主播排序,將用戶點(diǎn)擊承接至其最感興趣的主播直播間。
- 多場(chǎng)景承接:主要根據(jù)主播的開播狀態(tài)進(jìn)行跳轉(zhuǎn)。將用戶引導(dǎo)至正在開播的主播的熱門視頻流,來提升用戶的體驗(yàn)。
- 上下文承接:根據(jù)用戶點(diǎn)擊的廣告素材進(jìn)行呈現(xiàn),保證場(chǎng)景一致性,實(shí)現(xiàn)所見即所得。譬如用戶在抖音上看到的廣告是王者榮耀張大仙的素材,那么點(diǎn)擊廣告跳轉(zhuǎn)也是到張大仙的直播間或者張大仙的熱門視頻流中。
最后是算法部分的總結(jié)和展望,后續(xù)我們希望打造用戶定向、智能出價(jià),自動(dòng)化投放的三種能力。
總的來說,2020年我們打通了外部廣告投放的增長能力,在2021年通過內(nèi)部平臺(tái)的打造,提升了投放效率。那么在未來我們希望打造增長產(chǎn)品的服務(wù)化或者是體系化,能夠更多地為虎牙內(nèi)部的產(chǎn)品進(jìn)行服務(wù)。
—
03
用戶增長工程實(shí)踐
工程部分,主要介紹三部分,是和我們投放的流程順序相關(guān)的。
首先我們會(huì)把素材庫里面的素材提交到外部的媒體來創(chuàng)建對(duì)應(yīng)廣告。當(dāng)普通用戶瀏覽那個(gè)媒體的時(shí)候,會(huì)請(qǐng)求到我們RTA模塊過濾和出價(jià)。當(dāng)廣告得到展示之后,我們就收到媒體的這個(gè)點(diǎn)擊。用戶后續(xù)APP的行為會(huì)回傳給媒體使得媒體根據(jù)歸因結(jié)果優(yōu)化投放。接下來我們按照以上的順序進(jìn)行介紹。
1. 素材自動(dòng)化
首先介紹素材自動(dòng)化和素材優(yōu)選。素材庫后臺(tái)的目標(biāo)是:打通設(shè)計(jì)師創(chuàng)作和效果反饋閉環(huán),提高物料的質(zhì)量。
當(dāng)設(shè)計(jì)師完成物料制作,系統(tǒng)會(huì)將物料投放到各個(gè)媒體平臺(tái),系統(tǒng)會(huì)自動(dòng)把投放后效果數(shù)據(jù)拉取下來,并根據(jù)規(guī)則對(duì)素材進(jìn)行智能評(píng)級(jí)。設(shè)計(jì)師就可以根據(jù)以上反饋?zhàn)鑫锪系馁|(zhì)量優(yōu)化了。
接著再來看下物料庫的數(shù)量優(yōu)化,這里列舉流程中兩個(gè)需要工程自動(dòng)化的部分:
- 自動(dòng)裁剪功能:素材投放前,圖片素材需要自動(dòng)裁剪功能,來匹配不同的廣告位。
- 自動(dòng)廣告配置和投放:視頻和圖片在審核完成后也是通過規(guī)則庫來自動(dòng)進(jìn)行廣告配置,并通過API自動(dòng)投放到多個(gè)平臺(tái)多個(gè)賬號(hào)上。
2. RTA流量篩選
接下來介紹RTA流量過濾,這里對(duì)應(yīng)算法側(cè)的人群定向和出價(jià)。
因?yàn)镽TA是對(duì)實(shí)時(shí)流量過濾,所以對(duì)接口響應(yīng)要求很高,通常響應(yīng)要求是跨機(jī)房在95%情況下控制在10毫秒內(nèi),用戶在頁面加載過程,無明顯延遲感知。
另外,媒體只傳遞用戶的設(shè)備號(hào),我們則需要根據(jù)設(shè)備號(hào)查到用戶標(biāo)簽來做過濾和出價(jià)。
由于需要在保障延時(shí)的前提下進(jìn)行以上的查詢,所以需要對(duì)存儲(chǔ)進(jìn)行本地化,即把用戶標(biāo)簽載入到本地內(nèi)存。其中主要有兩類數(shù)據(jù):
- 黑名單:單純過濾使用,采用布隆過濾器存儲(chǔ),節(jié)省90%以上內(nèi)存。
- 白名單:額外的策略和出價(jià)信息,要存儲(chǔ)較多信息,使用FlattBuffers存儲(chǔ)。
關(guān)于白名單存儲(chǔ),每個(gè)用戶共占用128位。但設(shè)備號(hào)MD5已經(jīng)占了128位,所以這邊只取前64位做key。驗(yàn)證基本不發(fā)生碰撞。另外64位存儲(chǔ)出價(jià)和用戶標(biāo)簽的編碼。
另外,基于生效速度考慮,我們采用增量和全量相結(jié)合的方案,增量更新實(shí)時(shí)設(shè)備號(hào)黑名單,全量更新離線白名單。
- 增量更新:從Flink清洗后存放于Kafka,然后順序插入到內(nèi)存,存在最新的實(shí)時(shí)布隆過濾器分片里。分片按環(huán)形隊(duì)列來存儲(chǔ),每個(gè)分片最高千分之一的假陽性。每個(gè)分片填滿后順序?qū)ο乱粋€(gè)位置上的分片進(jìn)行覆蓋來實(shí)現(xiàn)淘汰。
- 全量更新:數(shù)據(jù)從Spark計(jì)算出來,根據(jù)Hash存到對(duì)應(yīng)對(duì)象存儲(chǔ)分片。然后每個(gè)RTA進(jìn)程對(duì)對(duì)象存儲(chǔ)輪詢,獲取最新的全量數(shù)據(jù)。
通過上述存儲(chǔ)本地本地化方案,既實(shí)現(xiàn)了節(jié)省機(jī)器資源、降低響應(yīng)時(shí)間,也滿足了用戶標(biāo)簽的存儲(chǔ)和實(shí)時(shí)更新的要求。
有了以上數(shù)據(jù)之后,RTA的策略投放主要通過動(dòng)態(tài)算子來實(shí)現(xiàn)。動(dòng)態(tài)算子的好處是支持算法和優(yōu)化師同時(shí)在后臺(tái)進(jìn)行靈活配置,方便日常調(diào)整來加快實(shí)驗(yàn)和迭代速度。
我們一般同時(shí)會(huì)有幾套策略算子,如圖所示展示了兩個(gè)樣例:
- 拉新策略算子
- 拉活策略算子
通過兩套策略算子過濾后,對(duì)結(jié)果取并集,就產(chǎn)生了RTA服務(wù)的回復(fù)響應(yīng)。
最后因?yàn)閷?duì)接較多的平臺(tái),流量和機(jī)器資源也會(huì)影響廣告投放成本,調(diào)整白名單算子和緩存算子,我們節(jié)省超過90%的資源。
3. 點(diǎn)擊歸因
點(diǎn)擊歸因?qū)?yīng)算法側(cè)的虛擬回調(diào)部分。
經(jīng)過RTA過濾、競價(jià)成功,媒體做廣告曝光后,用戶就會(huì)產(chǎn)生點(diǎn)擊。媒體發(fā)點(diǎn)擊監(jiān)測(cè)過來。當(dāng)用戶進(jìn)入我們APP并產(chǎn)生了我們感興趣的事件,我們就用渠道號(hào)、Oaid等信息進(jìn)行關(guān)聯(lián),關(guān)聯(lián)成功后做時(shí)間歸因回傳給媒體,協(xié)助媒體側(cè)投放模型的優(yōu)化。
以上就是開發(fā)實(shí)踐的幾個(gè)要點(diǎn)。
今天的分享就到這里,謝謝大家。
分享嘉賓:郭楷揚(yáng) & 葉士銘 虎牙直播
DataFun:專注于大數(shù)據(jù)、人工智能技術(shù)應(yīng)用的分享與交流。發(fā)起于2017年,在北京、上海、深圳、杭州等城市舉辦超過100+線下和100+線上沙龍、論壇及峰會(huì),已邀請(qǐng)超過2000位專家和學(xué)者參與分享。其公眾號(hào) DataFunTalk 累計(jì)生產(chǎn)原創(chuàng)文章700+,百萬+閱讀,14萬+精準(zhǔn)粉絲。
本文經(jīng)授權(quán)發(fā)布,不代表增長黑客立場(chǎng),如若轉(zhuǎn)載,請(qǐng)注明出處:http://m.gptmaths.com/cgo/user/76546.html