打造工業級推薦系統(二):無處不在的推薦系統

導讀:個性化推薦系統,簡單來說就是根據每個人的偏好推薦他喜歡的物品。互聯網發展到現在,推薦系統已經無處不在,在各行各業都得到普遍都應用。亞馬遜號稱 40% 的收入是來自個性化推薦系統的,淘寶的個性化推薦系統也帶來非常大的收益,新聞媒體的個性化推薦系統典型的是今日頭條,直播平臺給用戶推薦喜歡的主播,金融網站給用戶推薦需要的理財產品,社交網絡給用戶推薦大 V 或者其他朋友……越來越多的公司將推薦系統作爲產品的標配。

大家接觸推薦系統的概率會越來越大。作爲程序員,瞭解推薦系統也越來越必要,甚至可以主動選擇“推薦系統算法工程師”的相關職位。那大家一定會關心推薦算法工程師需要哪些知識儲備,以及作爲一個推薦算法工程師,未來的發展道路怎樣?

本文是作者計劃的一系列文章中的第二篇。第一篇爲《推薦算法工程師的成長之道》。後面的文章將涉及到推薦系統的冷啓動、商業價值、工程實現、評估等方方面面。這系列文章是作者多年推薦系統學習、實踐經驗的總結,希望能夠幫助到即將入行推薦系統開發的讀者或者推薦系統開發人員,讓大家少走彎路。

正文

推薦系統產生的背景

隨着移動互聯網的快速發展,我們進入了信息爆炸時代。當前通過互聯網提供服務的平臺越來越多,相應的提供的服務種類(購物,視頻,新聞,音樂,婚戀,社交等)層出不窮,服務“標的物”的種類也越來越多樣(亞馬遜上有上百萬的書),這麼多的“標的物”怎麼讓需要它的人找到它, 滿足用戶的各種需要, 就是擺在企業面前的難題。

同時,隨着社會的發展,受教育程度的提升,每個人都有表現自我個性的慾望。隨着互聯網的發展,出現了非常多的可以表達自我個性的產品,如微信朋友圈,微博,抖音,快手等,每個人的個性喜好特長有了極大展示的空間。另外從進化論的角度來說,每個人都是一個差異化的個體,是生而不同的,生而具有不同的性格特徵,個人的生活成長環境又有極大差異,導致個人的偏好口味千差萬別。“長尾理論”也很好的解釋了多樣化物品中的非暢銷品可以滿足人們多樣化的需求,這些需求加起來不一定比熱門物品產生的銷售額小。

隨着社會的進步,物質生活條件的改善,大家不必再爲生存下來而擔憂,所以大家有越來越多的需求是非生存需求,比如看書,看電影,購物等,而這些非生存的需求往往在很多時候是不確定的, 是無意識的,自己不知道自己需要什麼。生存需求對人而言顯得非常強烈而明顯,比如你快餓死了,你的第一需要肯定是食物。不同於生存需求,面對非生存需求,人們實際上更願意接受被動推薦的好的物品, 比如給你推薦一部電影,如果符合你的口味,你可能會很喜歡。

總結上面提到的三點,當今時代可選擇的商品和服務這麼多,而不同人的興趣偏好又是截然不同,並且在特定場景下,個人對自己的需求不是很明確。在這三個背景驅動下,推薦系統應運而生。個性化推薦系統是解決上述三個矛盾的最有效的方法和工具之一。

爲了更好的爲用戶提供服務, 在爲用戶提供服務的同時賺取更多的利潤,越來越多的公司通過採用個性化推薦技術,輔助用戶更快地發現自己喜歡的東西 。公司根據用戶在產品上的行爲記錄,結合用戶自身和“標的物”的信息, 利用推薦技術(機器學習的一個分支)來爲用戶推薦可能感興趣的物品。

推薦系統解決什麼問題

推薦系統是在互聯網快速發展(特別是移動互聯網)之後的產物,隨着用戶規模的爆炸增長以及供應商提供的物品的種類越來越多(淘寶上有幾千萬商品),用戶身邊充斥着大量信息,這時候推薦系統就發揮了用武之地。推薦系統本質上是在用戶需求不明確的情況下, 從海量的信息中爲用戶尋找其感興趣的信息的技術手段。推薦系統結合用戶的信息(地域,年齡,性別等),物品信息(價格,產地等),以及用戶過去對物品的行爲(是否購買,是否點擊,是否播放等),利用機器學習技術構建用戶興趣模型,爲用戶提供精準的個性化推薦。

