1、什么是冷啟動問題?
在缺乏有價(jià)值數(shù)據(jù)的時(shí)候,如何有效地滿足業(yè)務(wù)需求的問題,就是“冷啟動問題”。為了溝通方便,下面統(tǒng)一從推薦系統(tǒng)的角度來講“冷啟動問題”,其他業(yè)務(wù)場景同理。
冷啟動問題是機(jī)器學(xué)習(xí)系統(tǒng)中十分常見、無法回避的問題,因?yàn)槿魏螜C(jī)器學(xué)習(xí)系統(tǒng)都要經(jīng)歷從無到有的過程。試想,你作為一個(gè)新用戶,在沒有用戶數(shù)據(jù)的情況下,淘寶如何給你個(gè)性化推薦商品,抖音如何給你個(gè)性化推薦視頻呢?
具體地講,根據(jù)數(shù)據(jù)匱乏情況的不同,冷啟動問題主要分為 3 類:
- 用戶冷啟動:新用戶注冊后,沒有歷史行為數(shù)據(jù)。
- 物品冷啟動:新物品上架后,沒有用戶對該物品的交互數(shù)據(jù)。
- 系統(tǒng)冷啟動:新系統(tǒng)上線時(shí),缺乏所有歷史相關(guān)數(shù)據(jù)。
2、如何解決冷啟動問題?
說“解決”可能是過于絕對和自信了,但面對沒有數(shù)據(jù)的情況,我們并不是完全沒有辦法。
在講具體的解決方法之前,我還是希望站在更高維度,幫助大家構(gòu)建一個(gè)數(shù)據(jù)分析師/算法工程師該有的思維模型——可以從哪些角度來解構(gòu)數(shù)據(jù)/算法相關(guān)的問題,那么以后無論遇到什么問題,都可以做到考慮全面。抓到要害。

