AI產(chǎn)品經(jīng)理必修課:如何構(gòu)建推薦系統(tǒng)

3 評(píng)論 9971 瀏覽 106 收藏 22 分鐘

本文簡單介紹了什么是推薦系統(tǒng)、如何構(gòu)建推薦系統(tǒng),適合希望成為人工智能產(chǎn)品經(jīng)理的產(chǎn)品新人閱讀。

內(nèi)容框架

一、什么是推薦系統(tǒng)

推薦系統(tǒng)在我們的生活中無處不在:淘寶shopping時(shí)的相關(guān)物品、一刷就讓人停不下來的抖音短視頻、百度地圖的導(dǎo)航路線……

既然推薦系統(tǒng)與我們的生活密不可分,那么什么是推薦系統(tǒng)呢?

1.1 推薦系統(tǒng)的定義

根據(jù)維基百科的定義,推薦系統(tǒng)是一種信息過濾系統(tǒng),用于預(yù)測(cè)用戶對(duì)物品的“評(píng)分”或“偏好”,廣泛應(yīng)用于電影、音樂、新聞、書籍、學(xué)術(shù)論文、搜索查詢等行業(yè)。

從本質(zhì)上來說,推薦是特定場(chǎng)景下人與信息更有效率的連接。

1.2 為什么要有推薦系統(tǒng)

據(jù)IDC《數(shù)字宇宙》的研究報(bào)告表明,2020?年全球新建和復(fù)制的信息量將超過40ZB,是2012年的12倍;中國的數(shù)據(jù)量在2020年超過8ZB,比2012年增長22倍。

單位換算是這樣的:

  • 1ZB = 1024 EB;
  • 1EB = 1024 PB;
  • 1PB = 1024 TB;
  • 1TB = 1024 GB;
  • 1GB = 1024 MB;

信息量的指數(shù)化增長反映了用戶需求的變化,為了更好地滿足用戶的需求,互聯(lián)網(wǎng)從門戶網(wǎng)站時(shí)代發(fā)展到了搜索引擎時(shí)代。

作為門戶網(wǎng)站的代表,雅虎以分類目錄滿足了早期互聯(lián)網(wǎng)用戶的需求。

作為搜索引擎的代表,谷歌以智能化的搜索解決了信息不斷增長與門戶網(wǎng)站內(nèi)容有限之間的矛盾。

1.3 推薦與搜索的異同

1.3.1 相同點(diǎn)

  1. 和搜索引擎一樣,推薦系統(tǒng)是一種幫助用戶快速發(fā)展有用信息的工具;
  2. 二者目的都是實(shí)現(xiàn)信息與用戶意圖之間的匹配;
  3. 推薦系統(tǒng)的架構(gòu)與搜索系統(tǒng)的架構(gòu)具有一定的相似度。

1.3.2 不同點(diǎn)

二、如何構(gòu)建推薦系統(tǒng)

2.1 基礎(chǔ):物品標(biāo)簽與用戶畫像

只有更好地了解待推薦的內(nèi)容和要推薦的人,推薦系統(tǒng)才能更加高效地完成內(nèi)容與人之間的對(duì)接。

2.1.1 物品標(biāo)簽

(1)定義

標(biāo)簽是我們對(duì)多維事物的降維理解,以抽象出事物更具有表意性、更為顯著的特點(diǎn)。

(2)標(biāo)簽與分類

通常來說,分類是樹狀的,是自上而下依次劃分的。在分類體系中,每個(gè)節(jié)點(diǎn)都有嚴(yán)格的父子繼承關(guān)系,在兄弟節(jié)點(diǎn)層都具有可以被完全枚舉的屬性值。

考慮到分類權(quán)威性和信息完備性問題,建議由專家系統(tǒng)進(jìn)行編輯分類。

標(biāo)簽是網(wǎng)狀的,更強(qiáng)調(diào)表達(dá)屬性關(guān)系而非繼承關(guān)系,只有權(quán)重大小之分,不強(qiáng)調(diào)包含和被包含的關(guān)系。這就使得相對(duì)于分類而言,標(biāo)簽的靈活性更強(qiáng),權(quán)威性更弱,每個(gè)用戶都可以參與。