推薦系統很好的滿足了“標的物”提供方,平臺方,用戶三方的需求。拿淘寶購物舉例來說, “標的物”提供方是淘寶上成千上萬的店主,平臺方是淘寶,用戶就是在淘寶上購物的自然人或企業。通過推薦系統可以更好地將商品曝光給給需要購買的用戶, 提升社會資源的配置效率。

從本質上講,推薦系統提升了信息分發和信息獲取的效率。

推薦系統的應用領域

推薦系統廣泛用於各類互聯網公司,基於上面的介紹,只要存在大量的“供用戶消費的商品”的互聯網產品,推薦系統就有用武之地。具體來說推薦系統的應用領域主要有如下幾類:

電商網站:購物,購書等,如淘寶,京東,亞馬遜等

視頻:Netflix,優酷,抖音,快手,電視貓等

音樂:網易雲音樂,酷狗音樂等

資訊類:今日頭條,天天快報等

生活服務類:美團,攜程,脈脈等

交友類:陌陌,珍愛網等

下圖展示了幾類常見的互聯網推薦產品,大家應該都不陌生。

image

推薦系統更多的應用場景正在不斷被挖掘和創造。有了這些基本背景,下面來具體說下什麼是推薦系統。

推薦系統的定義

上面兩節提到了推薦系統產生的背景和推薦系統需要解決的問題,那麼什麼是推薦系統呢?本節我嘗試給推薦系統下一個定義, 讓大家可以更好的理解什麼是推薦系統。

推薦系統是一項工程技術解決方案,通過利用機器學習等技術,在用戶使用產品進行瀏覽交互的過程中,系統主動爲用戶展示可能會喜歡的物品,從而促進物品的“消費”,節省用戶時間,提升用戶體驗, 做到資源的優化配置。

上面定義有幾點需要細化說明一下, 方便大家更好的理解推薦系統的本質。

  1. 推薦系統是一項工程技術解決方案,要將推薦系統落地到業務上需要大量的工程開發,涉及到日誌打點,日誌收集,ETL,分佈式計算,特徵工程,推薦算法建模,數據存儲,提供接口服務,UI展示與交互,推薦效果評估等各個方面,推薦系統是一項龐大複雜的體系工程;

  2. 推薦系統是機器學習的一個分支應用,推薦系統大量使用機器學習技術,利用各種算法構建推薦模型, 提升推薦的精準度,驚喜度,覆蓋率等,甚至是實時反饋用戶的興趣變化(如今日頭條APP下拉展示新的新聞,實時反饋用戶的興趣變化);

  3. 推薦系統是一項交互式產品功能,產品爲推薦系統提供載體,用戶通過使用產品觸達及觸發推薦系統,推薦系統爲用戶提供個性化的推薦, 從而提升用戶體驗;

  4. 推薦系統是一種爲用戶提供感興趣信息的便捷渠道,通過爲用戶提供信息創造商業價值;

推薦系統的本質是通過技術手段將“標的物”與人關聯起來,方便人獲取對自己有價值的“標的物”。通過上面的介紹,相信大家對推薦系統有了一個初步的瞭解。

常用的推薦算法

上面一節提到了推薦系統大量使用機器學習技術, 本節來簡單介紹一下推薦系統常用的策略或者算法。

  1. 基於內容的推薦

上面講到推薦系統是通過技術手段將“標的物”與人關聯起來,“標的物”包含很多自己的屬性,用戶通過與“標的物”的交互會產生行爲日誌,這些行爲日誌可以作爲衡量用戶對“標的物”偏好的標籤,通過這些偏好標籤爲用戶做推薦就是基於內容的推薦算法。拿視頻推薦來說,視頻有標題、國別、年代、演職員、標籤等信息,用戶以前看過的視頻,就代表用戶對這些視頻有興趣,比如用戶偏好恐怖,科幻類的電影,我們就可以根據這些興趣特徵爲用戶推薦恐怖科幻類的電影。

  1. 協同過濾