冷啟動問題是因?yàn)閿?shù)據(jù)缺乏導(dǎo)致的,與工程實(shí)現(xiàn)無關(guān)。根據(jù)上面的思維導(dǎo)圖,我們來從數(shù)據(jù)、算法和產(chǎn)品三個(gè)角度來思考。
3、數(shù)據(jù)
首先思考數(shù)據(jù),能夠幫助我們了解現(xiàn)狀,知道手上有哪些底牌。數(shù)據(jù)一般包括用戶數(shù)據(jù)和物品數(shù)據(jù)。
按數(shù)據(jù)來源的不同,考慮:內(nèi)部數(shù)據(jù)、外部數(shù)據(jù)。
3.1、內(nèi)部數(shù)據(jù)
內(nèi)部數(shù)據(jù)包括:本產(chǎn)品線的數(shù)據(jù)、其他產(chǎn)品線的數(shù)據(jù)。
注意,在冷啟動問題中,對于數(shù)據(jù)是“缺乏”而非“沒有”。這意味著我們手上可能還是有一些數(shù)據(jù)的。
對于用戶冷啟動問題,用戶在注冊時(shí)填寫的信息(手機(jī)號、地址、性別、年齡等)和注冊時(shí)的環(huán)境信息(IP地址、GPS),可以幫助我們做出粗粒度的推薦。例如可以根據(jù)專家意見或決策樹模型建立一些針對于不同年齡段、不同性別的用戶的個(gè)性化榜單,然后在用戶完成注冊后,根據(jù)注冊時(shí)填寫的信息進(jìn)行推薦。
對于物品冷啟動問題,物品的一些屬性信息也同樣可以起到作用。在酒店推薦的場景下,可以根據(jù)新上線酒店的位置、價(jià)格、面積等信息,為酒店指定聚類,找到相似酒店,利用相似酒店的推薦邏輯完成冷啟動過程。
另外,如果公司還有其他業(yè)務(wù)線,那么其他業(yè)務(wù)線的數(shù)據(jù)也可以拿過來使用。例如用戶在美團(tuán)已經(jīng)積累了外賣數(shù)據(jù),可以根據(jù)消費(fèi)金額、家庭地址等分析得出用戶的消費(fèi)水平,那么在用戶第一次使用美團(tuán)的酒店服務(wù)時(shí),也可以推薦出符合消費(fèi)習(xí)慣的酒店。
3.2、外部數(shù)據(jù)
常見獲取數(shù)據(jù)的手段包括:爬蟲、平臺對接。
爬蟲是近乎于零成本的方案,但是可能會有一些法律風(fēng)險(xiǎn)。平臺之間互相告對方非法爬取數(shù)據(jù)的新聞屢見不鮮。
有些第三方 DMP(Data Management Platform,數(shù)據(jù)管理平臺)也會提供用戶信息。像國外的 BlueKai、Nielsen,國內(nèi)的 Talking Data 等公司都提供匹配率非常高的數(shù)據(jù)服務(wù),可以極大地豐富用戶的屬性特征。像騰訊、百度、網(wǎng)易、Google等企業(yè)都與這些 DMP 平臺有合作。
那 DMP 的數(shù)據(jù)是哪里來的呢?數(shù)據(jù)交換。通過合作的方式,企業(yè)給 DMP 提供用戶的一些基本數(shù)據(jù),DMP 對數(shù)據(jù)進(jìn)行分析、挖掘,給企業(yè)提供更加全方位的用戶信息。這樣一來,企業(yè)就能獲取到本來完全得不到的用戶興趣、收入水平、廣告傾向等一系列高階特征。
4、算法
在梳理完數(shù)據(jù)現(xiàn)狀之后,接下來考慮算法的問題。
推薦系統(tǒng)的目標(biāo)就是推薦給用戶正確的商品,評價(jià)方式可以是點(diǎn)擊率、在線觀看時(shí)長等。在解決冷啟動問題的過程中,無論用什么算法,算法的優(yōu)化目標(biāo)都要與總體目標(biāo)一致。
算法可以從實(shí)現(xiàn)方式的不同,分為 3 類:基于規(guī)則、基于ML/DL、探索與利用。
4.1、基于規(guī)則的算法
基于規(guī)則的算法,一般給出的都是榜單類型的推薦結(jié)果。
在用戶冷啟動場景下,可以使用“熱門排行榜”、“最新流行趨勢榜”、“最高評分榜”等作為默認(rèn)的推薦列表,實(shí)現(xiàn)非個(gè)性化推薦。在章節(jié) 2.1.1、內(nèi)部數(shù)據(jù) 里也提到過,可以根據(jù)專家意見建立一些針對于不同年齡段、不同性別的用戶的個(gè)性化榜單,然后在用戶完成注冊后,根據(jù)注冊時(shí)填寫的信息進(jìn)行粗粒度的個(gè)性化推薦。另外,在 LBS(Location Based Services,基于位置的服務(wù))場景下,可以根據(jù)用戶在注冊時(shí)填寫的地址信息、GPS 信息,按一定規(guī)則推薦周圍的店家/商品。
在物品冷啟動場景下,章節(jié) 2.1.1、內(nèi)部數(shù)據(jù) 里也提到過,可以按一定規(guī)則尋找相似商品進(jìn)行綁定,完成推薦。
需要注意的是,基于規(guī)則的算法更多依賴的是專家對業(yè)務(wù)的洞察。因此在制定規(guī)則時(shí),需要充分了解業(yè)務(wù),充分利用已有數(shù)據(jù),才能讓冷啟動規(guī)則合理且高效。
4.2、基于ML/DL
基于 ML/DL 的算法要解決的是用戶冷啟動或物品冷啟動問題,而非系統(tǒng)冷啟動問題。因此前提是,系統(tǒng)已經(jīng)上線,同時(shí)也已經(jīng)有了一定的數(shù)據(jù)積累。
機(jī)器學(xué)習(xí)(ML)的思路是,將基于規(guī)則的算法改造為機(jī)器學(xué)習(xí)模型,按學(xué)習(xí)方式的不同,又可以分為有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)(當(dāng)然還有半監(jiān)督學(xué)習(xí),此處不展開)。
- 有監(jiān)督學(xué)習(xí):在前面的例子中,可以利用點(diǎn)擊率目標(biāo)構(gòu)造一個(gè)用戶屬性的決策樹,在每個(gè)決策樹的葉節(jié)點(diǎn)建立冷啟動榜單,然后新用戶在注冊后,根據(jù)其有限的屬性信息,尋找到?jīng)Q策樹上對應(yīng)的葉節(jié)點(diǎn)榜單,完成冷啟動過程。
- 無監(jiān)督學(xué)習(xí):例如使用聚類算法,來尋找相似物品,但要注意維度災(zāi)難問題。
需要注意的是,由于數(shù)據(jù)的缺乏,不能選用復(fù)雜的機(jī)器學(xué)習(xí)模型,否則容易造成過擬合問題。
而對于新用戶,由于其特征非常的稀疏,使用基于深度學(xué)習(xí)(DL)的推薦系統(tǒng)效果會比較差,那有什么方法呢?可以考慮遷移學(xué)習(xí)和強(qiáng)化學(xué)習(xí)。
- 遷移學(xué)習(xí):在章節(jié) 2.1.1、內(nèi)部數(shù)據(jù) 里,我們提到過如果有其他業(yè)務(wù)線的數(shù)據(jù),也可以拿過來使用。冷啟動問題本質(zhì)上是某領(lǐng)域的數(shù)據(jù)或知識不足導(dǎo)致的,如果能夠?qū)⑵渌I(lǐng)域的知識用于當(dāng)前領(lǐng)域,那么冷啟動問題自然迎刃而解。我們稱這種做法為“遷移學(xué)習(xí)”,常見的做法是共享特征(在深度學(xué)習(xí)模型中就是共享 Embedding)或共享模型參數(shù)。例如將 CTR 模型中的用戶 Embedding 和物品 Embedding 應(yīng)用到 CVR 模型中,直接用于訓(xùn)練。Embedding 是一種高維特征到低維特征的映射,訓(xùn)練好的 Embedding 可以反映用于與隱變量、商品與隱變量之間的內(nèi)在聯(lián)系。
- 強(qiáng)化學(xué)習(xí):所謂強(qiáng)化學(xué)習(xí),就是指智能體(即模型)根據(jù)環(huán)境(即用戶、物品等)的反饋(即點(diǎn)擊或不點(diǎn)擊)來采取行動(即推薦商品列表)并改變自身狀態(tài)(更新模型參數(shù)),然后再獲得反饋再采取行動再改變狀態(tài)的循環(huán)過程。在一次次的迭代過程中,讓推薦系統(tǒng)盡快度過冷啟動狀態(tài)。
4.3、運(yùn)籌優(yōu)化
運(yùn)籌優(yōu)化在推薦系統(tǒng)中的應(yīng)用場景是多樣的,而在冷啟動問題里,主要是用于解決物品冷啟動問題。當(dāng)然,同樣也可以用來解決系統(tǒng)冷啟動的問題。
具體而言,就是是在“探索新數(shù)據(jù)”和“利用舊數(shù)據(jù)”之間進(jìn)行平衡,使系統(tǒng)既能夠利用舊數(shù)據(jù)進(jìn)行推薦,達(dá)到推薦系統(tǒng)的商業(yè)目標(biāo),又能高效地探索冷啟動的物品是否是“優(yōu)質(zhì)物品”,使冷啟動物品獲得曝光的傾向,快速收集冷啟動數(shù)據(jù)。我們又稱這個(gè)過程為“探索與利用”。
顯然,這是一個(gè)多目標(biāo)優(yōu)化問題。
一個(gè)經(jīng)典的解決辦法是 UCB(Upper Confidence Bound,置信區(qū)間上界)。公式如下。其中 為觀測到的第
個(gè)物品的平均回報(bào)(這里的平均回報(bào)可以是點(diǎn)擊率、轉(zhuǎn)化率等),
是目前為止向該用戶曝光第
個(gè)物品的次數(shù),
是到目前為止曝光所有物品的次數(shù)之和。
在新物品剛上架的時(shí)候, 比較低,但是因?yàn)槠毓獯螖?shù)
也比較小,所以
會比較大,最后
值會比較大,新物品的曝光機(jī)會較大。隨著曝光次數(shù)的增加,
在公式中的相對值逐漸減小,最后
就主要取決于
了。也就是說,使用 UCB 方法進(jìn)行推薦,推薦系統(tǒng)會傾向于推薦“效果好”或“冷啟動”的物品。隨著冷啟動物品被有傾向性的推薦,能夠快速收集反饋數(shù)據(jù),最后快速通過冷啟動階段。
5、產(chǎn)品
最后討論一下從產(chǎn)品的角度,要怎么幫助解決冷啟動問題。
冷啟動問題之所以出現(xiàn),就是因?yàn)槿狈τ袃r(jià)值的數(shù)據(jù),那么在產(chǎn)品功能方面,就要盡量幫助收集數(shù)據(jù)。
- 用戶冷啟動:有些應(yīng)用會在用戶第一次登錄時(shí),引導(dǎo)用戶輸入一些冷啟動特征。例如,一些音樂類產(chǎn)品會引導(dǎo)用于選擇“音樂風(fēng)格”;一些視頻類產(chǎn)品會引導(dǎo)用戶選擇幾部自己喜歡的電影。
- 物品冷啟動:有些應(yīng)用會以積分獎勵的方式引導(dǎo)用戶輸入一些物品特征。像大眾點(diǎn)評上的評論體系,淘寶上的評價(jià)系統(tǒng),都是幫助商家、商品快速度過冷啟動解決的利器。
6、最后
讀完王喆的《深度學(xué)習(xí)推薦系統(tǒng)》,有感而發(fā)。良心推薦~