(3)標(biāo)簽與聚類

標(biāo)簽適用文字表意歧義較小、可以枚舉的類型。其它很難準(zhǔn)確地表意或概括地不適用。這時(shí)候就需要有聚類的協(xié)助。

聚類是指基于某一維度地特征將相關(guān)物品組成一個(gè)集合,并告訴你這個(gè)新的物品同哪個(gè)集合相似。

(4)標(biāo)簽生產(chǎn)方式

常見的標(biāo)簽生產(chǎn)方式有兩種:PGC(專家系統(tǒng)產(chǎn)出),例如潘多拉音樂基因工程;UGC(普通用戶產(chǎn)出),例如豆瓣音樂標(biāo)簽系統(tǒng)。

2.1.2 用戶畫像

用戶畫像數(shù)據(jù),也稱為KYC(Know Your Customer),主要分為靜態(tài)數(shù)據(jù)和動(dòng)態(tài)數(shù)據(jù)。

  1. 靜態(tài)數(shù)據(jù)指用戶基本信息,例如性別、學(xué)歷、年齡、婚育情況、常住位置、教育程度。
  2. 動(dòng)態(tài)數(shù)據(jù)指用戶顯性或隱性行為,包括用戶物品偏好、行為路徑、點(diǎn)贊、評(píng)論、分享、關(guān)注等。

2.2 推薦系統(tǒng)架構(gòu)

作為參照,我們先了解一下搜索引擎的架構(gòu)。

2.2.1 搜索引擎架構(gòu)

搜索系統(tǒng)架構(gòu),圖片來源:《內(nèi)容算法》

我們通常將搜索系統(tǒng)劃分為離線和在線兩部分。

(1)離線部分專注于內(nèi)容的搜集和處理。

  • 搜索引擎的爬蟲系統(tǒng)會(huì)從海量網(wǎng)站上抓取原始內(nèi)容,并針對(duì)搜索系統(tǒng)的不同要求建立不同的索引體系。

(2)在線部分負(fù)責(zé)響應(yīng)用戶的搜索請(qǐng)求,完成內(nèi)容的篩選和排序,并最終把結(jié)果返回給用戶。

  • 當(dāng)用戶輸入搜索詞后,系統(tǒng)會(huì)首先對(duì)搜索詞進(jìn)行分詞、變換、擴(kuò)充、糾錯(cuò)等處理過程,以便更好地理解用戶地搜索意圖。
  • 經(jīng)歷完搜索詞處理后,將進(jìn)入召回環(huán)節(jié)。系統(tǒng)通過多種方式從不同地索引數(shù)據(jù)里獲得候選集合。
  • 召回得到地候選集合會(huì)繼續(xù)進(jìn)入排序環(huán)節(jié),通過更精細(xì)地計(jì)算模型對(duì)每一篇候選內(nèi)容進(jìn)行分值計(jì)算,從而獲得最終結(jié)果。
  • 在展示給用戶之前,搜索結(jié)果還需要經(jīng)過規(guī)則干預(yù)這一環(huán)節(jié)。規(guī)則通常服務(wù)于特定地產(chǎn)品目的,對(duì)計(jì)算產(chǎn)出地內(nèi)容進(jìn)行最終地調(diào)整。
  • 在結(jié)果展示給用戶之后,用戶的點(diǎn)擊反饋會(huì)影響到排序環(huán)節(jié)地模型。

2.2.2 推薦系統(tǒng)架構(gòu)

(1)推薦系統(tǒng)和其他系統(tǒng)之間的關(guān)系

推薦系統(tǒng)和其他系統(tǒng)之間的關(guān)系,圖片來源:《推薦系統(tǒng)實(shí)踐》

推薦服務(wù)通常由三部分組成:前臺(tái)展示子系統(tǒng)、日志子系統(tǒng)和算法子系統(tǒng)。

  • 推薦服務(wù)首先需要采集產(chǎn)品中記錄的用戶行為日志到離線存儲(chǔ);
  • 然后在離線環(huán)境下利用推薦算法進(jìn)行用戶和物品的匹配計(jì)算,找出每個(gè)用戶可能感興趣的物品集合后,將這些預(yù)先計(jì)算好的結(jié)果推送到在線存儲(chǔ)上;
  • 最終產(chǎn)品在有用戶訪問時(shí)通過在線API向推薦服務(wù)發(fā)起請(qǐng)求,獲得該用戶可能感興趣的物品,完成推薦業(yè)務(wù)。

