基于 MaxCompute+PAI 的用戶增長(zhǎng)方案實(shí)踐
在過(guò)去一年阿里云PAI機(jī)器學(xué)習(xí)團(tuán)隊(duì)做了很多偏業(yè)務(wù)的實(shí)踐,其中有一條就是基于 MaxCompute+PAI的產(chǎn)品方案實(shí)踐,解決客戶遇到用戶增長(zhǎng)相關(guān)的問(wèn)題。本文主要分享,阿里云團(tuán)隊(duì)在用戶增長(zhǎng)領(lǐng)域的一些探索和實(shí)踐。希望可以通過(guò)本次分享給大家在用戶增長(zhǎng)方面帶來(lái)一些幫助。
一、用戶增長(zhǎng)模型
AARRR
用戶增長(zhǎng)更多的是針對(duì)互聯(lián)網(wǎng)類型的公司,互聯(lián)網(wǎng)客戶的業(yè)務(wù)本質(zhì)上都是在解決用戶增長(zhǎng)的問(wèn)題。用戶增長(zhǎng)從業(yè)務(wù)角度講有很多的模型。今天主要針對(duì)AARRR用戶增長(zhǎng)模型進(jìn)行講解。
那在整個(gè)AARRR用戶增長(zhǎng)模型里面,MaxCompute+PAI能在哪個(gè)模塊里面能做哪些工作?能給客戶帶來(lái)哪些價(jià)值?
MaxCompute+PAI業(yè)務(wù)支撐架構(gòu)
MaxCompute+PAI做為底座支撐用戶增長(zhǎng),產(chǎn)品架構(gòu)如下圖。
從計(jì)算引擎層是 MaxCompute,計(jì)算引擎之上就是AI的場(chǎng)景,我們重點(diǎn)介紹的是基于PAI機(jī)器學(xué)習(xí)的AI能力來(lái)賦能用戶增長(zhǎng)的業(yè)務(wù)場(chǎng)景。首先我們提供了開(kāi)放框架,可以基于TensorFlow\PYTorch,SQL\PYSpark\Spark開(kāi)發(fā)自己的算法模型。再上面的產(chǎn)品層就是PAI機(jī)器學(xué)習(xí)的產(chǎn)品體系,整個(gè)產(chǎn)品體系也做為我們一個(gè)業(yè)務(wù)的支撐,包括PAI-DLC(云原生深度學(xué)習(xí)運(yùn)行環(huán)境)可以把自己的code訓(xùn)練腳本打包成一個(gè)鏡像包在DLC內(nèi)運(yùn)行、PAI-Studio(可視化建模)會(huì)將用戶增長(zhǎng)領(lǐng)域相關(guān)的算子做成模塊化經(jīng)過(guò)簡(jiǎn)單的拖拽,就可以來(lái)做整個(gè)用戶增長(zhǎng)的模型訓(xùn)練、PAI-DSW(交互式建模)對(duì)于技術(shù)能力比較強(qiáng)的開(kāi)發(fā)者,可以自己開(kāi)發(fā)相應(yīng)的腳本,而不是使用我們封裝好的腳本、PAI-EAS(模型在線服務(wù))可以把studio和DSW生成的模型生成一個(gè)RESTful API,再通過(guò)HTTP請(qǐng)求的方式調(diào)用該服務(wù)。生成的RESTful請(qǐng)求就可以支撐解決方案,包括廣告RTA解決方案、廣告DSP方案、智能推薦方案、用戶 召回方案、LTV計(jì)算方案。解決方案最終是要解決用戶增長(zhǎng)問(wèn)題,包括拉新、促活、留存、創(chuàng)收、分享。
二、MaxCompute+PAI用戶增長(zhǎng)分類目詳細(xì)方案
用戶增長(zhǎng)-拉新
當(dāng)前通過(guò)廣告拉新依然是互聯(lián)網(wǎng)客戶的一個(gè)核心重要的手段。在廣告行業(yè)有一個(gè)比較流行的方案是RTA。在RTA方案里MaxCompute+PAI的作用是什么呢。首先看下RTA的原理,過(guò)去一個(gè)APP想要拉新用戶,會(huì)把錢(qián)投放給DSP廣告投放平臺(tái),由平臺(tái)去圈選用戶進(jìn)行競(jìng)價(jià)。那RTA做了一件事情,就是當(dāng)廣告主希望能控制一些DSP人群,之前是沒(méi)有辦法的,在RTA技術(shù)支持下,開(kāi)放一個(gè)接口,每一次廣告平臺(tái)在圈選用戶時(shí),會(huì)請(qǐng)求一個(gè)模型,這個(gè)模型的作用就是告訴平臺(tái),這個(gè)用戶要不要。那MaxCompute+PAI就可以幫客戶生成這樣的模型。
通過(guò)MaxCompute做數(shù)據(jù)清理,通過(guò)PAI做競(jìng)價(jià)模型的訓(xùn)練,通過(guò)模型篩選值得投放的用戶。
核心優(yōu)勢(shì)
1.強(qiáng)大的數(shù)據(jù)計(jì)算能力:MaxCompute提供PB級(jí)別的數(shù)據(jù)計(jì)算能力。
2.豐富的算法:PAI提供LR、GBDT等經(jīng)典機(jī)器學(xué)習(xí)算法,同時(shí)也提供DeepFM、MultiTower等深度學(xué)習(xí)算法。
用戶增長(zhǎng)-促活
在新用戶都比較少的情況下,我們希望存量客戶能在我們平臺(tái)上面瀏覽時(shí)長(zhǎng)增加,更多的點(diǎn)擊。打開(kāi)一個(gè)互聯(lián)網(wǎng)APP,70%以上的APP都有一個(gè)feed流推薦也可以叫相關(guān)性推薦,這個(gè)系統(tǒng)推薦率準(zhǔn)確的高低是影響用戶在平臺(tái)上面的活躍度。如果推薦的內(nèi)容都是用戶喜歡看的,喜歡瀏覽的,會(huì)天然的增加平臺(tái)上面的點(diǎn)擊量,并且停留時(shí)長(zhǎng)會(huì)增加。比如業(yè)內(nèi)比較火的短視頻APP,其實(shí)都是有比較好的個(gè)性化推薦系統(tǒng)。那么怎么基于MaxCompute+PAI構(gòu)建一套推薦系統(tǒng)。如下圖所示可以基于MaxCompute+PAI+DataWorks+Hologres+Flink做一套相關(guān)性推薦系統(tǒng)。更加具體信息可參考文章:PAI平臺(tái)搭建企業(yè)級(jí)個(gè)性化推薦系統(tǒng)
做好一個(gè)推薦系統(tǒng)首先需要一個(gè)線上的服務(wù)模塊,服務(wù)模塊可以分為多路召回、過(guò)濾、排序、冷啟動(dòng)。召回模塊是做一個(gè)粗篩,比如一個(gè)用戶進(jìn)來(lái),我們平臺(tái)存量有1000萬(wàn)個(gè)商品,拿這個(gè)用戶跟1000萬(wàn)個(gè)商品去做比對(duì),其實(shí)計(jì)算量非常大。那召回就是我先粗篩一下,比如選出幾百個(gè)商品,這個(gè)時(shí)候我再做這個(gè)用戶對(duì)這幾百個(gè)商品的排序,整個(gè)計(jì)算的復(fù)雜性就會(huì)變的非常低。
那召回跟排序這兩個(gè)模型怎么用MaxCompute+PAI訓(xùn)練出來(lái)?從架構(gòu)圖上來(lái)看,最底層我們要把用戶的行為日志、用戶畫(huà)像數(shù)據(jù)、物料屬性數(shù)據(jù)這三個(gè)核心的表,上傳到MaxCompute中,利用DataWorks針對(duì)表做一個(gè)特征加工,加工出訓(xùn)練樣本、用戶特性數(shù)據(jù)、物料特征數(shù)據(jù)。接下來(lái)進(jìn)入到PAI-Studio,一個(gè)內(nèi)置的建模平臺(tái),里面內(nèi)建了大量推薦領(lǐng)域的算法,比如PAI-EasyRec、GraphLearn、Alink。我們利用PAI-Studio里面的召回算法,生產(chǎn)一些基礎(chǔ)的召回表,比如u2i、i2i、c2i,把這些結(jié)果放到Hologres里面,這個(gè)我們可以把多路召回服務(wù)跟Hologres做一個(gè)關(guān)聯(lián),解決了我們召回模型訓(xùn)練的問(wèn)題。
排序服務(wù)可以在PAI-Studio里面選擇排序算法,生產(chǎn)排序模型,排序模型可以部署到PAI-EAS里面,變成一個(gè)RESTful API,這樣排序模塊就可以請(qǐng)求排序模型的RESTful API,生產(chǎn)一個(gè)實(shí)時(shí)的排序結(jié)果返回。
經(jīng)過(guò)我們的多路召回,把一些重復(fù)的商品過(guò)濾掉,在進(jìn)行排序,就可以拿到一個(gè)TopN推薦列表。就可以展示到APP的feed流里面。那MaxCompute+PAI的價(jià)值就是完成整個(gè)排序業(yè)務(wù)的數(shù)據(jù)處理以及模型訓(xùn)練。這一整套相關(guān)性推薦系統(tǒng),會(huì)有效提升我們APP里feed流的CTR、CVR的轉(zhuǎn)化率,幫助APP提升用戶的活躍度和停留時(shí)長(zhǎng)。
用戶增長(zhǎng)-留存
當(dāng)一個(gè)APP的存量用戶做到百萬(wàn)、千萬(wàn)、上億時(shí),在數(shù)據(jù)庫(kù)中存放大量歷史用戶,但是又有一段時(shí)間沒(méi)有使用APP的用戶。所以當(dāng)下互聯(lián)網(wǎng)拉新困難的情況下,我們需要對(duì)“沉睡”用戶和流失用戶做一個(gè)召回。當(dāng)前互聯(lián)網(wǎng)行業(yè)比較流行的方案還是通過(guò)短信召回,因?yàn)槎绦艣](méi)有打電話的局限性,也不會(huì)像push那樣被攔截。針對(duì)短信來(lái)講,觸達(dá)用戶的效果和概率還是比較高的。
基于MaxCompute+PAI已經(jīng)對(duì)很多行業(yè)用戶,如小說(shuō)、社交、游戲等行業(yè),構(gòu)建了流失用戶短信召回解決方案。
大體的做法就是把用戶埋點(diǎn)數(shù)據(jù)存到MaxCompute中,通過(guò)DataWorks做特征加工,用PAI機(jī)器學(xué)習(xí)平臺(tái)訓(xùn)練一個(gè)流失用戶召回模型,之后就可以針對(duì)已有的存量用戶做一次預(yù)測(cè),預(yù)測(cè)出哪些存量用戶當(dāng)用短信觸達(dá)時(shí),回到APP的概率比較高,這樣我們就可以只針對(duì)這部分高概率用戶進(jìn)行短信召回,這樣可以節(jié)省我們的召回成本,并且提升我們的召回率。
客戶案例
客戶為一家陌生人社交APP,庫(kù)內(nèi)有近千萬(wàn)級(jí)別的沉睡用戶。通過(guò)短信實(shí)現(xiàn)流失用戶的召回。
PAI核心價(jià)值:
用了PAI之后百萬(wàn)條短信召回比例從3%提升至8%,效果提升267%,變相降低成本2倍左右。
用戶增長(zhǎng)-LTV分計(jì)算&分享分計(jì)算
通過(guò)PAI+MaxCompute構(gòu)建分?jǐn)?shù)預(yù)測(cè)模型,可以對(duì)LTV分、分享概率分進(jìn)行預(yù)測(cè)。
當(dāng)APP通過(guò)廣告帶來(lái)一個(gè)用戶時(shí),都會(huì)關(guān)心這個(gè)用戶會(huì)不會(huì)付費(fèi),或者說(shuō)產(chǎn)生的APP值有多少。有的客戶需要在新用戶進(jìn)來(lái)的同時(shí),計(jì)算出未來(lái)這個(gè)用戶在APP上的消費(fèi)情況是多少。如果這個(gè)用戶是一個(gè)高價(jià)值用戶,那就需要通過(guò)優(yōu)惠券或者補(bǔ)貼的的方式來(lái)進(jìn)行用戶激活。我們提供了LTV方案,舉個(gè)例子,比如一個(gè)APP的新用戶,我們?cè)趺从?jì)算他的LTV分呢?
找一個(gè)第三方的數(shù)據(jù)源,因?yàn)樾掠脩粼贏PP內(nèi)還沒(méi)有任何行為日志產(chǎn)生。MaxCompute+PAI會(huì)提供一套聯(lián)合建模的方案,符合可信計(jì)算標(biāo)準(zhǔn)。也就是說(shuō)用戶數(shù)據(jù)和第三方數(shù)據(jù)不會(huì)有任何接觸,兩方數(shù)據(jù)可以聯(lián)邦建模,在PAI內(nèi)生成模型,這個(gè)模型可以對(duì)每一個(gè)新用戶進(jìn)行LTV打分,針對(duì)LTV分指導(dǎo)后續(xù)運(yùn)營(yíng)活動(dòng)。
客戶案例
場(chǎng)景介紹:客戶是一家小說(shuō)平臺(tái),對(duì)于純新用戶,需要做30天內(nèi)購(gòu)買VIP服務(wù)的預(yù)測(cè)。以便在用戶還幾乎沒(méi)有什么行為時(shí),能夠?qū)τ脩粑磥?lái)購(gòu)買VIP的行為進(jìn)行預(yù)測(cè),可以讓新用戶運(yùn)營(yíng)有的放矢,提高運(yùn)營(yíng)效率。
對(duì)于純新用戶購(gòu)買VIP判斷準(zhǔn)確率提升明顯,圈選出40%左右的用戶作為訓(xùn)練數(shù)據(jù),聯(lián)邦建模生成的模型就可以將67%的會(huì)自然購(gòu)買VIP的會(huì)員識(shí)別出來(lái),提高67.5%的運(yùn)營(yíng)效率(和隨機(jī)圈選用戶進(jìn)行比較)。
三、實(shí)操介紹-流失用戶召回
數(shù)據(jù)上傳到MaxCompute
通過(guò)MaxCompute的Tunnel命令上傳數(shù)據(jù)到項(xiàng)目中:tunnelupload{file}{table};
文檔鏈接:https://help.aliyun.com/document_detail/196187.html
構(gòu)建Workflow
進(jìn)入PAI-Studio完成workflow的構(gòu)建。
構(gòu)建訓(xùn)練樣本:7天不登錄的作為流失用戶
通過(guò)篩選注冊(cè)日期和最后一次登錄時(shí)間可以確定哪些用戶是7天不登錄用戶。
特征加工
通過(guò)加工把數(shù)據(jù)變成結(jié)構(gòu)化數(shù)據(jù)。
One-hot編碼
One-Hot編碼可以將類別變量轉(zhuǎn)換為機(jī)器學(xué)習(xí)算法易于使用的形式,經(jīng)過(guò)One-Hot轉(zhuǎn)換后的格式如下圖所示。
模型訓(xùn)練和評(píng)估
進(jìn)行邏輯回歸的模型訓(xùn)練,PAI平臺(tái)上有幾十種的分類模型,判斷發(fā)短信是否能召回可以定義為二分類問(wèn)題,yes/no。可以使用二分類算法,進(jìn)行模型訓(xùn)練。邏輯模型訓(xùn)練完后,我們把一部分?jǐn)?shù)據(jù)做為測(cè)試數(shù)據(jù),就能獲取到模型效果。我們?cè)诙诸愒u(píng)估下面生成一個(gè)模型評(píng)估報(bào)告。ROC值的面積越大說(shuō)明模型效果越好。
模型預(yù)測(cè)
生成完模型后,我們可以把模型部署成RESTful服務(wù),供業(yè)務(wù)方或者是運(yùn)營(yíng)同學(xué)去調(diào)用。調(diào)用格式如下圖所示: