每一項(xiàng)ML系統(tǒng),都是因一個商業(yè)問題而存在,這正是Line購物大力擁抱AI的目標(biāo),他們最關(guān)鍵的商業(yè)問題是提升銷售額,而機(jī)器學(xué)習(xí)團(tuán)隊(duì)的任務(wù),就是想辦法用ML來提高銷售額。
不過,從商業(yè)問題出發(fā),到落地成為一支AI應(yīng)用,Line開發(fā)團(tuán)隊(duì)有一套自己的方法論,這是一套涵蓋了整個機(jī)器學(xué)習(xí)(ML)生命周期的開發(fā)流程,從定義問題、將問題轉(zhuǎn)為ML問題、建模、執(zhí)行AB測試、評估和決策等環(huán)節(jié)。
用ML方法解決商業(yè)問題
Line機(jī)器學(xué)習(xí)工程師黃昱睿指出,團(tuán)隊(duì)接到商業(yè)需求時,先從定義問題開始,以提升銷售額的需求為例,考量了設(shè)計(jì)新產(chǎn)品、推行折價(jià)券和提高用戶體驗(yàn)等3種實(shí)現(xiàn)策略,最終選擇ML可行性最高的第三種。
那么,如何利用ML方法,來兼顧獲利(即訂單成交量)與用戶體驗(yàn),開發(fā)團(tuán)隊(duì)從Line購物用戶旅程找切入點(diǎn)。由于Line購物屬于導(dǎo)購平臺,專門提供商品、文章等頁面,來引導(dǎo)顧客到商品店家平臺,同時在過程中提供點(diǎn)數(shù)優(yōu)惠或反饋,因此用戶購物旅程會經(jīng)歷:頁面瀏覽、點(diǎn)擊有興趣的商品/商店/文章、頁面跳轉(zhuǎn)至商家商品、最終下單。
在這段旅程中,Line鎖定下單前的“點(diǎn)擊有興趣商品”,作為ML問題切入點(diǎn)。也就是說,Line要預(yù)測用戶有興趣的商品,并在對的時間推薦給他們,來提高點(diǎn)擊率。
為進(jìn)一步將這個概念轉(zhuǎn)換為可行的ML方法,Line團(tuán)隊(duì)先進(jìn)行2個數(shù)據(jù)面分析。首先是推薦時間點(diǎn),若鎖定用戶操作“當(dāng)下”想購買的商品,就得依據(jù)用戶過去購買的數(shù)據(jù)來訓(xùn)練模型,好讓模型預(yù)測有興趣的商品。但這類數(shù)據(jù)量少,會造成模型過度學(xué)習(xí),進(jìn)而影響推薦效果和用戶體驗(yàn)。
另一個考量是,模型要根據(jù)點(diǎn)擊次數(shù)來推薦商品,還是用戶“會點(diǎn)擊”的商品來推薦?也就是說,這個推薦模型該采用回歸模型,還是分類模型。
“我們最后選擇分類模型,”黃昱睿解釋,電商場景中,通常有群重度用戶,他們的熱門商品點(diǎn)擊率和消費(fèi)額遠(yuǎn)大于一般用戶,因此以點(diǎn)擊次數(shù)來推薦商品,就會過于偏頗。
于是,團(tuán)隊(duì)將ML問題調(diào)整為“用戶未來幾天會點(diǎn)擊的商品”,不僅能解決因數(shù)據(jù)稀疏、模型過度學(xué)習(xí)的問題,還能提前秀出用戶想要的商品,優(yōu)化用戶體驗(yàn)。
這就是Line團(tuán)隊(duì)將商業(yè)問題,轉(zhuǎn)換為ML問題的過程。
建???步驟,完成還得不斷迭代
有了ML問題,接下來就是建模。建模一般有5個步驟,包括特征工程、集成模型數(shù)據(jù)、模型訓(xùn)練、模型推論,以及脫機(jī)評估。
在特征工程階段,Line認(rèn)為,頁面瀏覽、點(diǎn)擊和下單這類用戶行為,是決定點(diǎn)擊購買商品的關(guān)鍵。但光有這些特征還不夠,還得與其他特征做交叉群組計(jì)算,比如,年齡30歲至40歲點(diǎn)擊網(wǎng)站的次數(shù),交叉比對年齡30歲至40歲且是男性、點(diǎn)擊該網(wǎng)站的次數(shù),又或是再交叉比對其他屬性。
多了這些資訊,就能協(xié)助團(tuán)隊(duì)更準(zhǔn)確觀察,用戶在特定時間是否會點(diǎn)擊該商品。尤其,黃昱睿點(diǎn)出,這種交叉計(jì)算資訊,可以補(bǔ)足同一個特征未必持續(xù)有效的缺陷。完成特征工程后,就可以進(jìn)行模型數(shù)據(jù)的集成,準(zhǔn)備進(jìn)入訓(xùn)練模型的階段。
不同模型的訓(xùn)練方式各有不同,但黃昱睿點(diǎn)出,模型訓(xùn)練有2個常見要點(diǎn),包括各項(xiàng)指標(biāo)需與基準(zhǔn)相比,以及比較多組模型成效。其中,這個基準(zhǔn)可以是人工方法,也可以是傳統(tǒng)統(tǒng)計(jì)方法,ML工程師得觀察采用模型后,指標(biāo)表現(xiàn)是否逐步提升。
在推論部分,因Line購物推薦模型,主要比對用戶嵌入矢量和商品嵌入矢量的相關(guān)性來推薦,進(jìn)行推論時得同時考慮矢量大小和推論時間。
“矢量小、維度低,數(shù)據(jù)量少,推論速度快,”黃昱睿解釋,矢量大則相反,因此如何拿捏矢量大小與推論時間,得看應(yīng)用場景和準(zhǔn)確度等其他數(shù)據(jù)來決定。
最后則是脫機(jī)評估,就像是模型的“模擬考”,來確認(rèn)模型學(xué)習(xí)成效,以及是否太貼近訓(xùn)練數(shù)據(jù)、難以應(yīng)對新資訊等問題。
這就是Line購物推薦模型的建模5步驟。不過,一套模型得要多次執(zhí)行這些步驟、不斷迭代,才能達(dá)到真正可用程度。因此黃昱睿表示,善用YAML配置文件輔助,可加速這個過程,節(jié)省工程師手動設(shè)置時間。
AB測試有4要點(diǎn)
接下來就是AB測試環(huán)節(jié)。在這個階段,Line團(tuán)隊(duì)會將模型新做法和舊做法分為實(shí)驗(yàn)組和對照組,來處理用戶或?yàn)g覽記錄資訊,比較兩種做法的推薦成效。
黃昱睿提醒有4個AB測試的基本概念,包括用戶要均勻分布,如隨機(jī)分組就是一種方法。再來,在同個實(shí)驗(yàn)中,用戶組別要固定,比如在一段時間內(nèi),登錄網(wǎng)站的同一位用戶,都要固定在A組。
第三,若同個實(shí)驗(yàn)中,實(shí)驗(yàn)比率增加,如實(shí)驗(yàn)范圍從10%擴(kuò)大至20%時,實(shí)驗(yàn)組的成員不變,即不能重新分組。最后,由于推薦系統(tǒng)屬于線上應(yīng)用場景,因此測試時,要確保API也能高效率執(zhí)行。
每次AB測試時,Line還會為每次輸入的瀏覽記錄,粘貼一個標(biāo)簽(Tag),存儲至數(shù)據(jù)庫后,可進(jìn)行后續(xù)分析。同理,他們也會在每次的瀏覽記錄中,加入一些資訊,比如這次實(shí)驗(yàn)的唯一代碼,方便后續(xù)做不同實(shí)驗(yàn)的比較。
評估帶來的ML反思
有了實(shí)驗(yàn)組和對照組后,就進(jìn)入黃昱睿認(rèn)為ML生命周期中“最重要的”階段:評估。在這個階段,Line關(guān)注的評估指標(biāo)有ML指標(biāo)和商業(yè)指標(biāo),如ML的精確度、平均排名倒數(shù),或是商業(yè)的點(diǎn)擊率、轉(zhuǎn)化率、交易轉(zhuǎn)量等,不僅能讓非技術(shù)的高層主管理解ML效益,也能衡量ML是否解決了商業(yè)問題。
黃昱睿接著說明,要是評估發(fā)現(xiàn)ML指標(biāo)表現(xiàn)亮眼,但商業(yè)指標(biāo)沒有起色,這可能意味著,“原本定義的ML問題,沒有打中要害。”
他以自己多年前的一項(xiàng)Email營銷項(xiàng)目為例,他與團(tuán)隊(duì)打造一套ML模型,來預(yù)測用戶是否點(diǎn)擊Email內(nèi)容。
當(dāng)時評估發(fā)現(xiàn),模型預(yù)測精確度很高,但購買率還是很低。這是因?yàn)?,?dāng)初團(tuán)隊(duì)開發(fā)模型,只考量用戶是否點(diǎn)擊,并未納入后續(xù)的購買、成交等消費(fèi)行為,這時就得回過頭去定義問題。
不只如此,黃昱睿在后來一次次的評估中,觀察到推薦模型的特征相關(guān)性,與原本想象的特征,有很大的不同。
Line購物推薦模型是用來預(yù)測用戶會點(diǎn)擊的商品,照常理來說,點(diǎn)擊行為應(yīng)該是推薦成功與否,最相關(guān)的特征。但他后來發(fā)現(xiàn),并非如此,因?yàn)辄c(diǎn)擊并不是用戶完全主動的行為,而是網(wǎng)站先呈現(xiàn)內(nèi)容,用戶才能點(diǎn)擊?!爸鲃铀阉?,才是相關(guān)性最高的特征?!彼寡?。也因此,Line后來強(qiáng)化購物推薦模型時,打算納入更多與搜索相關(guān)的特征。
黃昱睿建議,開發(fā)者在構(gòu)建推薦模型前,可先分析主動事件和被動事件,再找尋相關(guān)特征,如此打造的推薦模型,效果會更好。
上線后需監(jiān)控ML性能與商業(yè)指標(biāo)
推薦模型經(jīng)評估可行、正式部署上線后,Line團(tuán)隊(duì)還有套監(jiān)控機(jī)制,時時把關(guān)模型性能。
監(jiān)控指標(biāo)不只有特征、ML性能指標(biāo),還要有商業(yè)指標(biāo),比如訂單量、點(diǎn)擊率,才能找出問題和改進(jìn)方法。比如,用戶每天的商品點(diǎn)擊率遞減,團(tuán)隊(duì)可從該商業(yè)指標(biāo)發(fā)現(xiàn)問題,順藤摸瓜找出推薦模型性能逐退下降原因,介入調(diào)整。
黃昱睿點(diǎn)出,理想的推薦系統(tǒng)生命周期,應(yīng)該由ML工程師和產(chǎn)品負(fù)責(zé)人一起合作維護(hù)?!坝袝r候推薦效果不好,不只是推薦的原因,”他舉例,曾經(jīng)做過流失分析,就算對流失用戶發(fā)送優(yōu)惠券,用戶仍不買單。這時,就需要ML工程師與產(chǎn)品負(fù)責(zé)人共同討論,比如重新設(shè)計(jì)或重新建模,來提高推薦成功率。
“最理想的狀況是,工程師、產(chǎn)品負(fù)責(zé)人,甚至是企業(yè)中更多組織加入這整個ML生命周期,就能做出更完整的產(chǎn)品或服務(wù),”他總結(jié)。