一文讀懂推薦系統(tǒng)用戶畫(huà)像
本系列文章將從最簡(jiǎn)單的概念開(kāi)始,逐步講解推薦系統(tǒng)的發(fā)展歷程和最新實(shí)踐。以產(chǎn)品經(jīng)理的視角,闡述推薦系統(tǒng)涉及的算法,技術(shù)和架構(gòu)。本文將介紹推薦系統(tǒng)如何給現(xiàn)實(shí)世界中的用戶打數(shù)字化的標(biāo)簽:用戶畫(huà)像。
用戶畫(huà)像,簡(jiǎn)單來(lái)講,就是我們給用戶打上的一系列的標(biāo)簽。它的應(yīng)用非常廣泛,在互聯(lián)網(wǎng)產(chǎn)品的任何一個(gè)領(lǐng)域,任何一種實(shí)現(xiàn)用戶個(gè)性化的功能,都需要用到用戶畫(huà)像。本文只涉及推薦系統(tǒng)的用戶畫(huà)像體系。
一、推薦系統(tǒng)用戶畫(huà)像長(zhǎng)什么樣
用戶畫(huà)像這個(gè)詞具有廣泛性。 它被應(yīng)用于推薦,廣告,搜索,個(gè)性化營(yíng)銷(xiāo)等各個(gè)領(lǐng)域。任何時(shí)候,不管出于什么目的,我們想描述我們的用戶是誰(shuí)的時(shí)候,大家都會(huì)用到用戶畫(huà)像這個(gè)詞。
比如:
(1)產(chǎn)品經(jīng)理定性用戶分析
設(shè)計(jì)產(chǎn)品功能時(shí),會(huì)對(duì)用戶是誰(shuí)進(jìn)行描摹。如:目標(biāo)用戶群體的人口屬性,社會(huì)背景,使用習(xí)慣等信息。這種用戶畫(huà)像主要描述用戶是誰(shuí),以便做好功能定位。
如下圖中的定性用戶畫(huà)像分群:
(2)數(shù)據(jù)分析用戶畫(huà)像
分析用戶行為,用戶進(jìn)行聚類行為分析。如:數(shù)據(jù)分析師可能會(huì)給出,觀看電商直播的男女比例,得出女性用戶更喜歡看我們的電商直播這樣的結(jié)論。
(3)推薦系統(tǒng)用戶畫(huà)像
為建立個(gè)性化功能,用各種辦法給用戶大規(guī)模打上幾萬(wàn)甚至幾千萬(wàn)個(gè)標(biāo)簽。這種標(biāo)簽不僅僅有偏好,還有偏好程度值。
本文所指的用戶畫(huà)像,僅僅涉及第三種情況。一般地,推薦系統(tǒng)的用戶畫(huà)像長(zhǎng)成這個(gè)樣子:
推薦系統(tǒng)的用戶畫(huà)像,一般包括用戶基礎(chǔ)信息和偏好信息。而偏好畫(huà)像是重點(diǎn),數(shù)量上占了推薦系統(tǒng)用戶畫(huà)像的絕大多數(shù),是我們召回和模型訓(xùn)練的基石。
因?yàn)闄C(jī)器跟人不同,一個(gè)詞“中國(guó)”對(duì)于人來(lái)說(shuō)是有意義的,對(duì)于機(jī)器只是一個(gè)漢字編碼。因?yàn)橛脩舢?huà)像,為了能讓機(jī)器計(jì)算,需要帶上概率值或者偏好值(權(quán)重值)等。
我們接下來(lái)就聊一聊,在推薦系統(tǒng)中,這種帶了一些列數(shù)字的用戶畫(huà)像怎么構(gòu)建出來(lái)的。
二、用戶畫(huà)像怎么用?
第一章的介紹過(guò),推薦過(guò)程分為:召回、初排和精排三個(gè)階段。用戶畫(huà)像主要用在召回和初排兩個(gè)階段。
召回階段使用用戶畫(huà)像,主要是通過(guò)用戶畫(huà)像召回相似的物品。比如一個(gè)短視頻APP上,用戶海賊王偏好值比較高,就可以針對(duì)海賊王進(jìn)行內(nèi)容召回。
初排階段使用用戶畫(huà)像,是在模型上使用的。模型將用戶畫(huà)像數(shù)據(jù)作為一部分的特征值,用于模型的離線訓(xùn)練或者實(shí)時(shí)模型更新。
三、用戶畫(huà)像的分類
用戶畫(huà)像是一個(gè)比較大而全的概念,標(biāo)簽是用戶畫(huà)像最基本的單元,用戶畫(huà)像是有成千上萬(wàn)個(gè)標(biāo)簽組合而成的。當(dāng)我們想對(duì)用戶畫(huà)像進(jìn)行分類時(shí),通過(guò)對(duì)用戶標(biāo)簽的分類就可以了。每個(gè)平臺(tái)有自己的用戶畫(huà)像體系。對(duì)推薦系統(tǒng)的構(gòu)建來(lái)說(shuō),一般從以下維度來(lái)做標(biāo)簽分類。
如下圖所示:
其中:
(1)基礎(chǔ)用戶畫(huà)像
- 人口統(tǒng)計(jì)學(xué)標(biāo)簽:用戶的性別,年齡,地區(qū)等信息。
- 行為特征標(biāo)簽:用戶在互聯(lián)網(wǎng)平臺(tái)的注冊(cè),活躍,付費(fèi),瀏覽等方面的行為記錄產(chǎn)生的用戶標(biāo)簽。
- 性格標(biāo)簽:豪爽大方,精打細(xì)算,沖動(dòng)消費(fèi)等類型標(biāo)簽
(2)偏好用戶畫(huà)像
- 長(zhǎng)期偏好標(biāo)簽:用戶對(duì)較長(zhǎng)時(shí)間內(nèi),幾個(gè)月甚至是幾年內(nèi),對(duì)某類事物的穩(wěn)定偏好。
- 短期偏好標(biāo)簽:用戶最近較短時(shí)間內(nèi),七天內(nèi)甚至是幾分鐘內(nèi),對(duì)某類事物的偏好。
- 泛化偏好標(biāo)簽:眾多的用戶偏好中,不同的偏好之間有關(guān)聯(lián)性或者相似性,就像啤酒和尿布那樣。用戶對(duì)啤酒有過(guò)直接的行為,但對(duì)尿布還沒(méi)有,那么尿布可能是他的泛化偏好。
以上的五小分類中,前面兩類只占了用戶標(biāo)簽數(shù)量的很小一部分。而推薦系統(tǒng)中,數(shù)量最為龐大的要數(shù)偏好類的標(biāo)簽了。平臺(tái)有多少個(gè)物品標(biāo)簽,就會(huì)產(chǎn)生多少偏好標(biāo)簽。另一方面,偏好類的標(biāo)簽的產(chǎn)生,依賴于物品標(biāo)簽。因?yàn)橛脩魧?duì)物品的偏好程度,是通過(guò)他對(duì)平臺(tái)物品的曝光,點(diǎn)擊,購(gòu)買(mǎi)等行為計(jì)算出來(lái)的。
四、基礎(chǔ)用戶畫(huà)像的怎么來(lái)?
那基礎(chǔ)的用戶畫(huà)像是怎么產(chǎn)生的呢?一般可分以下幾種來(lái)源:
- 簡(jiǎn)單信息提?。?/strong>基于實(shí)際基本事實(shí)而產(chǎn)生標(biāo)簽,如注冊(cè)時(shí)間,渠道來(lái)源,用戶所在地區(qū)等。
- 邏輯或公式計(jì)算:使用簡(jiǎn)單的邏輯或公式,對(duì)用戶的行為進(jìn)行統(tǒng)計(jì)而產(chǎn)生標(biāo)簽,如用戶活躍天數(shù),用戶消費(fèi)金額等。
- 算法學(xué)習(xí):基于機(jī)器學(xué)習(xí)模型對(duì)用戶的屬性預(yù)測(cè)產(chǎn)生的標(biāo)簽,如性別,年齡,有車(chē)一族等。
五、簡(jiǎn)單舉例:通過(guò)模型產(chǎn)生基礎(chǔ)用戶畫(huà)像
國(guó)內(nèi)某公司,在Kaggle舉行過(guò)一個(gè)預(yù)測(cè)用戶年齡和性別的比賽。他們公布了一個(gè)用戶數(shù)據(jù)集,數(shù)據(jù)集中包含了手機(jī)上安裝的APP列表,手機(jī)型號(hào)和GPS信息等數(shù)據(jù)用于模型訓(xùn)練。參賽選手通過(guò)這些數(shù)據(jù)建模,預(yù)測(cè)用戶的性別和年齡。準(zhǔn)確度高的獲勝。
一個(gè)用戶的手機(jī)里安裝的APP,跟他的年齡和性別存在著一定的關(guān)聯(lián)。如:女性用戶常用美柚,小紅書(shū)等APP;而男性用戶可能會(huì)裝更多的游戲。
如下圖:
這個(gè)是有監(jiān)督學(xué)習(xí),橙色部分?jǐn)?shù)據(jù)是特征,藍(lán)色部分?jǐn)?shù)據(jù)是label。Label就是我們需要預(yù)測(cè)的目標(biāo)。通過(guò)大量的數(shù)據(jù)和算法調(diào)優(yōu),就可以訓(xùn)練出較為準(zhǔn)確的模型。
用訓(xùn)練好的模型,就可以給其他的未知性別和年齡的用戶做評(píng)分預(yù)測(cè)。這部分比較簡(jiǎn)單,就簡(jiǎn)單舉例一下。
六、物品標(biāo)簽
物品畫(huà)像,則是每個(gè)物品的一系列標(biāo)簽。物品畫(huà)像其中一個(gè)作用就是可以作為推薦模型中的物品特征。另外一方面,在推薦系統(tǒng)中,物品畫(huà)像是用戶畫(huà)像的基礎(chǔ):物品畫(huà)像+用戶行為=用戶畫(huà)像。
舉個(gè)簡(jiǎn)單的例子,一個(gè)用戶點(diǎn)擊了一系列的阿克蘇蘋(píng)果(物品畫(huà)像:阿克蘇,蘋(píng)果,阿克蘇蘋(píng)果),這個(gè)用戶就會(huì)被打上阿克蘇,蘋(píng)果和阿克蘇蘋(píng)果的偏好標(biāo)簽。
物品畫(huà)像的產(chǎn)生,不同的內(nèi)容形式有不同的做法。但大體可分為兩類:
- 人工的方式給物品打標(biāo)簽;
- 機(jī)器學(xué)習(xí)的方式給物品打標(biāo)簽。
如在音樂(lè)領(lǐng)域,一些音樂(lè)平臺(tái)是通過(guò)一組音樂(lè)專家對(duì)平臺(tái)的音樂(lè)進(jìn)行打標(biāo)簽后,再對(duì)用戶進(jìn)行推薦。這種人工的方式成本比較高,而且依賴于專家的專業(yè)程度。另外,不同專家之間的標(biāo)準(zhǔn)可能不一樣,需要統(tǒng)一標(biāo)準(zhǔn)或者拉平差異。但是這也是沒(méi)有辦法的辦法,有些場(chǎng)景下,物品標(biāo)簽匱乏,不得不依賴與人工打標(biāo)的方式。
大規(guī)模地給物品打標(biāo)簽,大部分還是靠機(jī)器學(xué)習(xí)的方式。如何給物品打標(biāo)簽不是本文重點(diǎn),這里略過(guò)。
七、偏好畫(huà)像的怎么計(jì)算得來(lái)?
偏好畫(huà)像如何產(chǎn)生?為了直觀簡(jiǎn)單,直接以圖文數(shù)據(jù)的方式來(lái)講述。假設(shè)一個(gè)短視頻平臺(tái)有4個(gè)用戶使用,有4個(gè)視頻需要被推薦。
其中,4個(gè)視頻分別為:
整理一下,我們可以得到以上4個(gè)視頻的物品畫(huà)像:
另外,為了簡(jiǎn)單一點(diǎn),這里只考慮用戶的觀看行為,看完一次得分為1。4個(gè)用戶的數(shù)據(jù)分別如下,數(shù)字代表觀看次數(shù)。如下圖中,用戶A看了視頻1一共2次。
先說(shuō)結(jié)論,一般地,用戶畫(huà)像的公式為:用戶偏好程度 = 行為類型權(quán)重值 × 次數(shù) × 時(shí)間衰減 × TFIDF值。
- 行為類型權(quán)重值是人為給用戶行為的賦值。比如:看完=1,收藏=2,分享=3,購(gòu)買(mǎi)=4等。我們這里只考慮“看完”這個(gè)行為。
- 次數(shù)則是行為發(fā)生的次數(shù)。
- 時(shí)間衰減則是按一定的衰減系數(shù),隨著時(shí)間衰減。一般用牛頓熱力學(xué)公式來(lái)取衰減系數(shù)。
- TFIDF值本來(lái)是文本處理領(lǐng)域的算法,用來(lái)提取一篇文章中的關(guān)鍵字。這里用來(lái)衡量標(biāo)簽的對(duì)一個(gè)用戶的關(guān)鍵程度。
下面我們來(lái)計(jì)算用戶A的用戶畫(huà)像和偏好值。
第一步:列一下行為類型權(quán)重值,因?yàn)槲覀冎豢紤]觀看行為,權(quán)重都為1:
第二步:統(tǒng)計(jì)用戶A的行為次數(shù)。用戶A看了視頻1兩次,所以視頻1帶的標(biāo)簽“金融戰(zhàn)爭(zhēng)”和“做空”次數(shù)都記為2:
第三步:計(jì)算時(shí)間衰減,假設(shè)用戶A看視頻1是兩天前的行為,看視頻4是今天的行為。衰減按照天來(lái)計(jì)算,衰減系數(shù)等于0.1556,熱度計(jì)算公式為:熱度=1×exp(-0.1556×天數(shù))。按照這個(gè)衰減系數(shù),45天后熱度衰減到0.5。
按照這個(gè)計(jì)算方式,視頻1的熱度 = 1×exp(-0.1556×2) = 0.73,今天看的視頻4,熱度還為1。
第四步:計(jì)算TFIDF值。
這步比較復(fù)雜。我們先說(shuō)下TFIDF的公式,TF和IDF是兩個(gè)不同的值,兩兩相乘可以得到TFIDF值。
首先說(shuō)TF。
TF是Term Frequency的縮寫(xiě),意思是可以理解為詞頻,計(jì)算公式如下:
TF計(jì)算的是在用戶的所有標(biāo)簽中,某個(gè)標(biāo)簽的重要程度。如果標(biāo)簽出現(xiàn)頻率高,那么TF值就會(huì)比較高。對(duì)于用戶A,每個(gè)標(biāo)簽都出現(xiàn)了一次(因?yàn)榭催^(guò)的視頻中,沒(méi)有標(biāo)簽重復(fù)的),標(biāo)簽的TF值=1÷4=0.25。
而對(duì)于用戶B,因?yàn)橛锌催^(guò)兩個(gè)海賊王的視頻。一個(gè)視頻帶標(biāo)簽:海賊王,路飛。另外一個(gè)視頻帶標(biāo)簽:海賊王,路飛,甚平。所以,海賊王和路飛標(biāo)簽個(gè)數(shù)都是2,甚平的標(biāo)簽個(gè)數(shù)是1。
這樣,計(jì)算出用戶B的TF值為:
然后說(shuō)IDF。
IDF是Inverse Document Frequency,意思是逆文檔頻率。先說(shuō)怎么計(jì)算,公式如下:
這個(gè)是為了計(jì)算一個(gè)標(biāo)簽的稀缺程度。如果一個(gè)標(biāo)簽全部的用戶都,IDF值就比較小。相反,一個(gè)標(biāo)簽只有少部分用戶有,則IDF值比較大。公式中,“帶該標(biāo)簽的用戶數(shù)+1”部分加1是為了防止分母為0的情況。
下表的灰色部分是每個(gè)用戶行為,計(jì)算出用戶的標(biāo)簽個(gè)數(shù)統(tǒng)計(jì)。如海賊王標(biāo)簽,因?yàn)橛腥齻€(gè)用戶帶了這個(gè)標(biāo)簽,所以“帶該標(biāo)簽的用戶數(shù)”為3。它的IDF值 = 4 ÷ 3 = 1.33,這里4是因?yàn)橛?個(gè)用戶。
第五步,匯總計(jì)算出用戶A的每個(gè)標(biāo)簽偏好值。
如下圖中,用戶A對(duì)三傻大鬧寶萊塢的偏好值為:1×3×1×0.25×2=1.5。
用這種方式,我們就可以為用戶打上海量的標(biāo)簽,只用用戶行為足夠多,我們就能捕捉的用戶的偏好數(shù)據(jù)。
八、總結(jié)
- 推薦系統(tǒng)的用戶畫(huà)像主要有兩種:基本畫(huà)像和偏好畫(huà)像。
- 基本畫(huà)像是用戶的個(gè)人屬性,如年齡,性別,居住城市等。
- 用戶偏好畫(huà)像是推薦系統(tǒng)中的重點(diǎn),它一般用用戶偏好程度 = 行為類型權(quán)重值 × 次數(shù) × 時(shí)間衰減 × TFIDF值計(jì)算出來(lái)。
- 用戶畫(huà)像在推薦系統(tǒng)中用于召回和模型訓(xùn)練。
作者:菠蘿王子;公眾號(hào):菠蘿王子AI分享
本文由 @菠蘿王子 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
干活,收藏!
您好我想請(qǐng)問(wèn)下,根據(jù)上述算法判斷出每個(gè)用戶對(duì)標(biāo)簽的偏好分值,物品的分值就是所擁有的標(biāo)簽分值的累計(jì)加和,再根據(jù)模型協(xié)同過(guò)濾的方式進(jìn)行千人千面的推薦。而用戶畫(huà)像或推薦pm在日常工作中是不是核心在于尋找和挖掘用戶的標(biāo)簽和物品的標(biāo)簽,和對(duì)準(zhǔn)確率召回率等數(shù)據(jù)指標(biāo)的分析.我的理解對(duì)么?
IDF值算的有問(wèn)題吧,4/3?? log函數(shù)也沒(méi)算
小白友好~大概的基本邏輯都清楚了,感謝分享~(雖然涉及到牛頓熱力學(xué)公式,這對(duì)于一個(gè)log都忘了怎么算的人來(lái)說(shuō)太難理解了)
就喜歡這種直接講方法的
是我理解錯(cuò)了么,IDF的值算錯(cuò)了吧,也沒(méi)加1,也沒(méi)log
作者的意思應(yīng)該是:
if 分母=0,加1;
else 不加1
為什么沒(méi)有取log
非常棒鴨!干貨 ??