淘寶推薦系統(tǒng):從千人一面到千人千面邏輯和算法(上篇)

61 評論 161058 瀏覽 694 收藏 18 分鐘

應(yīng)廣大朋友的要求,本人對本篇文章進(jìn)行一次更新,將推薦系統(tǒng)的底層邏輯和部分算法模型進(jìn)行整合歸納,由于內(nèi)容篇幅較長,分為上下兩篇,請分別瀏覽!

互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,給我們帶來了十足的便利性,回顧整個互聯(lián)網(wǎng)的發(fā)展歷程,從PC時代轉(zhuǎn)移到移動互聯(lián)網(wǎng)時代,從移動互聯(lián)網(wǎng)時代轉(zhuǎn)向IOT時代,從IOT時代又即將邁入AI時代,這些飛速發(fā)展的背后,其實是數(shù)據(jù)的采集,傳輸和處理的大變革。

而以我們當(dāng)下為例,移動互聯(lián)網(wǎng)技術(shù)和智能手機(jī)的發(fā)展,讓采集用戶數(shù)據(jù)的能力變得空前強(qiáng)大,無時無刻,無所不在,而一旦擁有這些數(shù)據(jù)之后全行業(yè)的個性化推薦技術(shù)變得更加容易實現(xiàn),不論是今日頭條的,還是淘寶美團(tuán)的,無疑是這個時代的最大受益者。

不同于個人PC機(jī),手機(jī)可以唯一錨定一個具體的自然人,而手機(jī)這類私人的專屬物品是與其他人很難共用的,那么你手機(jī)的型號,在手機(jī)上的瀏覽、交易等行為數(shù)據(jù),就具有了極高的分析價值。

從電商平臺的角度來講,個性化推薦技術(shù)的本質(zhì)是將當(dāng)前最有可能成交的產(chǎn)品優(yōu)先推薦給消費(fèi)者,使流量得到更加充分的利用,最大限度的提高轉(zhuǎn)化效率。而推薦技術(shù)也隨著用戶個人數(shù)據(jù)的不斷豐富,在逐漸升級,從最基礎(chǔ)的千人一面,慢慢演化到千人千面,下面我就沿著這個演化史給大家具體介紹一下相關(guān)的推薦邏輯和模型算法。

NO1.千人一面的邏輯基礎(chǔ)和推薦算法

  • 核心邏輯:物以類聚,也即推薦和當(dāng)前商品相似、相關(guān)或其他維度的產(chǎn)品,每個人進(jìn)來看到的商品推薦其實是完全一致的,俗稱千人一面;
  • 使用環(huán)境:當(dāng)前基本沒有什么用戶數(shù)據(jù),但是商品數(shù)據(jù)豐富到足夠支持起所需的推薦邏輯。

1. 根據(jù)商品的分類或其他基礎(chǔ)屬性進(jìn)行推薦(相似性推薦)

對于某一個商品來說,這是一種替代性的推薦方式,也即用戶不想買它的時候,還可以有其他的選擇。就比如說用戶正在瀏覽一個斯伯丁的籃球,看完描述之后發(fā)現(xiàn)不是自己理想的款式,規(guī)格材質(zhì)不太對,但是在這個單品下方,出現(xiàn)了一個同類型的耐磨材質(zhì)的籃球,OK!那么這個用戶可能就會把這個推薦的籃球帶回家。

這個例子中僅僅是依據(jù)商品的分類進(jìn)行推薦,當(dāng)然我們還可以根據(jù)實際情況加入商品的更多基礎(chǔ)屬性進(jìn)行加權(quán)取值,算最后得分來進(jìn)行推薦。

主要應(yīng)用【加權(quán)求和法】

也就是選取商品的某些屬性,并且針對各種屬性的對于用戶選擇的重要性進(jìn)行一個主觀的評估,然后賦上權(quán)值,進(jìn)行累加計算,得出每種商品和其他商品的相似性,案例如下:

水杯類目中選擇三個屬性【材質(zhì)】【樣式】【顏色】,其中【材質(zhì)】重要等級為3,【樣式】重要等級為2,【顏色】重要等級為1

  • 商品A(塑料,大肚杯,透明色)
  • 商品B(陶瓷,直筒杯,透明色)
  • 商品C(玻璃,直筒杯,白色)