(2)推薦系統(tǒng)架構(gòu)
推薦系統(tǒng)需要由多個(gè)推薦引擎組成,每個(gè)推薦引擎負(fù)責(zé)一類特性和一種任務(wù),推薦系統(tǒng)的任務(wù)是將推薦引擎的結(jié)果按照一定權(quán)重或者優(yōu)先級(jí)合并,排序然后返回。如下圖:

推薦系統(tǒng)架構(gòu)圖,圖片來源:《推薦系統(tǒng)實(shí)踐》

這樣做的優(yōu)點(diǎn)是方便增加或刪除引擎,控制不同引擎對(duì)推薦結(jié)果的影響,可以實(shí)現(xiàn)推薦引擎級(jí)別的用戶反饋,對(duì)不同用戶給出不同引擎組合權(quán)重。

(3)推薦引擎架構(gòu)

推薦引擎架構(gòu)圖,圖片來源:《推薦系統(tǒng)實(shí)踐》

推薦引擎架構(gòu)主要包括三部分:

  • 圖中A部分負(fù)責(zé)從數(shù)據(jù)庫或緩存中拿到用戶行為數(shù)據(jù),通過分析不同行為,生成當(dāng)前用戶的特征向量,如果使用非行為特征,就不需要行為提取和分析模塊了,該模塊的輸出就是用戶特征向量。用戶特性向量包括用戶行為的種類、用戶行為產(chǎn)生的時(shí)間、用戶行為的次數(shù)、物品的熱門程度。
  • 圖中B部分負(fù)責(zé)將用戶的特征向量通過特征-物品相關(guān)矩陣轉(zhuǎn)化為初始推薦物品列表。
  • 圖中C部分負(fù)責(zé)對(duì)初始的推薦列表進(jìn)行過濾、排名等處理,從而生成該引擎的最終推薦結(jié)果。過濾模塊會(huì)過濾掉以下物品:用戶已經(jīng)產(chǎn)生過行為的物品、候選物品以外的物品(不符合用戶篩選條件的物品)、某些質(zhì)量很差的物品。

2.3 推薦算法

推薦系統(tǒng)產(chǎn)生推薦列表的方式通常有兩種:基于內(nèi)容屬性的相似性推薦、協(xié)同過濾。

2.3.1 物以類聚:基于內(nèi)容屬性的相似性推薦

基于內(nèi)容推薦利用一些列有關(guān)物品的離散特征,推薦出具有類似性質(zhì)的相似物品。

(1)優(yōu)點(diǎn):只依賴于物品本身地特征而不依賴用戶的行為,讓新的物品、冷僻的物品都能得到展示的機(jī)會(huì)。

(2)存在的問題:推薦質(zhì)量優(yōu)劣完全依賴于特征構(gòu)建的完備性,但特征構(gòu)建本身就是一項(xiàng)系統(tǒng)的工程,存在一定成本。沒有考慮用戶對(duì)物品的態(tài)度,用戶的品味和調(diào)性很難得到詮釋和表達(dá)。

(3)典型方式:TF-IDF,其基本思想:出現(xiàn)頻率越高的標(biāo)簽區(qū)分度越低,反之亦然。

實(shí)例:Pandora?使用歌曲或者藝人的屬性(由音樂流派項(xiàng)目提供的400個(gè)屬性的子集)從而生成一個(gè)電臺(tái),其中的樂曲都有相似的屬性。

用戶的反饋用于精化電臺(tái)中的內(nèi)容。在用戶“不喜歡”某一歌曲時(shí),弱化某一些屬性;在用戶喜歡某一歌曲時(shí),強(qiáng)化另一些屬性。

Pandora?啟動(dòng)時(shí)則僅需要很少信息,然而這種方法的局限性很大,只能得出與原始種子相似的推薦。

2.3.2 人以群分:協(xié)同過濾(collaborative filtering)

