推薦系統(tǒng)分析:猜你喜歡是怎么產(chǎn)生的?

3 評(píng)論 14336 瀏覽 70 收藏 14 分鐘

本文將從最簡(jiǎn)單的概念開(kāi)始,逐步講解推薦系統(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)品場(chǎng)景之一。它是眾多前沿技術(shù)的結(jié)晶,集百家之大成,復(fù)雜而微妙。但抽繭剝絲后,它又跟眾多的科學(xué)那樣,簡(jiǎn)潔而優(yōu)美。像“猜你喜歡“這樣的功能,已經(jīng)數(shù)見(jiàn)不鮮,陪伴我們多年了。但這個(gè)功能具體是怎么實(shí)現(xiàn)的呢?我想通過(guò)這篇文章跟大家聊一聊。

在介紹推薦系統(tǒng)之前,先簡(jiǎn)單介紹下人工智能技術(shù)。

01 解決人工智能問(wèn)題的兩種思路

人工智能的算法,涵蓋了概率,統(tǒng)計(jì),高等數(shù)學(xué),計(jì)算機(jī),大數(shù)據(jù)等多個(gè)學(xué)科的知識(shí),抽象且復(fù)雜。這里不打算給人工智能做內(nèi)涵和外延的定義性解釋,而是從更具象的角度來(lái)闡述這個(gè)問(wèn)題。

機(jī)器智能和飛上藍(lán)天,都是人類千百年來(lái)的夢(mèng)想,而且這個(gè)兩個(gè)尖端科學(xué)都經(jīng)歷了直接仿生的思路失敗后,改變思路獲得了突破。

因?yàn)榭匆?jiàn)鳥(niǎo)能飛,最早制造飛行器的思路,都是模仿鳥(niǎo)的結(jié)構(gòu)。達(dá)芬奇是個(gè)偉大的藝術(shù)家,同時(shí)也是個(gè)能工巧匠,他設(shè)計(jì)了一個(gè)非常巧妙且像鳥(niǎo)的飛行器,但似乎并沒(méi)有什么用。歷史上第一個(gè)真正駕駛飛行器飛上藍(lán)天的人,是把飛行器做的最不像鳥(niǎo)的萊特兄弟。飛機(jī)的誕生,建立在流體力學(xué)的基礎(chǔ)上。

類似地,歷史上,人工智能有兩種主要的思路:

一種是早期的主流思路:模仿人類學(xué)習(xí)的過(guò)程,將事物的特性描述給機(jī)器,從而讓機(jī)器獲得跟人類等同的認(rèn)知。

按照這種思路,要讓機(jī)器識(shí)別出貓來(lái),就類似于要告訴機(jī)器:貓有四條腿,兩只眼睛,身上有柔軟的毛等等特征。因?yàn)槿司褪沁@樣認(rèn)識(shí)貓的。但是這種思路從1956年開(kāi)始,被研究了十年之后依然毫無(wú)進(jìn)展而被擱置。

另一種是現(xiàn)在的思路:讓機(jī)器自己從數(shù)據(jù)中學(xué)習(xí),從而獲得類似人類的認(rèn)知。

所以,我們現(xiàn)在看到的人工智能術(shù)語(yǔ)名稱,主要都是機(jī)器學(xué)習(xí)(Machine Learning),深度學(xué)習(xí)(Deep Learning),強(qiáng)化學(xué)習(xí)(Reinforcement Learning)等。

按照這個(gè)思路,我們要識(shí)別出貓,只要給機(jī)器一系列圖片,并標(biāo)記好哪些是貓,哪些不是貓。機(jī)器通過(guò)圖像數(shù)據(jù)訓(xùn)練模型,然后再用訓(xùn)練好的模型把貓識(shí)別出來(lái)。

推薦系統(tǒng)的思路也是這樣,通過(guò)讓機(jī)器學(xué)習(xí)每個(gè)用戶的點(diǎn)擊,購(gòu)買,分享,收藏和負(fù)反饋等代表用戶喜好和厭惡的數(shù)據(jù),以讓機(jī)器知道用戶的偏好,從而實(shí)現(xiàn)對(duì)用戶可能喜歡的物品進(jìn)行推薦。

02 人工智能的三個(gè)過(guò)程

按機(jī)器學(xué)習(xí)的思路,人工智能的實(shí)踐都可以簡(jiǎn)單地分為三個(gè)過(guò)程:數(shù)據(jù),學(xué)習(xí)和決策。

1. 數(shù)據(jù)

首先,機(jī)器需要感知的事物對(duì)象,就要通過(guò)數(shù)據(jù)。這個(gè)數(shù)據(jù)有可能是現(xiàn)實(shí)世界中的實(shí)際數(shù)值,如溫度,濕度,股票價(jià)格等等。也有些是數(shù)字化的文件,如圖像,語(yǔ)音等。

對(duì)于大多數(shù)的數(shù)據(jù),機(jī)器并不能直接就“讀懂”他們,而需要我們用算法來(lái)從這些數(shù)據(jù)中提取特征。

