推薦系統簡介

這個時代背景下,「信息爆炸」「長尾問題」的其中一個主要解決方案是「個性化推薦」「搜索技術」,前期我們先探討個性化推薦技術。那具體什麼是個性化推薦,怎麼去實現這一過程呢?這一章讓我們一起探尋個性化推薦的整個流程與技術概覽,後續章節我們會逐一展開。這一章讀者朋友需要做到的是讀完以後,對個性化推薦技術有一個「全局宏觀的認識」,對於「細節不用過多地苛求」

? 1.1 一個例子

在日常生活中,你在打開淘寶購物可能會遇到以下若干情形: ????

1).和好友同時打開app後發現,為什麼兩個人首頁各個頻道「入口的圖片」以及「文字不同」? ?

2).為什麼同樣搜索可愛小背心,你和好友竟然出現不一樣的商品列表? ????

3).為什麼我剛剛瀏覽了褲子以後,首頁各個頻道的展現變了? ????

4).為什麼在對比好友的以上界面,我更喜歡我自己的界面?

【注】: 這裡頻道的概念是指「淘搶購」/「有好貨」/「必買清單」等電商頻道概念,不理解的讀者可以打開APP 以上情形背後的答案就是個性化推薦技術,當然也包含了相關的搜索技術。那淘寶是如何做到的呢,其實這背後就是涉及了數據的收集,挖掘計算,以及個性化呈現。

所以基於上面的問題我們又會問: ????

1).淘寶是「如何知道」我喜歡什麼並且可能「想要買」什麼的? ????

2).「為什麼」它能做到「每個人都不一樣」? ????

3).「為什麼」它要「這麼做」? 我們一個個來回答

? 1.2 淘寶是如何知道的

回答這個問題,其實背後是一套機器學習的方法在支撐,所以我們先要弄清楚「什麼是機器學習」

▏1.2.1 機器學習概述

討論機器學習前,我們先看看什麼是人的學習,這裡主題是人。學習,是指通過「閱讀、聽講、思考、研究、實踐」等途徑獲得知識或技能的過程。學習分為「狹義」「廣義」兩種,狹義:通過閱讀、聽講、研究、觀察、理解、探索、實驗、實踐等手段獲得知識或技能的過程,是一種使個體可以得到持續變化(知識和技能,方法與過程,情感與價值的改善和升華)的行為方式。廣義:是人在生活過程中,通過獲得經驗而產生的行為或行為潛能的相對持久的行為方式。學習後的主體「在未來」的生活中可以「將過去」學習到的「知識,技能」「應用」於生產生活,「來開展工作」。 ?

那從字面上來理解,機器學習就是將主體換為機器,並且它通過某種途徑來獲取知識或者技能的過程,並應用於未來的生活工作。人獲取知識的「外化載體」是書本,音頻,視頻等,「傳輸通道」是人的感官,處理中心是大腦,而對應於機器外化載體也同樣可以有以上各類信息源,並且使用各類「外放設備」收集信息,處理中心是「CPU與存儲」共同維護。 ????

人的學習有兩個基本方法,一個是「演繹法」,一個是「歸納法」,這兩種方法分別對應人工智慧中的兩種系統:「專家系統」「機器學習系統」。所謂演繹法,是從已知的規則和事實出發,推導新的規則、新的事實,這對應於專家系統。專家系統也是早期的人工智慧系統,它也稱為規則系統,找一組某個領域的專家,如醫學領域的專家,他們會將自己的知識或經驗總結成某一條條規則、事實,例如某個人體溫超過37度、流鼻涕、流眼淚,那麼他就是感冒,這是一條規則。當這些專家將自己的知識、經驗輸入到系統中,這個系統便開始運行,每遇到一些新情況,會將之變為一條條事實。當將事實輸入到專家系統時,專家會根據規則或事實進行推導、梳理,並得到最終結論,這便是專家系統。而歸納法是「從現有樣本數據中不斷地觀察、歸納、總結出規律和事實,對應機器學習系統或統計學習系統,側重於統計學習,從大量的樣本中統計、挖掘、發現潛在的規律和事實」

舉個栗子可能更容易讓人理解這一過程,並且對於已經對機器學習有一定了解的同學,我們順便講講什麼是特徵工程裡面的交叉特徵與線性/非線性模型

1).數據–>單特徵(low level 特徵)+線性模型–>預測