協(xié)同過濾方法根據(jù)用戶歷史行為(例如其購買的、選擇的、評(píng)價(jià)過的物品等)結(jié)合其他用戶的相似決策建立模型。作為目前應(yīng)用最為廣泛的推薦機(jī)制,其基于用戶行為的特點(diǎn)使我們不需要對(duì)物品或信息進(jìn)行完整的標(biāo)簽化分析和建模,可用于預(yù)測(cè)用戶對(duì)哪些物品可能感興趣(或用戶對(duì)物品的感興趣程度)。

(1)基礎(chǔ):把用戶的消費(fèi)行為作為特征,以此進(jìn)行用戶相似性或物品相似性的計(jì)算,進(jìn)行信息匹配。

(2)子類1:基于物品(item-based)的協(xié)同

基礎(chǔ)思路:先確定你喜歡什么物品,再找到與之相似的物品推薦給你。

(3)子類2:基于用戶(user-based)的協(xié)同

基礎(chǔ)思路分為兩步:第一步,找到那些與你在某一方面口味相似的人群;第二步,將這一人群喜歡的新東西推薦給你。

(4)子類3:基于模型(model-based)的協(xié)同

基礎(chǔ)思路:用用戶的喜好信息來訓(xùn)練算法模型,實(shí)時(shí)預(yù)測(cè)用戶可能的點(diǎn)擊率。

實(shí)例:Last.fm?建立通過觀察用戶日常收聽的樂隊(duì)或歌手,并與其它用戶的行為進(jìn)行比對(duì),建立一個(gè)“電臺(tái)”,以此推薦歌曲。

Last.fm?會(huì)播放不在用戶曲庫中,但其他相似用戶經(jīng)常會(huì)播放的其它音樂。為了提供精準(zhǔn)推薦,Last.fm?需要大量用戶信息。這是一個(gè)冷啟動(dòng)問題,在協(xié)同過濾系統(tǒng)中非常常見。

2.3.3 交互界面>數(shù)據(jù)>算法

雖然推薦算法是推薦系統(tǒng)的核心要素,但是交互界面對(duì)于推薦系統(tǒng)來說也至關(guān)重要。

例如“推薦理由”,從工程角度出發(fā),推薦理由提升了推薦系統(tǒng)的透明性,讓用戶明白為什么會(huì)推薦該種類型的內(nèi)容。站在業(yè)務(wù)的角度,會(huì)更多地從促成轉(zhuǎn)化入手,即什么樣的推薦理由可以增加說服力,引發(fā)用戶認(rèn)同。

因此,對(duì)于推薦系統(tǒng)而言,有著“交互界面>數(shù)據(jù)>算法”的說法。

2.3.4 內(nèi)容分發(fā)常見的3種方式

作為內(nèi)容分發(fā)常見的3種方式,編輯、算法與社交分發(fā)各有千秋,互相補(bǔ)充。

(1)編輯分發(fā)指中心個(gè)人主導(dǎo)的分發(fā)機(jī)制,常見于紙媒、門戶網(wǎng)站等。

(2)算法分發(fā)指機(jī)器主導(dǎo)的分發(fā)機(jī)制,常見于今日頭條等內(nèi)容APP,形成了真正的千人千面。

ACM世界冠軍,第四范式創(chuàng)始人戴文淵在2009年加入百度時(shí),百度基于1w條專家規(guī)則進(jìn)行內(nèi)容分發(fā),而機(jī)器分析數(shù)據(jù)之后得到了更加精細(xì)化的1000億條規(guī)則。相對(duì)應(yīng)的,百度的收入提升了8倍。

(3)社交分發(fā)指離散人工主導(dǎo)的分發(fā)機(jī)制,常見于Facebook等社交網(wǎng)站,用戶給出負(fù)面評(píng)價(jià)過多的內(nèi)容,F(xiàn)acebook審核人員會(huì)優(yōu)先處理。

三、如何評(píng)價(jià)推薦系統(tǒng)

正如管理學(xué)大師彼得德魯克所言:”if you can’t measure it, you can‘t improve it.”

3.1 推薦系統(tǒng)測(cè)評(píng)