比對的兩個商品每種屬性的相似度關(guān)系值:

  • 材質(zhì)是否相同(不同為0,相同為1)
  • 樣式是否相同(不同為0,相同為1)
  • 顏色是否相同(不同為0,相同為1)

在根據(jù)加權(quán)累加的公式,可以得到如下表格

那么之后我們就可以在A商品之后,推薦這個相似度分?jǐn)?shù)比較高的其他同類目下的商品了,當(dāng)然自身就不需要重復(fù)推薦了,以及長期推薦點(diǎn)擊量不高的產(chǎn)品,后面可以進(jìn)行動態(tài)優(yōu)化。

2. 根據(jù)商品的被動銷售級屬性進(jìn)行推薦(相關(guān)性推薦)

根據(jù)商品最終在訂單中出現(xiàn)的概率來判斷商品間的相關(guān)性,目前還可以依賴于其他幾個維度來參考一同做判斷(被同時瀏覽的幾率,被同時加入購物車的幾率,被同時購買的幾率),以下采取訂單中是否通知購買來講解算法模型,簡單解釋一下就是想買A的人還可能想買C。

主要應(yīng)用【置信度】等指標(biāo)算法

商品的關(guān)聯(lián)性可以通過”置信度“,”支持度“,”提升度“三個指標(biāo)來衡量。

難度較大的是從一個銷售記錄集中計算所有商品兩兩/三三之間的關(guān)聯(lián)性,以下范例以兩個商品之間的關(guān)聯(lián)性來講解。

  1. 計算A→B支持度,購買A還購買B這個組合的訂單占所有訂單的百分比。
  2. 計算A→B置信度,購買A還購買B這個組合的訂單占所有購買A的訂單的百分比。
  3. 計算A→B提升度,購買A還購買B的概率同不購買A只購買B商品的概率之商。

那么根據(jù)相關(guān)度算法,先從所有訂單中找出包含A商品的訂單個數(shù)N1,然后再查詢A的所有訂單中出現(xiàn)B的個數(shù)N2,則置信度X=N2/N1。

總訂單為3000單,其中包含A的訂單有1200單,B的訂單800單,C的訂單1500單,D的訂單600單,E的訂單 1000單

A的1200單中(包含B的有300單,包含C的有600單,包含D的有400單,包含E的有200單)

則C商品對于A的置信度最高,那么就可以優(yōu)先推薦C商品,買了A商品的人最有可能還去買C,其實通常情況下,我們不可能僅僅單獨(dú)看置信度這一個指標(biāo),三個指標(biāo)都需要綜合起來看,提升度大于1,具有強(qiáng)置信度(30%以上)和較高支持度(10%)的規(guī)則可以認(rèn)為是比較合理靠譜的規(guī)則,計算其它2個指標(biāo)的值就不在此贅述了。

NO2.千人十面的邏輯基礎(chǔ)和推薦算法

  • 核心邏輯:人以群分,將有相似的屬性,相似行為的用戶分為一類人,然后這一類中的人某一個人喜歡A產(chǎn)品,那么其他人也有極大的可能喜歡A產(chǎn)品
  • 使用環(huán)境:當(dāng)前積累了一定的用戶數(shù)據(jù)之后,可以開始試試用這種模式

    1、根據(jù)用戶基礎(chǔ)信息進(jìn)行推薦

用戶注冊和后期行為過程中系統(tǒng)可以收集分析出一些固定數(shù)據(jù),這類數(shù)據(jù)是長期穩(wěn)定的,可以刻畫成一些人群特征,我們俗稱標(biāo)簽,而整個推薦系統(tǒng)中最牛的位置,也在于標(biāo)簽的大范圍深度應(yīng)用,其中基礎(chǔ)標(biāo)簽可能就是年齡標(biāo)簽、性別、收入范圍、興趣愛好、星座、生活區(qū)域等,那么標(biāo)簽完全相同的這一類人就極有可能有相同的喜好(一般還會把行為加入一起來判斷相似性)

比如一個用戶的標(biāo)簽組成為:20—35之間、女性、低收入人群、愛寵人士、雙魚座……,最近剛好購買了一袋X品牌的狗糧,那么則另外一個標(biāo)簽與她相符的人,也可能在某個時間段產(chǎn)生這個需求。

2、根據(jù)用戶行為數(shù)據(jù)進(jìn)行推薦

比如在電商的場景下,常見的用戶行為就會有搜索、瀏覽、咨詢、加購、支付、收藏、評價、分享等等,那么通過記錄這些用戶行為數(shù)據(jù),我們就可以對應(yīng)進(jìn)行推薦了。