假設有一對情侶,你是主人公(女友),2個月前,朋友給你介紹了一個男友,他是工作狂。為了互相了解,你們每周末都會一起約會吃飯;已經約會有8周了,每周吃飯男友都會比約定時間晚到10分鐘-30分鐘,所以你每次約會也會比約定時間晚10-30分鐘,並且你總結了一個規律:如果約會前打電話他說在公司,那麼基本都是晚到30分鐘左右,如果他說在家裡,那麼基本會晚到10分鐘。

2).數據–>交叉特徵(high level 特徵)+線性模型+單特徵(low level 特徵)+非線性模型–>預測

以上情形沒有維持多久,男友的遲到時間變多了,有時在公司他會遲到15分鐘,但是有時在家裡卻會遲到20分鐘,所以有時你到了以後等了很久男友才來,然後經過詢問遲到15分鐘和遲到20分鐘的具體情況,你又得出了一個結論:如果男友在家並且不開車過來,那一般就要20分鐘了,如果男友在公司但是他開車過來那就只要15分鐘。

3).數據–>交叉特徵(high level 特徵)+單特徵(low level 特徵)+非線性模型—>預測 ????

不過又過了沒多久,男友的遲到時間又變了,這次基本上遲到時間在10-45分鐘之間,並且非常不規律,然後你總結了經驗覺得是不是我要去分析分析本質的原因,然後看看晚到多久合適,於是得到了以下可能對男友遲到時間有用的因素(特徵):出發地在哪,是否開車,是否下雨,出發的時間等等。於是最終你通過分析發現沒有找到非常強的規律:下雨(不下雨),男友HH:MM從家(公司)出發,開車(不開車)的情況下晚到具體的時間,但是你分析到下雨天男友在公司晚於17點出發的情況下遲到時間一般在30-45分鐘,不下雨天男友在家早於17點出發的情況下遲到時間一般在10-20分鐘,以及等等情況。不過你還是想再精確一點,於是你請教了你的好朋友–一個演算法工程師,經過他的一番數據挖掘,他告訴你了一個公式,只要按著他的公式計算你晚到的時間即可。

你很想知道他是怎麼做到的,於是你開開始請教他。他告訴你其實上面的種種因素都可以作為一個變數,每個變數有一個權重;比如天氣的權重是8,當下雨則遲到時間加8分鐘,不下雨則不加;再比如開不開車的權重為10,不開車遲到時間加10分鐘,開車的時候不加等等。

然後進一步的問題就是這個權重怎麼得來的呢?那麼學到以上決策機制流程的就需要以下幾個要素: ????

1).「數據」:男友歷次遲到的時間,以及遲到前的狀態(天氣,位置,出發時間等等) ????

2).「特徵工程」:比如上面的地點和是否開車的二維聯合就是特徵工程(交叉特徵) ????

3).「演算法」:使用決策樹(非線性)還是線性回歸(線性)等等其它演算法 ????

4).「學習到模型」:主要指上面各個特徵的權重組成的公式

【注】:這裡涉及到一個問題就是權重為多少才是對的權重呢?其實這裡就涉及了一個模型評估的問題。舉個例子,如果利用你學習到的權重模型A與模型B比較,A模型在後面的十次約會中累積誤差為10分鐘,而B模型為15分鐘,則A模型的權重比B好。當然具體演算法模型的迭代過程,我們在未來會講到。

▏延伸: ?

上面的例子講訴的就是在機器學習整個框架下,有深挖特徵和深挖演算法兩種;做特徵就是針對具體問題構造各種可能對問題結果有影響的因素(包括單特徵與交叉特徵);深挖演算法其實是嘗試不同的演算法,比如線性與非線性(淺層學習與深度學習演算法)。目前業界比較代表的做法是LR+深層特徵,DNN+淺層特徵。其實上面的三個約會的例子的漸進性其實在這裡也正好對應了機器學習中的反饋學習及強化學習,根據男友遲到的時間,女生在動態的調整自己晚到的時間。

? 1.3 機器學習過程中的幾個注意點

▏1.3.1.從感知到認知 ????

「感知」的一個重要體現就是數據的獲取與收集(可類比人對信息的獲取,如眼睛),「認知」強調理解

▏1.3.2.從學習到決策 ????

「學習」: 對已有數據應用相關演算法進行規則/模型的計算歸納;「決策」:遇到新的問題時,使用學到的知識進行學習。 大數據可以將海量數據轉換成信息、知識和智能,支撐不同層面生產、決策與經營分析,並可能發展創新的大數據業務,建立新的增長點。

▏1.3.3演算法和數據哪個更重要 ????

「數據秒殺一切演算法」,但「真正推動社會的進步的是演算法,而不是數據」。數據就好像是工業革命時期的煤炭,非常重要,蒸汽機就像是演算法,最後大家記住的是瓦特發明了蒸汽機,而不是英國的煤礦。