常見的推薦系統(tǒng)評(píng)估指標(biāo)有用戶滿意度、預(yù)測(cè)準(zhǔn)確度、覆蓋率、多樣性、新穎性、驚喜度、信任度、實(shí)時(shí)性、健壯性、商業(yè)目標(biāo)。

3.1.1 用戶滿意度

用戶滿意度是評(píng)測(cè)推薦系統(tǒng)的重要指標(biāo),無法離線計(jì)算,只能通過用戶調(diào)查或者在線實(shí)驗(yàn)獲得。在線系統(tǒng)中,我們可以用用戶付費(fèi)率、點(diǎn)擊率、停留時(shí)間、轉(zhuǎn)化率等指標(biāo)度量用戶的滿意度。

3.1.2 預(yù)測(cè)準(zhǔn)確度

預(yù)測(cè)準(zhǔn)確度,度量的是推薦系統(tǒng)預(yù)測(cè)用戶行為的能力。是推薦系統(tǒng)最重要的離線評(píng)測(cè)指標(biāo)。包括了評(píng)分預(yù)測(cè)、TopN推薦兩種。

對(duì)應(yīng)到內(nèi)容推薦系統(tǒng)中,表現(xiàn)為對(duì)用戶點(diǎn)擊地預(yù)判和對(duì)消費(fèi)情況地預(yù)判。由于準(zhǔn)確度評(píng)估是可以復(fù)用既有數(shù)據(jù)進(jìn)行離線計(jì)算的,故通常用于各種算法的迭代。

網(wǎng)站提供推薦服務(wù)時(shí),一般是給用戶一個(gè)個(gè)性化的推薦列表,這種推薦叫做TopN推薦。

TopN推薦的預(yù)測(cè)準(zhǔn)確率,一般通過2個(gè)指標(biāo)度量:精度(precision)和召回(recall)

推薦系統(tǒng)中的精度(precision)和召回(recall)本質(zhì)上和二元分類中的概念是一樣的。

推薦系統(tǒng)往往只推薦有限個(gè)(如k個(gè))物品給某個(gè)用戶。真正相匹配的物品我們稱之為相關(guān)物品(也就是二元分類中的陽性)。

k召回(recall?at?k)=所推薦的k個(gè)物品中相關(guān)物品的個(gè)數(shù)/所有相關(guān)物品的個(gè)數(shù)

k精度(precision?at?k)=所推薦的k個(gè)物品中相關(guān)物品的個(gè)數(shù)/k

比如說,根據(jù)你的喜好,我們推薦了10個(gè)商品,其中真正相關(guān)的是5個(gè)商品。在所有商品當(dāng)中,相關(guān)的商品一共有20個(gè),那么

k召回 = 5 / 20

k精度 = 5 / 10

3.1.3 覆蓋率

也稱為多樣性,能夠給用戶提供視野范圍之外的內(nèi)容,豐富度越高代表個(gè)體體驗(yàn)的多樣性越好;

從內(nèi)容角度可以評(píng)估有推薦展示的內(nèi)容占整體內(nèi)容量的比例,或整個(gè)內(nèi)容分發(fā)體系的基尼系數(shù)。

3.1.4 多樣性

為了滿足用戶廣泛的興趣,推薦列表需要能夠覆蓋用戶不同興趣的領(lǐng)域,即需要具有多樣性。

3.1.5 新穎性

新穎性也是影響用戶體驗(yàn)的重要指標(biāo)之一。它指的是向用戶推薦非熱門非流行物品的能力。

3.1.6 驚喜度

推薦結(jié)果和用戶的歷史興趣不相似,但卻讓用戶滿意,這樣就是驚喜度很高。

3.1.7 信任度

如果用戶信任推薦系統(tǒng),就會(huì)增加用戶和推薦系統(tǒng)的交互。

提高信任度的方式有兩種:增加系統(tǒng)透明度:提供推薦解釋,讓用戶了解推薦系統(tǒng)的運(yùn)行機(jī)制;利用社交網(wǎng)絡(luò),通過好友信息給用戶做推薦。度量信任度的方式,只能通過問卷調(diào)查。

3.1.8 實(shí)時(shí)性

實(shí)時(shí)性包括兩方面:實(shí)時(shí)更新推薦列表滿足用戶新的行為變化;將新加入系統(tǒng)的物品推薦給用戶;