用戶在產品上的交互行爲爲用戶留下了標記,我們可以利用“物以類聚,人以羣分”的樸素思想來爲用戶提供個性化推薦。

具體來說,“人以羣分”就是找到與用戶興趣相同的用戶(有過類似的行爲),將這些興趣相同的用戶瀏覽過物品推薦給用戶,這就是基於用戶的協同過濾算法。“物以類聚”就是如果有很多用戶都對某兩個物品有相似的偏好, 說明這兩個物品是“相似”的,我們可以通過推薦用戶喜歡過的物品相似的物品這種方式爲用戶提供個性化推薦, 這就是基於物品的協同過濾推薦算法。

下面以圖示來簡單說明這兩類協同過濾算法,讓大家有更好的理解。

image

  1. 基於模型的推薦

基於用戶行爲記錄,用戶相關信息(年齡,性別,地域,消費習慣等),物品相關信息,構建算法模型,預測用戶對物品的偏好,常用的算法有logistic迴歸,矩陣分解等。隨着現在深度學習技術的發展,目前有很多深度學習相關的算法落地到了推薦系統上,產生了很好的效果。

  1. 基於社交關係的推薦

我們在日常生活中經常爲別人或者要求別人給我們推薦書籍, 餐廳, 電影等,這種推薦方式往往效果較好,大家會更容易接受。最近微信7.0版本“看一看”模塊中的“好看”就是通過將你的微信好友看過的文章推薦給你,張小龍在今年微信8週年微信公開課上說到,“好看”比“看一看”模塊中的“精選”效果好很多,而“精選”就是通過算法來實現的推薦。

這些推薦算法中,基於內容的推薦和協同過濾推薦是最常用的推薦算法,實現相對簡單,效果也很不錯,在工業界得到了大規模的應用。

構建推薦系統的阻礙與挑戰

推薦系統是解決大規模用戶場景下,大量信息的精準分發的問題,推薦系統解決的問題看起來很簡單樸素, 那麼是不是可以非常容易的構建一個效果很好的推薦系統呢?答案是否定的, 要想構建一個高效的有價值的推薦系統是一件很困難的事情。這裏簡單說一下構建推薦系統可能遇到的困難、障礙,以及構建好的推薦系統的挑戰。

首先不是任何一個產品都需要推薦的,你提供的“標的物”必須足夠多,用戶無法通過瀏覽完所有“標的物”來做選擇,這時纔有推薦的必要,比如蘋果官網,賣的東西是很少的幾個品類,每個品類也不多,加起來也沒有多少,這時用戶可以直接瀏覽所有產品找自己喜歡的也很方便。

另外,前面說過推薦系統是一個比較大的系統工程,有效的落地需要相當多的資源投入,所以需要領導的大力支持,並且領導要能夠意識到推薦算法的價值。爲什麼今日頭條可以從傳統的新聞客戶端脫穎而出,正是張一鳴認識到了推薦的價值,整個公司從創立之初就以算法爲核心,圍繞推薦系統構建好的產品體驗,不到7年最終達到估值近700億美元的獨角獸,令騰訊和百度都感受到了極大的威脅。