? 1.4 機器學習常見的概念

▏1.4.1.監督學習

「目標驅動」的機器學習,較短時間內通過數據訓練創造實現目標的最優解。監督學習的數據比較特殊,舉個栗子,比如你在中學學習英語,在老師的幫助下練習英語發音,數據是你的發音和這個發音的對錯/準確程度(對錯/準確程度是老師告訴你的),然後演算法就是你去嘗試去模擬數據(發音)的規律,不斷根據英語單詞的拼寫規律來學習發音,最終你學習到了基於拼寫及句子的上下文調整發音。

監督學習創造了新的連接,監督學習為達成確定結果的「不確定過程」本身,為商業決策帶來了前所未有的全新視角。它是 「不為人知」但已逐步普及的高級數據驅動。

▏1.4.2.無監督學習??

「無監督學習」的數據中「沒有人告訴你對錯信息」,舉個栗子,今天老師給你了一個碗,裡面有黑米有紅米,讓你對這個碗里的米分個類,你可能根據顏色分類,也可能根據大小、重要分類,都沒有問題,因為老師沒說按什麼分,對不對這個問題。

▏1.4.3.降維

降維是從更基本的維度來看問題,舉個栗子,<nike 空軍一號>這雙鞋,對其降維可以是nike這個運動品牌,也可以是運動鞋這個類目。

▏1.4.4.泛化

「泛化」就是你學到的規則/模型的「普適程度」

舉個栗子吧,今天老師讓你看了20個西瓜,並告訴你熟不熟,然後給你一個西瓜,問你只看外觀,這個西瓜熟不熟,你可能根據以下來判斷: ?看錶皮,你發現20個瓜裡面,瓜皮表面光滑、花紋清晰、紋路明顯、底面發黃的瓜都是熟的,但是不滿足任何一個條件的都是不熟的。 所以你學到的模型如下:如果瓜皮表面光滑、花紋清晰、紋路明顯、底面發黃的,就說明是熟瓜;其它的是不熟的瓜。 但是其實有時候,紋路不明顯,但其他條件滿足的時候也會有一部分是熟的瓜。所以你學到的模型具有一定泛化性能,但不具有很高的泛化性能。如下圖,目標是藍線,你從data裡面學到了左右兩條紅線,左邊的有一些誤差,右邊的無誤差,但是對於真實的目標而言,左邊更好,因為日常問題中,你沒法獲取所有的數據,所有會出現泛化這個問題。

▏1.4.5 機器學習最難的是什麼

機器學習最難的一部 ,就是把現實生產生活中的問題, 提煉成一個機器學習問題 。這基於對問題本身的深刻洞察。 如何從一個全新的領域, 去提取機器學習可以有助解決的最重要的問題。從「「主觀」決策」->「「客觀」決策」->「「自動」決策」的發展。

? 1.5 淘寶的機器學習

由上面機器學習相關的介紹可以類推淘寶app為什麼能夠知道你喜歡什麼, 首先是多面的「消費者可被追蹤和認識」「消費者的多面性」,在數據化的數字時代,有被追蹤和描述的可能,另外是基於一個假設條件的:「一個人歷史的購物行為及偏好,會在未來的行為中也有跡可循」。所以利用機器學習我們通過用戶歷史交互數據(特徵包括:誰在什麼時間買了什麼東西,這個東西的名字叫什麼,什麼顏色,價格多少等等)。 比較有用的可以對未來推薦有指導意義的特徵包括: ???

1).「購買力」:一個平時只買100元左右牛仔褲的用戶,未來短期內買10000元和10元的褲子的概率遠遠低於買100左右或者200左右的概率,所以推薦的時候會更優先給你看到100-200左右的褲子 ???

2).「性別」:平時在淘寶上只買男性或男女通用商品的用戶,未來短期內買女性商品概率遠遠低於男性和男女通用商品的概率 ????

3).「年齡」:一個一直購買20-25歲左右服飾的用戶,未來短期內購買其它年齡段的概率遠遠小於20-25歲年齡段的概率 ????

4).「其它」:用戶畫像&天氣&地理位置

【注】以上特徵均會在最後預測用戶可能喜歡什麼中有用,但是注意一個人也可能很違背之前的購物行為,比如一個只夠買20-25歲衣服的女性,突然買了一個嬰兒的衣服,可能從這個節點是她小孩誕生或者是給姐姐的小孩買禮物等等,這一「瞬時購物興趣」的變化一般由「實時推薦」cover。