比如在深度學(xué)習(xí)圖片識(shí)別領(lǐng)域,需要用多層神經(jīng)網(wǎng)絡(luò)抽取出圖像的基礎(chǔ)特征。實(shí)踐表明,高階特征可由低階特征組合而成。下圖中,最底層的正交邊經(jīng)過(guò)組合后,就可以得到臉,車,大象和椅子。反過(guò)來(lái)講,任意圖片,經(jīng)過(guò)多層神經(jīng)網(wǎng)絡(luò)特征抽取之后,都可以得到相似的基礎(chǔ)特征。所以可以簡(jiǎn)單地認(rèn)為,基礎(chǔ)特征的不同組合形成了不同的的圖像,提取出圖像的基礎(chǔ)特征和組合參數(shù)就能識(shí)別圖像。

由于數(shù)據(jù)形式不同,推薦系統(tǒng)算法并不能像圖像識(shí)別算法那樣直接通過(guò)堆疊神經(jīng)元層級(jí)來(lái)抽取特征。推薦系統(tǒng)抽取特征的過(guò)程需要不同類別算法的輔助。如推薦系統(tǒng)需要構(gòu)建用戶畫像和物品畫像,要用算法或規(guī)則先把用戶的偏好標(biāo)簽和物品的特征標(biāo)簽都打好,計(jì)算好權(quán)重,然后再輸入模型進(jìn)行學(xué)習(xí)。

2. 學(xué)習(xí)

再者,學(xué)習(xí)則是機(jī)器通過(guò)算法,通過(guò)大量的數(shù)據(jù)不斷迭代調(diào)優(yōu),訓(xùn)練模型的過(guò)程。

3. 決策

最后,決策就是通過(guò)訓(xùn)練好的模型進(jìn)行預(yù)測(cè)或分類等。這些都比較好理解。

4. 小結(jié)

一個(gè)推薦系統(tǒng),會(huì)由很多個(gè)模型構(gòu)成。小到一個(gè)用戶畫像標(biāo)簽的預(yù)測(cè)模型,大到推薦的排序模型都可以拆解成數(shù)據(jù)→學(xué)習(xí)→決策的過(guò)程。這便是解決問(wèn)題的思路。

因?yàn)椴煌詣e的用戶在物品偏好上有較大的不同。對(duì)于很多平臺(tái),預(yù)測(cè)性別是個(gè)必選的工作。這是個(gè)有監(jiān)督學(xué)習(xí)問(wèn)題,我們可以這樣解決:

  1. 數(shù)據(jù)。首先挑選跟用戶的性別有關(guān)數(shù)據(jù)。假設(shè)挑選了頭像,昵稱,手機(jī)型號(hào),用戶APP安裝列表和點(diǎn)擊記錄等數(shù)據(jù)。然后將用戶數(shù)據(jù)中這些字段和已知性別的數(shù)據(jù)挑選出來(lái)。
  2. 學(xué)習(xí)。挑選一個(gè)模型進(jìn)行學(xué)習(xí)擬合。一般地可以選擇邏輯回歸模型,或者決策樹(shù)類的模型進(jìn)行擬合。
  3. 預(yù)測(cè)。用已學(xué)好的模型對(duì)未知性別的用戶進(jìn)行預(yù)測(cè)。

03 推薦系統(tǒng)的作用

介紹完人工智能的感知,學(xué)習(xí)和決策三個(gè)過(guò)程,下面開(kāi)始介紹推薦系統(tǒng)。

在互聯(lián)網(wǎng)商業(yè)平臺(tái)上,如今日頭條,快手,淘寶等,存在供給和需求雙方,雙方的代表是用戶(User)和物品(Item)。沒(méi)有推薦系統(tǒng)的時(shí)候,用戶和物品的連接方式一般有三種主要方式:

  1. 物品經(jīng)小編推薦給了用戶
  2. 用戶自己搜索了需要的物品
  3. 物品被用戶A推薦給了用戶B

這三種連接方式滿足了大多數(shù)的需求,也一直運(yùn)行良好。不過(guò)移動(dòng)互聯(lián)網(wǎng)時(shí)代,手機(jī)屏幕小,單屏可曝光內(nèi)容也少了很多。特別是在流量越來(lái)越難獲取的當(dāng)下,平臺(tái)的主動(dòng)推薦單純靠運(yùn)營(yíng)人員編輯,局限性就比較明顯:

  1. 運(yùn)營(yíng)大多推薦大眾喜歡的物品,長(zhǎng)尾物品得不到足夠曝光。
  2. 大眾商品不等于人人喜歡,存在推薦不精準(zhǔn)而導(dǎo)致的流量浪費(fèi)。
  3. 推薦數(shù)目有限,內(nèi)容不能無(wú)限下拉,用戶看完即走。

為了解決以上這些問(wèn)題,我們引進(jìn)了推薦系統(tǒng)。

04 推薦系統(tǒng)的工作流程

從本質(zhì)上講,推薦的過(guò)程,就是根據(jù)不同的用戶偏好,對(duì)物品進(jìn)行排序,然后擇優(yōu)推薦。

