預測服務基于華為分析服務(Analytics Kit)上報的用戶行為數(shù)據(jù)和屬性,結(jié)合機器學習技術,實現(xiàn)特定目標人群的精準預測。針對預測生成的細分受眾群體,開展和優(yōu)化相關運營舉措,如通過A/B測試評估運營活動效果、遠程配置特定受眾群體的專屬套餐等,可有效幫助產(chǎn)品提高用戶留存,增加轉(zhuǎn)化。
使用預測服務前,需要先集成華為分析服務的SDK,這樣系統(tǒng)才可以順利開展流失、付費、復購以及自定義預測任務。在詳情界面可以查看相關預測人群的高中低概率對應人群數(shù)量,及其相應的屬性分布(比如詳情頁的高概率流失人群,表示該人群在未來7日內(nèi)有較高概率流失,您可以通過相關卡片,觀察其行為特點并制定針對性運營計劃)。
預測任務和預測詳情界面如下所示:
*數(shù)據(jù)為模擬
預測模型構(gòu)建流程
在構(gòu)建預測模型的時候,首先是確定我們要預測什么,即確立預測的統(tǒng)計口徑,然后根據(jù)統(tǒng)計口徑圍繞用戶特點尋找對應相關的特征,通過清洗和采樣得到數(shù)據(jù)集。我們把數(shù)據(jù)集二八分得到訓練集和驗證集,在線下進行不斷實驗找到最優(yōu)特征和參數(shù),最后根據(jù)相關數(shù)據(jù)在線上調(diào)度訓練預測任務。
具體流程圖如下所示:
特征、模型選擇和調(diào)優(yōu)
特征探索
項目初期,我們分析數(shù)據(jù),從屬性、行為、需求三方面入手,尋找與業(yè)務有可能相關的變量,構(gòu)建特征表,比如用戶近7天的活躍天數(shù)、使用時長等行為數(shù)據(jù)。
在確定特征之后,下一步就是在實驗中進行模型的選擇和調(diào)優(yōu)了,業(yè)界常用的樹形模型有xgboost、隨機森林、GBDT等,把我們的數(shù)據(jù)集用這幾種模型進行訓練,發(fā)現(xiàn)在隨機森林上效果較好,其采用bagging策略提高模型擬合能力和泛化能力。
除了模型參數(shù),也要考慮采樣比,尤其是對于付費預測這種正負樣本懸殊的情況(大約1:100),綜合考慮Accuracy和Recall, 付費訓練時將正負樣本比例采樣至1.5:1, 以提高模型付費用戶召回率。
超參與特征確立
訓練出了合適的模型,但并非所有特征都是有用的,無用特征除了可能會影響模型效果,也會減慢訓練速度。在初期版本中,通過實驗確定合適的超參和特征,特征按照特征重要性排序選擇權重較大的,在線上版本中配置對應的超參和特征。
在版本上線之后還需要不斷觀察數(shù)據(jù)、分析數(shù)據(jù)、補充特征,我們在后續(xù)版本中主要新增了事件特征與趨勢特征,補充后總計400+特征。
自動超參搜索
在挖掘出更多的特征之后,如果都是全量特征訓練可能效果未必會好,而且也會非常耗時。同時,可能每個App訓練時可能最優(yōu)的超參和特征并不相同,最好是每個App分開訓練且使用自己最優(yōu)的超參和特征。
為了解決這些問題,我們增加了自動的超參搜索,可以在配置好的參數(shù)空間里搜索,找到并保存合適的訓練參數(shù)。搜索完之后的最優(yōu)超參保存在如下結(jié)構(gòu)的hive表中。
當前的整體流程以及外部依賴如下所示:
未來方向
在未來提高模型效果上,我們也有很多思考,預研的方向大致如下:
神經(jīng)網(wǎng)絡
當前的特征規(guī)模不斷擴大(400+),而用戶行為的規(guī)律又十分復雜,除了使用原有的樹形模型,也在嘗試利用神經(jīng)網(wǎng)絡強大的表達能力,結(jié)合行為特征訓練出更準確的預測模型。
聯(lián)邦學習
對于各App、各租戶數(shù)據(jù)不可互通的問題,可以通過橫向聯(lián)邦學習聯(lián)合各個App、各個租戶間的模型,在數(shù)據(jù)不互通的前提下協(xié)同訓練。
時序特征
不同App的用戶每周上報數(shù)百個事件(涵蓋1000+種類),訪問近百個頁面,通過這些時序數(shù)據(jù)可以構(gòu)造出不同用戶的長短期行為特征,提高不同場景預測的準確率。用戶訪問頁面的行為有較高的時序特點,可以加工成時間序列特征,有較高的研究價值。
特征挖掘和加工
對目前的特征集擴充、補充,一方面挖掘更多的相關特征比如平均使用間隔、設備屬性、安裝渠道、國家省市等特征。另一方面基于現(xiàn)有特征通過離散化、歸一化、開方、平方、笛卡爾積、多重笛卡爾積等等方法構(gòu)造更多新特征。