▏1.5.1 為什麼能夠做到每個人不一樣:

參看上面機器學習介紹的相關公式你會發現,如果在機器學習階段考慮一些跟人相關的因素(特徵),那這個因素的不同值就會影響結果輸出。比如我們現在根據用戶對他購物的商品的評分數據,來預測一個他從未買過的商品的評分,背後影響用戶評分的因素可能包括以下幾個:價格,售前/後,物流,商家主營類目是否和用戶購買的類目相同,其它用戶的評分(如果其他用戶評分高則一定程度上代表了這個商品的好壞)等等。比如物流和價格這類因素(特徵),如果和用戶這個特徵做交叉後,其實會有非常迥異的權重值,而這一切是每個用戶的購買力和用戶體驗耐受力等不同帶來的。所以如果你「考慮了用戶的特徵則這就會影響每個人的推薦結果不一樣」

▏1.5.2 為什麼淘寶要這麼做:

至於為什麼淘寶會去花這麼多資源做個性化,可以概括為以下三點:「獲取新的認知」,「創造新的智慧」,「產生有價值的決策」;從歷史數據中「探索用戶的消費需求」,舊數據中「挖掘新認知」,從新認知出髮結合機器學習演算法創造新的智慧,最後幫助用戶「發現他感興趣的商品」,將最適合的商品「呈現」給他。

1).長尾挖掘 ????

上世紀90年代—21世紀初,關於推薦系統的幾個大事件:1995年亞馬遜成立網上書店;1998年Google成立,相當於革新了搜索引擎,從以前目錄檢索式的網站到用戶可以隨意搜索;2004年,《長尾理論》這本書問世,書中描述了一個長尾概念,簡單來說這個概念就是,「如果把世界上的文化產品或者商品做受眾統計,可能頭部是非常龐大的,但尾部也會非常長,雖然尾部受眾人群少,但是這個尾部的所有受眾人群加起來也是一個非常龐大的群體,甚至可能會超過頭部人群」

「打破80%的用戶只買20%的商品的規律,更好地降低長尾商品的比例」。因為在電商產品中,在非個性化的商品展示過程中,往往爆款商品擁有更多的流量,這樣其實不能很好的照顧到高質量長尾用戶和高質量長尾商品。舉個例子,在淘寶的某個頻道,有很多褲子,A褲子100元近5天的銷量可能1w件,B褲子1000元近5天的銷量是100件,在不考慮其它因素的情況下,非個性化模型(或運營排序)一般會偏向於A褲子在B褲子前面,但是如果這個用戶在平台歷史購物行為都是集中在高價格商品(名牌包包等),則如果你個性化的考慮每個人的這個偏好,那麼有可能B褲子就在前面了,而且用戶可能真的更喜歡B褲子。

2).流量利用 ????

在APP或網站有限的商品曝光機會下,為每個展現的商品爭取最大的點擊/成交等。因為用戶在平台上地時間是有限的,如果能在海量的商品中,為用戶找到他感興趣地商品,那麼平台將在這有限地流量資源下收穫更大的價值。舉個例子,有可能用戶在某個頻道下,看了A,然後看了B,再看了C,最終買了D,並且ABCD這四個商品都是有一定關係地商品,那麼平台能否在一開始在我看完A以後就幫我找到C,並在A下面推薦D商品。「在最大限度挖掘用戶購物需求的情況下,最大限度縮短用戶購物的時間」

3).用戶體驗 ????

為每個用戶創造「極致的用戶體驗」。極致的用戶體驗是用戶信任依賴平台,在每次購物過程中,希望平台能夠幫助其快速,準確地找到其想要地商品。這一過程中包括了基於用戶歷史興趣的再延伸,也有基於用戶角色的行為探索。比如用戶每隔25-30天會購買尿不濕,未來平台是否能夠在23-33之間快速捕捉用戶購買尿不濕的需求;再比如用戶在平台上第一次瀏覽電腦,我基於用戶的其它購物行為(比如用戶之前在平台上經常買20-25歲的衣服,並且大部分郵寄的地址為大學宿舍),是否平台可以在接下來的瀏覽中為用戶呈現適合學生族高性價的電腦。 在信息的極大豐富的背景下,用戶需求從單一/從眾的需求,發展到多樣/個性/品位的需求,需要一個「有效的信息過濾工具」來提升用戶更加複雜的需求。

? 1.6.推薦技術概述

推薦在電商購買決策過程中的作用 ????

電子商務網站向客戶提供商品信息和建議,幫助用戶決定應該購買什麼產品,模擬銷售人員幫助客戶完成購買過程,經典配圖