極端情況下,如果只有10個(gè)物品需要推薦,我們?yōu)槊總€(gè)用戶都針對(duì)這10個(gè)物品進(jìn)行全排序就可以了,這不需要很大的計(jì)算資源。

但是,當(dāng)被推薦物品達(dá)到上百萬(wàn)個(gè)的時(shí)候,我們就不可能給每個(gè)用戶都進(jìn)行全排序了。一般來(lái)說(shuō),推薦結(jié)果要在收到用戶請(qǐng)求后,10毫秒左右的時(shí)間就給出,做物品全排序這么短時(shí)間是不可能達(dá)成的。所以推薦的時(shí)候,只能對(duì)部分物品進(jìn)行排序。

推薦系統(tǒng)一般做點(diǎn)擊預(yù)估較多,我們這里以點(diǎn)擊預(yù)估為例。系統(tǒng)給用戶做推薦,一般按照以下流程進(jìn)行:

如上圖所示,給用戶做出推薦響應(yīng)的過(guò)程分為三個(gè):

  • 召回:從百萬(wàn)以上內(nèi)容池中快速初篩出候選集。
  • 初排:根據(jù)點(diǎn)擊率預(yù)估給候選集初步排序。
  • 精排:根據(jù)需要調(diào)整排序。

1. 召回

收到用戶請(qǐng)求后,我們需要一些快速的算法或者規(guī)則,從上百萬(wàn)甚至上億的物品庫(kù)中將最有可能的物品初步篩選出來(lái)。這個(gè)篩選的過(guò)程就叫做召回(Recall),也有些互聯(lián)網(wǎng)公司將這個(gè)過(guò)程叫做匹配(Matching)。召回完成后,就可以得到幾百個(gè)推薦候選集。一個(gè)推薦系統(tǒng)一般有多個(gè)召回算法或者召回規(guī)則,這叫做多路召回。如:

  • 基于用戶畫像標(biāo)簽召回。
  • 基于地理位置信息召回。
  • 基于物品協(xié)同過(guò)濾召回。
  • 基于熱門商品召回。

2. 初排

召回過(guò)程完成后,得到的候選集就被輸入排序模型進(jìn)行排序。模型將預(yù)測(cè)每個(gè)物品被用戶點(diǎn)擊的概率,且按照點(diǎn)擊概率高到低進(jìn)行排序。

但是這個(gè)排序結(jié)果一般不是最終推薦給用戶的結(jié)果,所以這個(gè)過(guò)程叫初排。初排后,一般會(huì)產(chǎn)生幾十個(gè)推薦結(jié)果給下一步。

3. 精排

前面提到人工智能的兩種思路。但是,在第二種思路大行其道的今天,并不是第一種思路就消失殆盡了。

在推薦系統(tǒng)中,還需要策略產(chǎn)品經(jīng)理設(shè)定一些專家規(guī)則。在算法還沒(méi)有學(xué)習(xí)到某方面知識(shí)的時(shí)候,用這些規(guī)則告訴機(jī)器如何處理一些問(wèn)題。精排就是需要使用規(guī)則的場(chǎng)景之一。

精排一般是對(duì)排序的結(jié)果進(jìn)行額外的篩查,降權(quán)或升權(quán)處理的過(guò)程。下面是一些常見(jiàn)的精排時(shí)處理:

  • 對(duì)推薦結(jié)果的進(jìn)行調(diào)整,保持每次推薦的多樣性。如一口氣推薦了10款華為手機(jī),而且都靠的很近,這個(gè)時(shí)候就需要將結(jié)果減少,如只要前兩個(gè),而且打散。
  • 出于商業(yè)目的,對(duì)一些物品進(jìn)行流量扶持,將推薦結(jié)果中該類物品排到前面。甚至某些物品不管有沒(méi)有被推薦,都直接插入并置頂。
  • 對(duì)有違規(guī)風(fēng)險(xiǎn),或者已經(jīng)下架,或者該用戶不喜歡的物品進(jìn)行過(guò)濾

精排結(jié)束后,一般會(huì)產(chǎn)生8-10個(gè)結(jié)果直接推薦給用戶。這就是整個(gè)推薦的過(guò)程。

05 結(jié)語(yǔ)

最后,總結(jié)一下,本章有兩個(gè)重要點(diǎn):

  1. 人工智能問(wèn)題實(shí)踐中,一般有三個(gè)步驟:數(shù)據(jù),學(xué)習(xí)和決策。面對(duì)我們需要讓機(jī)器學(xué)習(xí)的問(wèn)題,首先我們要找到機(jī)器需要的數(shù)據(jù),并做好特征提取。數(shù)據(jù)準(zhǔn)備好后,再通過(guò)選擇或構(gòu)建模型讓機(jī)器學(xué)習(xí)。
  2. 推薦系統(tǒng)給用戶做推薦時(shí),會(huì)經(jīng)過(guò)三個(gè)步驟:召回,初排和精排。

 
本文由 @菠蘿的海王子 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來(lái)自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 贊??

    回復(fù)
  2. 這么好的文章竟然沒(méi)人點(diǎn)贊

    回復(fù)
    1. 謝謝您

      回復(fù)