推薦系統(tǒng)分析:猜你喜歡是怎么產(chǎn)生的?
本文將從最簡單的概念開始,逐步講解推薦系統(tǒng)的發(fā)展歷程和最新實(shí)踐。以產(chǎn)品經(jīng)理的視角,闡述推薦系統(tǒng)涉及的算法,技術(shù)和架構(gòu)。本章是第一章,將先概括性介紹推薦系統(tǒng)。
推薦系統(tǒng)是迄今為止,人工智能,大數(shù)據(jù)和云計(jì)算等前沿技術(shù)應(yīng)用得最全面的產(chǎn)品場景之一。它是眾多前沿技術(shù)的結(jié)晶,集百家之大成,復(fù)雜而微妙。但抽繭剝絲后,它又跟眾多的科學(xué)那樣,簡潔而優(yōu)美。像“猜你喜歡“這樣的功能,已經(jīng)數(shù)見不鮮,陪伴我們多年了。但這個功能具體是怎么實(shí)現(xiàn)的呢?我想通過這篇文章跟大家聊一聊。
在介紹推薦系統(tǒng)之前,先簡單介紹下人工智能技術(shù)。
01 解決人工智能問題的兩種思路
人工智能的算法,涵蓋了概率,統(tǒng)計(jì),高等數(shù)學(xué),計(jì)算機(jī),大數(shù)據(jù)等多個學(xué)科的知識,抽象且復(fù)雜。這里不打算給人工智能做內(nèi)涵和外延的定義性解釋,而是從更具象的角度來闡述這個問題。
機(jī)器智能和飛上藍(lán)天,都是人類千百年來的夢想,而且這個兩個尖端科學(xué)都經(jīng)歷了直接仿生的思路失敗后,改變思路獲得了突破。
因?yàn)榭匆婙B能飛,最早制造飛行器的思路,都是模仿鳥的結(jié)構(gòu)。達(dá)芬奇是個偉大的藝術(shù)家,同時也是個能工巧匠,他設(shè)計(jì)了一個非常巧妙且像鳥的飛行器,但似乎并沒有什么用。歷史上第一個真正駕駛飛行器飛上藍(lán)天的人,是把飛行器做的最不像鳥的萊特兄弟。飛機(jī)的誕生,建立在流體力學(xué)的基礎(chǔ)上。
類似地,歷史上,人工智能有兩種主要的思路:
一種是早期的主流思路:模仿人類學(xué)習(xí)的過程,將事物的特性描述給機(jī)器,從而讓機(jī)器獲得跟人類等同的認(rèn)知。
按照這種思路,要讓機(jī)器識別出貓來,就類似于要告訴機(jī)器:貓有四條腿,兩只眼睛,身上有柔軟的毛等等特征。因?yàn)槿司褪沁@樣認(rèn)識貓的。但是這種思路從1956年開始,被研究了十年之后依然毫無進(jìn)展而被擱置。
另一種是現(xiàn)在的思路:讓機(jī)器自己從數(shù)據(jù)中學(xué)習(xí),從而獲得類似人類的認(rèn)知。
所以,我們現(xiàn)在看到的人工智能術(shù)語名稱,主要都是機(jī)器學(xué)習(xí)(Machine Learning),深度學(xué)習(xí)(Deep Learning),強(qiáng)化學(xué)習(xí)(Reinforcement Learning)等。
按照這個思路,我們要識別出貓,只要給機(jī)器一系列圖片,并標(biāo)記好哪些是貓,哪些不是貓。機(jī)器通過圖像數(shù)據(jù)訓(xùn)練模型,然后再用訓(xùn)練好的模型把貓識別出來。
推薦系統(tǒng)的思路也是這樣,通過讓機(jī)器學(xué)習(xí)每個用戶的點(diǎn)擊,購買,分享,收藏和負(fù)反饋等代表用戶喜好和厭惡的數(shù)據(jù),以讓機(jī)器知道用戶的偏好,從而實(shí)現(xiàn)對用戶可能喜歡的物品進(jìn)行推薦。
02 人工智能的三個過程
按機(jī)器學(xué)習(xí)的思路,人工智能的實(shí)踐都可以簡單地分為三個過程:數(shù)據(jù),學(xué)習(xí)和決策。
1. 數(shù)據(jù)
首先,機(jī)器需要感知的事物對象,就要通過數(shù)據(jù)。這個數(shù)據(jù)有可能是現(xiàn)實(shí)世界中的實(shí)際數(shù)值,如溫度,濕度,股票價格等等。也有些是數(shù)字化的文件,如圖像,語音等。
對于大多數(shù)的數(shù)據(jù),機(jī)器并不能直接就“讀懂”他們,而需要我們用算法來從這些數(shù)據(jù)中提取特征。
比如在深度學(xué)習(xí)圖片識別領(lǐng)域,需要用多層神經(jīng)網(wǎng)絡(luò)抽取出圖像的基礎(chǔ)特征。實(shí)踐表明,高階特征可由低階特征組合而成。下圖中,最底層的正交邊經(jīng)過組合后,就可以得到臉,車,大象和椅子。反過來講,任意圖片,經(jīng)過多層神經(jīng)網(wǎng)絡(luò)特征抽取之后,都可以得到相似的基礎(chǔ)特征。所以可以簡單地認(rèn)為,基礎(chǔ)特征的不同組合形成了不同的的圖像,提取出圖像的基礎(chǔ)特征和組合參數(shù)就能識別圖像。
由于數(shù)據(jù)形式不同,推薦系統(tǒng)算法并不能像圖像識別算法那樣直接通過堆疊神經(jīng)元層級來抽取特征。推薦系統(tǒng)抽取特征的過程需要不同類別算法的輔助。如推薦系統(tǒng)需要構(gòu)建用戶畫像和物品畫像,要用算法或規(guī)則先把用戶的偏好標(biāo)簽和物品的特征標(biāo)簽都打好,計(jì)算好權(quán)重,然后再輸入模型進(jìn)行學(xué)習(xí)。
2. 學(xué)習(xí)
再者,學(xué)習(xí)則是機(jī)器通過算法,通過大量的數(shù)據(jù)不斷迭代調(diào)優(yōu),訓(xùn)練模型的過程。
3. 決策
最后,決策就是通過訓(xùn)練好的模型進(jìn)行預(yù)測或分類等。這些都比較好理解。
4. 小結(jié)
一個推薦系統(tǒng),會由很多個模型構(gòu)成。小到一個用戶畫像標(biāo)簽的預(yù)測模型,大到推薦的排序模型都可以拆解成數(shù)據(jù)→學(xué)習(xí)→決策的過程。這便是解決問題的思路。
因?yàn)椴煌詣e的用戶在物品偏好上有較大的不同。對于很多平臺,預(yù)測性別是個必選的工作。這是個有監(jiān)督學(xué)習(xí)問題,我們可以這樣解決:
- 數(shù)據(jù)。首先挑選跟用戶的性別有關(guān)數(shù)據(jù)。假設(shè)挑選了頭像,昵稱,手機(jī)型號,用戶APP安裝列表和點(diǎn)擊記錄等數(shù)據(jù)。然后將用戶數(shù)據(jù)中這些字段和已知性別的數(shù)據(jù)挑選出來。
- 學(xué)習(xí)。挑選一個模型進(jìn)行學(xué)習(xí)擬合。一般地可以選擇邏輯回歸模型,或者決策樹類的模型進(jìn)行擬合。
- 預(yù)測。用已學(xué)好的模型對未知性別的用戶進(jìn)行預(yù)測。
03 推薦系統(tǒng)的作用
介紹完人工智能的感知,學(xué)習(xí)和決策三個過程,下面開始介紹推薦系統(tǒng)。
在互聯(lián)網(wǎng)商業(yè)平臺上,如今日頭條,快手,淘寶等,存在供給和需求雙方,雙方的代表是用戶(User)和物品(Item)。沒有推薦系統(tǒng)的時候,用戶和物品的連接方式一般有三種主要方式:
- 物品經(jīng)小編推薦給了用戶
- 用戶自己搜索了需要的物品
- 物品被用戶A推薦給了用戶B
這三種連接方式滿足了大多數(shù)的需求,也一直運(yùn)行良好。不過移動互聯(lián)網(wǎng)時代,手機(jī)屏幕小,單屏可曝光內(nèi)容也少了很多。特別是在流量越來越難獲取的當(dāng)下,平臺的主動推薦單純靠運(yùn)營人員編輯,局限性就比較明顯:
- 運(yùn)營大多推薦大眾喜歡的物品,長尾物品得不到足夠曝光。
- 大眾商品不等于人人喜歡,存在推薦不精準(zhǔn)而導(dǎo)致的流量浪費(fèi)。
- 推薦數(shù)目有限,內(nèi)容不能無限下拉,用戶看完即走。
為了解決以上這些問題,我們引進(jìn)了推薦系統(tǒng)。
04 推薦系統(tǒng)的工作流程
從本質(zhì)上講,推薦的過程,就是根據(jù)不同的用戶偏好,對物品進(jìn)行排序,然后擇優(yōu)推薦。
極端情況下,如果只有10個物品需要推薦,我們?yōu)槊總€用戶都針對這10個物品進(jìn)行全排序就可以了,這不需要很大的計(jì)算資源。
但是,當(dāng)被推薦物品達(dá)到上百萬個的時候,我們就不可能給每個用戶都進(jìn)行全排序了。一般來說,推薦結(jié)果要在收到用戶請求后,10毫秒左右的時間就給出,做物品全排序這么短時間是不可能達(dá)成的。所以推薦的時候,只能對部分物品進(jìn)行排序。
推薦系統(tǒng)一般做點(diǎn)擊預(yù)估較多,我們這里以點(diǎn)擊預(yù)估為例。系統(tǒng)給用戶做推薦,一般按照以下流程進(jìn)行:
如上圖所示,給用戶做出推薦響應(yīng)的過程分為三個:
- 召回:從百萬以上內(nèi)容池中快速初篩出候選集。
- 初排:根據(jù)點(diǎn)擊率預(yù)估給候選集初步排序。
- 精排:根據(jù)需要調(diào)整排序。
1. 召回
收到用戶請求后,我們需要一些快速的算法或者規(guī)則,從上百萬甚至上億的物品庫中將最有可能的物品初步篩選出來。這個篩選的過程就叫做召回(Recall),也有些互聯(lián)網(wǎng)公司將這個過程叫做匹配(Matching)。召回完成后,就可以得到幾百個推薦候選集。一個推薦系統(tǒng)一般有多個召回算法或者召回規(guī)則,這叫做多路召回。如:
- 基于用戶畫像標(biāo)簽召回。
- 基于地理位置信息召回。
- 基于物品協(xié)同過濾召回。
- 基于熱門商品召回。
2. 初排
召回過程完成后,得到的候選集就被輸入排序模型進(jìn)行排序。模型將預(yù)測每個物品被用戶點(diǎn)擊的概率,且按照點(diǎn)擊概率高到低進(jìn)行排序。
但是這個排序結(jié)果一般不是最終推薦給用戶的結(jié)果,所以這個過程叫初排。初排后,一般會產(chǎn)生幾十個推薦結(jié)果給下一步。
3. 精排
前面提到人工智能的兩種思路。但是,在第二種思路大行其道的今天,并不是第一種思路就消失殆盡了。
在推薦系統(tǒng)中,還需要策略產(chǎn)品經(jīng)理設(shè)定一些專家規(guī)則。在算法還沒有學(xué)習(xí)到某方面知識的時候,用這些規(guī)則告訴機(jī)器如何處理一些問題。精排就是需要使用規(guī)則的場景之一。
精排一般是對排序的結(jié)果進(jìn)行額外的篩查,降權(quán)或升權(quán)處理的過程。下面是一些常見的精排時處理:
- 對推薦結(jié)果的進(jìn)行調(diào)整,保持每次推薦的多樣性。如一口氣推薦了10款華為手機(jī),而且都靠的很近,這個時候就需要將結(jié)果減少,如只要前兩個,而且打散。
- 出于商業(yè)目的,對一些物品進(jìn)行流量扶持,將推薦結(jié)果中該類物品排到前面。甚至某些物品不管有沒有被推薦,都直接插入并置頂。
- 對有違規(guī)風(fēng)險,或者已經(jīng)下架,或者該用戶不喜歡的物品進(jìn)行過濾
精排結(jié)束后,一般會產(chǎn)生8-10個結(jié)果直接推薦給用戶。這就是整個推薦的過程。
05 結(jié)語
最后,總結(jié)一下,本章有兩個重要點(diǎn):
- 人工智能問題實(shí)踐中,一般有三個步驟:數(shù)據(jù),學(xué)習(xí)和決策。面對我們需要讓機(jī)器學(xué)習(xí)的問題,首先我們要找到機(jī)器需要的數(shù)據(jù),并做好特征提取。數(shù)據(jù)準(zhǔn)備好后,再通過選擇或構(gòu)建模型讓機(jī)器學(xué)習(xí)。
- 推薦系統(tǒng)給用戶做推薦時,會經(jīng)過三個步驟:召回,初排和精排。
本文由 @菠蘿的海王子 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
贊??
這么好的文章竟然沒人點(diǎn)贊
謝謝您