上圖隱含的2個重要的推薦系統的核心功能:

「路徑優化」(弱化主動篩選功能):從看了A再看B再看C最後買了C 到 看了A, 推薦系統推薦C,用戶下單。

「興趣發現」(貼心小秘書):從你上淘寶不知道買什麼的時候,告訴你你可能喜歡什麼 常用的推薦產品

▏1.6.1類比男友

推薦系統是怎麼做到的類比人的行為 其實推薦系統做的事可以類比於生活中的貼心男友或者女友,那我們就當他是男友吧,來看看他是怎麼做的 ????

「上知天文,下通地理」: 下雨了,男友知道你沒帶傘,把傘送到送到了公司 ????

「察言觀色」:女朋友一直在看寶寶,尤其是LV的,生日那天買了一個 ????

「人情練達」:看到和你玩的好的幾個閨蜜都買了某款口紅,沒過幾天就買了這款口紅 ????

「念念不忘」:你經常說的偶像、崇拜的人他會記住,時不時買幾個他們的新作品 ????

「體貼入微」 :他知道你大姨媽來的時候比較喜歡吃甜品,所以到了那幾天他都會帶你去吃

「緊跟時尚」:新品發布,只要是你有興趣的那個方向的產品,都會買給你

▏16.2 推薦系統怎麼來做到上面這些方面呢

1) 「上下文」

推薦系統會在給你推薦商品時將考慮你所在的城市、天氣、季節等因素;梅雨天傘比平時好賣,夏天空調需求比秋天高等,北方人比南方人更喜歡保濕的化妝品 ????

2) 「用戶畫像」

男-女/經期時間/甜品這些都可以做成標籤,作為推薦的依據,上次你買的姨媽巾/紙尿褲/奶粉多少天會用完,19歲男生一般不會(低概率)買女性比基尼 ????

3) 「協同過濾」?

「基於用戶」:在茫茫購物的人海中,總有那麼一些人是跟你非常像的(類似上面的閨蜜);推薦系統根據你們的行為(瀏覽、點擊、購買)計算跟你最像的那些用戶,當他們看了/買了什麼的時候,他就可能會推薦這些商品。

「基於商品」: 在茫茫商品中,總有一些商品他們的屬性、描述很像,或者他們經常被一起購買;推薦系統將會計算物品與物品之間的相似或關聯程度,當你看了某個商品的時候,他將會把最相似/最相關的那幾個商品推薦給你。

「基於模型」(這個比較抽象): 利用數學建模的手段,評估你的購買意圖,將模型計算出來的得分最高的推薦給你

「基於內容」: 在茫茫商品中,總有一些商品他們的屬性、描述很像;當你看了某些商品後,推薦系統會將內容上最相似的那些上商品推薦給你

「其它」:基於統計/知識等 目前主流推薦系統都是以上各個策略的混合

? 1.7常見的推薦功能

這裡以電商為例進行介紹,用戶從產生購買意向,到經歷購買決策,直至最後下單的整個過程,在任何一個購物鏈路上的節點,推薦產品都能在一定程度上幫助用戶決策。

1)「按場景」

電商app推薦場景現在已經非常豐富了,比如首頁猜你喜歡、商品詳情頁、購物車推薦、文章推薦等

2)「按形態」

個數形態來分,有「feeds流」「topN」推薦等feeds流偏向於「無限下拉」型(如首頁猜你喜歡),TopN是「有限推薦」個數(商詳的相似推薦);展現物料來分有圖片、文章(內容)、視頻、商品推薦。

3)「按感知度」

從用戶感知度來說,主要分為「個性化」、「相似」、「關聯」、「排行」等,個性化即「千人千面」,每個用戶可以在推薦場景感知到與其他人不同的物料展現;相似和關聯推薦偏向於以某個物料為依據推薦此「物料相似、關聯」的商品,其中關聯商品是指用戶交互過程中可能會同時交互的商品對,並且這些物料對不屬於同類目,在電商中主要體現為褲子和衣服、鞋子的「關聯」對;排行主要根據某個或某幾個「指標綜合排序」的物料列表,比如「熱銷」等。

▎對推薦、搜索、廣告和用戶感興趣的小夥伴可以閱讀下面的文章匯總

姚凱飛:推薦&搜索&廣告&用戶畫像&深度學習整理?

zhuanlan.zhihu.com
圖標

下一篇文章,敬請期待:

【一.概述-2】什麼樣的產品推薦效果明顯


推薦閱讀:
相关文章