3.1.9 健壯性

任何能帶來利益的算法系統(tǒng)都會(huì)被攻擊,最典型的案例就是搜索引擎的作弊與反作弊斗爭(zhēng)。

健壯性(robust,魯棒性)衡量了推薦系統(tǒng)抗擊作弊的能力。

3.1.10 商業(yè)目標(biāo)

設(shè)計(jì)推薦系統(tǒng)時(shí),需要考慮最終的商業(yè)目標(biāo)。不同網(wǎng)站具有不同的商業(yè)目標(biāo),它與網(wǎng)站的盈利模式息息相關(guān)。

3.2 推薦的常見問題

前美國總統(tǒng)奧巴馬的法律顧問凱斯·桑斯在2006年出版了《信息烏托邦——眾人如何生產(chǎn)知識(shí)》,書中提出了“信息繭房”的概念。信息繭房指在信息傳播中,由于公眾自身的信息需求并非全方位的,公眾只注意自己選擇的東西和使自己愉悅的領(lǐng)域,久而久之,會(huì)將自己桎梏在像蠶繭一般的“繭房”中。

推薦系統(tǒng)存在著“信息繭房”等諸多問題:

  1. 推薦重復(fù),指大量內(nèi)容高度重復(fù),缺乏新意。
  2. 推薦密集,指同一類內(nèi)容的占比過高,導(dǎo)致局部多樣性喪失。
  3. 易反感內(nèi)容,包括詳情頁和列表頁的不好體驗(yàn)。
  4. 時(shí)空限定內(nèi)容,指不同類內(nèi)容有不同的時(shí)效性。
  5. 稀疏性問題,實(shí)際場(chǎng)景中,用戶和物品的交互信息往往是非常稀疏的。

如電影推薦中,電影往往成千上萬部,但是用戶打過分的電影往往只有幾十部。使用如此少的觀測(cè)數(shù)據(jù)來預(yù)測(cè)大量的未知信息,會(huì)極大增加過擬合的風(fēng)險(xiǎn)。

3.3 如何冷啟動(dòng)

3.3.1 用戶冷啟動(dòng)

指一個(gè)新用戶,沒有任何歷史行為數(shù)據(jù),怎么做推薦?

解決辦法:一種選擇是利用用戶注冊(cè)信息等基礎(chǔ)用戶數(shù)據(jù),另一種選擇是新用戶第一次訪問推薦系統(tǒng)時(shí),不立即給用戶展示推薦結(jié)果,而是給用戶提供一些物品讓用戶反饋他們對(duì)物品的興趣,然后根據(jù)反饋提供個(gè)性化推薦。

3.3.2 物品冷啟動(dòng)

指一個(gè)新上線的物品,沒有用戶對(duì)它產(chǎn)生過行為,怎么推薦給感興趣的用戶?

解決辦法:利用物品本身的屬性,UserCF算法對(duì)于物品冷啟動(dòng)不是非常敏感。

3.3.3 系統(tǒng)冷啟動(dòng)

指一個(gè)新開發(fā)的網(wǎng)站,沒有用戶數(shù)據(jù),怎么做個(gè)性化推薦?

解決辦法:充分發(fā)揮專家系統(tǒng)的作用,并與機(jī)器學(xué)習(xí)適當(dāng)結(jié)合。

#參考文獻(xiàn)#

《內(nèi)容算法:把內(nèi)容變成價(jià)值的效率系統(tǒng)》,閆澤華

《推薦系統(tǒng)實(shí)踐》,項(xiàng)亮

《推薦系統(tǒng)》,F(xiàn)rancesco Ricci,Lior Rokach,Bracha Shapira,Paul B.Kantor

http://sofasofa.io/forum_main_post.php?postid=1001389

 

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

題圖來自Unsplash,基于CC0協(xié)議。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 想問下,推薦算法中的物以類聚和基于物品協(xié)同過濾兩個(gè)內(nèi)容有區(qū)別嗎?都是推薦相似的物品啊。。。

    來自廣東 回復(fù)
  2. 很有幫助

    回復(fù)
  3. 好文,訂閱了

    來自廣東 回復(fù)