①基于搜索關(guān)鍵詞進(jìn)行推薦

對于一個新注冊的買家來購物,這時候大部分?jǐn)?shù)據(jù)都全無,咋辦?因為這個買家除了具備一些基本的人群屬性外,購物行為和購物偏好方面是空的。好,這時候我們可以根據(jù)他搜索的關(guān)鍵詞來進(jìn)行跟蹤推薦,依據(jù)搜索同樣關(guān)鍵詞的其他用戶最后達(dá)成的商品成交概率來進(jìn)行合理推薦。

舉個例子:如連衣裙這個產(chǎn)品,在風(fēng)格上有韓版的、歐美的、田園風(fēng)格的等等。那么搜索引擎通過分析以前搜索“連衣裙”這個關(guān)鍵詞的其他消費(fèi)者,發(fā)現(xiàn)70%以上的消費(fèi)者最終都購買了“韓版”的,那么韓版就是一個高概率成交風(fēng)格。所以,展現(xiàn)這一類型的商品在這個新用戶面前的。

②基于瀏覽記錄進(jìn)行推薦

對于淘寶這種大型系統(tǒng)來說,在整個網(wǎng)站中和app中的所有瀏覽記錄的時間脈絡(luò),它是全部有記錄,完全能夠做到判斷你在何時看到什么商品,同時瀏覽的行為背后即代表這關(guān)注,表明用戶對此商品感興趣,那么我們完全可以根據(jù)這一類商品的相似度進(jìn)行關(guān)聯(lián)推薦,用戶所有瀏覽行為都是商品推薦的重要依據(jù)。

舉個例子:每次你搜索并且看完一些寶貝后,關(guān)閉淘寶,過一段時間再打開淘寶,你就可以看到在“猜你喜歡”模塊中出現(xiàn)之前瀏覽過的同類商品。

基于購買記錄的推薦

其實這是很好理解的,因為你已經(jīng)購買了,所以這證明了你對產(chǎn)品的認(rèn)可,甚至是對這個店鋪的認(rèn)可,尤其是在一些比如說衣服、視頻、鞋子、寵物用品等復(fù)購率較高的商品中。如果你在這個店鋪里面買過,那么你在搜索相關(guān)的關(guān)鍵詞的時候,這個店鋪符合要求的商品就會被優(yōu)先展現(xiàn)(尤其是新上架的商品),方式是:購買過的店鋪。

舉個例子:淘寶中,你收藏的店鋪、瀏覽過的店鋪等等,都會以一種強(qiáng)個性化的方式得到優(yōu)先推薦,而且還會給你添上標(biāo)簽“購買過的店鋪”。在絕大多數(shù)類目里面,這種最高級別的推薦都是非常明顯的。

喜好度評分、向量余弦公式

基于用戶的協(xié)同過濾(user-based CF),通過用戶對不同類型的商品的喜好度進(jìn)行評分,然后根據(jù)每類商品的喜好度評分構(gòu)建一個多維向量,使用余弦公式有來評測用戶之間喜好度的相似性,基于此將其他相似用戶非常喜歡而該用戶還沒有了解的產(chǎn)品進(jìn)行推薦。這部分推薦本質(zhì)上是給用戶推薦其他相似用戶喜歡的內(nèi)容,一句話概括:和你類似的人也喜歡這些商品。

關(guān)于喜好度的計算,先將用戶行為的權(quán)值定義清楚,假設(shè)定義如下:

  • 搜索權(quán)值為1;
  • 點(diǎn)擊流量權(quán)值為1;
  • 加購權(quán)值為2;
  • 咨詢權(quán)值為1;
  • 完成支付權(quán)值為3;
  • 好評權(quán)值為2;
  • 分享權(quán)值為3;

那么在系統(tǒng)中加入埋點(diǎn),產(chǎn)生用戶行為數(shù)據(jù)之后,我們將可以獲得用戶關(guān)于某類商品的喜好度具體分值,加權(quán)平均后分值區(qū)間為【0,13】

在假設(shè)商城類僅有5類商品:

  • 對食品類目的商品喜好度(0~13分)
  • 對家居類目的商品喜好度(0~13分)
  • 對玩具類目的商品喜好度(0~13分)
  • 對圖書類目的商品喜好度(0~13分)
  • 對游戲類目的商品喜好度(0~13分)