最後從技術工程實現的角度說說構建推薦系統面臨的挑戰,具體而言構建好的推薦系統面臨如下的挑戰:

  1. 推薦系統推薦精準度的問題:這需要通過構建好的推薦算法來實現,同時要有足夠多的用戶行爲數據來學習算法模型, 數據預處理的質量也對結果有較大影響, 現在基於深度學習的推薦系統可以達到很好的效果;

  2. 冷啓動問題: 新用戶、新物品沒有相關行爲信息, 這時系統怎麼給用戶推薦,怎麼將新物品推薦出去, 在推薦系統落地過程中都需要做結合業務場景的特殊處理才能達到好的用戶體驗;

  3. 如果你的產品有大量用戶訪問,怎麼構建一套高效的推薦系統,滿足高併發訪問,爲用戶提供穩定,快速,高效的推薦服務也是一個挑戰;

  4. 數據缺失的問題:現實場景中一定存在用戶或者物品的信息不完善,或者部分信息有誤,這些也是在構建推薦算法模型過程中必須考慮和解決的問題;

  5. 怎麼處理非結構化的信息:用戶和物品相關的信息有可能是非結構化的信息,比如圖片,視頻,音頻,文本等,怎麼高效的利用這些信息,爲推薦模型提供更多信息輸入, 隨着深度學習在推薦系統中大規模運用,這類問題可以得到較好的解決;

  6. 一些噪音及惡意攻擊也會產生大量垃圾數據,對更好的做推薦產生很大的干擾, 怎麼很好的保證訓練數據的質量,這是ETL和特徵工程需要解決的重要問題;

  7. 大規模計算與存儲:大量的用戶和大量的物品,對數據處理和計算造成很大的壓力,需要採用分佈式技術(如Hadoop,Spark等)來做數據存儲,處理,計算等, 所以要很好的落地推薦系統需要企業構建一套高效的大數據分析處理平臺;

  8. 爲了給用戶提供實時的個性化推薦(如今日頭條的新聞推薦等), 需要實時收集處理用戶的反饋,做到更及時精準的推薦,爲用戶提供強感知的服務。對大規模用戶做到實時響應,對算法,計算,處理有相當大的挑戰。

  9. 用戶交互問題:推薦系統通過用戶與產品的交互來觸達用戶,所以好的UI及交互體驗對推薦系統發揮真正的價值起到非常關鍵的作用,有時好的UI和交互體驗甚至比好的算法更管用;

  10. 怎麼評估推薦算法的價值:推薦系統怎麼服務於業務,怎麼衡量推薦系統的價值產出,怎麼爲推薦系統制定業務指標,通過指標提升推薦系統效果的同時促進業務發展?這些問題都是擺在推薦系統開發人員, 甚至是公司管理者面前的重要問題, 只有很好的度量出推薦系統的價值,才能更好的優化推薦系統,發揮推薦系統的價值。

上面說了這麼多構建好的推薦系統需要克服的困難和障礙, 但是推薦系統是非常有價值的,值得我們花這麼多精力和時間去構建一套好的推薦系統。推薦系統的極大價值也驅使越來越多的公司將推薦系統作爲產品的標配。

推薦系統的價值

當前推薦系統技術是互聯網公司的標配技術, 因爲它很好的解決“標的物”提供方,平臺方,用戶三方的需求。本節詳細說一下推薦系統的價值,它的價值主要體現在四個方面。

從用戶角度說, 推薦系統可以讓用戶在紛繁蕪雜的海量信息中快速找到自己感興趣的信息,節省了用戶的時間,特別是當用戶在使用某個互聯網產品時,不經意中發現平臺給自己推薦了特別喜歡的東西時,那種驚喜油然而生,從而極大提升了用戶的使用體驗。

從平臺的角度看, 推薦了一本書給用戶,用戶發現這本書正好是自己需要的,立即就買下來了, 推薦一首付費音樂給用戶, 用戶特別喜歡,毫不猶豫就付費了。精準的推薦,也能增加用戶對平臺的粘性,讓用戶喜歡上你的平臺。平臺通過售賣物品的分成及廣告投放可以獲取豐厚的利潤。

從物品提供商的角度看,如果平臺能夠將提供商的物品推薦給喜歡的用戶, 提升物品被售賣出去的概率,這樣商品可以賣得更多更好, 提升了供應商的銷量,從而爲供應商賺取極大的收益。

另外,平臺精準的將物品(實物物品,如冰箱,電視機等)推薦出去並被用戶購買,從側面也降低了物品的週轉時間, 減少了庫存積壓,對於社會資源的節省和有效利用也是大有益處的。

硅谷互聯網教父凱文·凱利在“必然”這本暢銷書上提到了“過濾”這一大趨勢,推薦系統就是最好的提供過濾能力的技術之一,相信隨着互聯網的深入發展,推薦系統將會發揮越來越重要的價值!

作者介紹:gongyouliu,有近 10 年大數據與 ai 相關項目經驗,有 9 年推薦系統研究及實踐經驗,目前負責電視貓大數據與人工智能團隊。喜歡讀書,暴走,寫作。業餘維護“大數據與人工智能”公衆號,ID:ai-big-data,持續輸出大數據、推薦系統、機器學習等相關文章。個人微信:liuq4360

原文鏈接https://mp.weixin.qq.com/s/DofYtvZCe-7RTicLqYtL4A

相關文章
打造工業級推薦系統(一):推薦算法工程師的成長之道

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章