一個用戶A:對食品的喜好度為3,對家居的喜好度為1,對玩具的喜好度為4,對圖書的喜好度為5,對游戲的喜好度為0,用戶A可以用向量表示為

一個用戶B:對食品的喜好度為3,對家居的喜好度為4,對玩具的喜好度為5,對圖書的喜好度為0,對游戲的喜好度為2,用戶A可以用向量表示為

接下來就要使用的【余弦函數(shù)】了,這邊要和大家解釋一下向量的概念(可能很多人高中數(shù)學(xué)已經(jīng)忘記了),向量是空間中帶箭頭的線段,2個向量之間的夾角越小,表明它們的相似度越相近,多個屬性的向量表示為

對于用戶A的對于所有類目商品的喜好度向量和用戶B的向量而言,他們的在多維空間的夾角可以用向量余弦公式計算:

余弦值的值域在【-1,1】之間,0表示完全垂直90°,-1表示夾角180°,1表示夾角為0°,系數(shù)越靠近1,向量夾角越小,兩件商品的相關(guān)性越高,。就剛才用戶A和用戶B的例子而言,我們可以知道他們的相似度為:

相似度系數(shù)推薦說明:

  • 非常相似:0.8—1.0;
  • 比較相似:0.6—0.8;
  • 一般:0.4—0.6;
  • 不太相似: ?0—0.4;
  • 完全不相似:-1.0—0;

那么根據(jù)這個余弦值的結(jié)果,我們會發(fā)現(xiàn)用戶A和B在商品的喜好度上是比較相似的,所以在給A推薦商品時,我們就可以依照B喜歡的而A卻從未瀏覽過的商品進(jìn)行推薦,或者是其他B喜歡的商品等。

總結(jié)

目前大部分推薦都是多重算法結(jié)合的,以上介紹為了邏輯清晰,所以都是單一說明,沒有進(jìn)行組合,而現(xiàn)實中可能會依據(jù)相同標(biāo)簽相似喜好度的人推薦同類型的產(chǎn)品等,接下來的【下篇】,我會重點(diǎn)為大家介紹關(guān)于區(qū)別于給用戶標(biāo)簽化的推薦方法,更高階的是給商品、服務(wù)、店鋪等全方位的標(biāo)簽化,同時還會介紹到標(biāo)簽的標(biāo)簽,比如標(biāo)簽的場景失效,標(biāo)簽的熱度衰減等!

#專欄作家#

囧囧有神(個人微信公眾號:jspvision),人人都是產(chǎn)品經(jīng)理【2018年度最受歡迎】專欄作家,起點(diǎn)學(xué)院導(dǎo)師,成均館大學(xué)企業(yè)講師,混沌大學(xué)創(chuàng)新翰林。10年互聯(lián)網(wǎng)經(jīng)驗,產(chǎn)品運(yùn)營專家,Team Leader。

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

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 請問下篇在哪

    來自江蘇 回復(fù)
  2. 快4年了,下篇呢???

    來自上海 回復(fù)
  3. 快4年了,下篇呢???

    來自北京 回復(fù)
  4. 三年過去了,說好的下篇呢

    來自云南 回復(fù)
  5. 這都三年過去了 你說的下篇呢?

    來自上海 回復(fù)
  6. 對食品類目的商品喜好度(0~13分),這個一定要是13嗎,即所有權(quán)重只和。常規(guī)情況下采用5分制或者10分制,這兩種有什么區(qū)別,謝謝!

    來自廣東 回復(fù)
  7. 樓主大大,這塊總結(jié)起來應(yīng)該是基于物和基于人的協(xié)同,能不能再介紹下比如在畫像上的一些深耕的應(yīng)用呢?

    來自北京 回復(fù)
  8. 期待下篇

    回復(fù)
  9. 您好,這里有一個問題,相關(guān)度,如何算出來的。感覺重要程度 3 2 1, 是否相同是 1 0 的話,那么相關(guān)性 A對A 應(yīng)該是6啊。。

    來自上海 回復(fù)
    1. 抱歉 我的鍋,已經(jīng)修改和調(diào)整了過來~

      回復(fù)
    2. 出下篇唄

      來自廣東 回復(fù)
  10. 請問用戶對某類商品的喜好度評分是怎么打出來的?

    來自北京 回復(fù)
  11. 就沒有了下篇嗎。。

    來自上海 回復(fù)