個性化-第一章《續》

????通過前一章的內容,我們對推薦系統有了大概的了解,這一章不是理論上的第二章,而是上一章的續,這一章我們補充上一章未展開的什麼是好的推薦系統為什麼會有從召回到重排序的推薦流程

1.什麼是好的推薦系統

1.1定義

??什麼是好的推薦系統?佛陀沒有定義過,人類也沒有定義過。但一個系統的好壞往往需要全鏈路的評定貫穿於用戶的整個交互過程。之所以說「好的推薦系統」更難定義,是因為雖然演算法是核心,但是個性化推薦往往不止由演算法構成,這背後需要各種技術支撐。它是演算法和各種技術架構以及交互設計等等混合在一起的產物。所以,我們很難有一個推薦系統好不好的絕對值,只能在有參照物的情況下,選取某些常見指標然後有一個相對的評價,沒有統一標準,但人人心中都會有一桿秤。 ??

宏觀上來看,好的推薦系統就是滿足用戶的需求,幫助其進行路徑優化與興趣發現微觀上來講,好的推薦系統一定是再為產品服務不同的產品階段,我們需要確立不同的推薦系統目標及評價體系。比如產品上線初期,該產品線上的用戶為初次體驗用戶,我們可能更多的讓用戶體驗到性價比(以電商推薦產品為例),比如新客專享等福利。再比如產品逐步發展,我們可能會去著重考量瀏覽深度,點擊率,轉化率,客單價,gmv等指標,或是多個指標的整體值。

推薦系統評價的體系會圍繞以下幾點進行決策:新上線功能/演算法對產品價值多大,成本多高,收益如何?展開的話就是可以問自己以下幾個問題:目前的推薦系統與產品和核心是否一致是否是在強化現階段的目標(瀏覽深度,點擊率,gmv等) ,與目前產品的發展階段是否相符,這裡主要考量產品自身的用戶量,人群大小,用戶使用頻度等,最終就是結合以上兩個問題,所使用的推薦演算法策略,是否能夠強化產品核心心智

1.2推薦的5W

??進一步展開,從細節來講好的推薦系統往往會考量5個w—when,where,who,what,why

  • When: 主要是在圍繞時間維度做文章,主要是圍繞季節/早晚/熱點時期/節日/周期等因素為平台用戶提供推薦服務,一般圍繞時間維度的推薦會涉及用戶的購物習慣,易耗品的購物周期等,舉個例子來說,比如常見用戶在奶粉/紙尿褲等商品上會呈現一定的購物周期規律,通過數據分析發現,用戶的購物周期呈正態分布,如下圖。再比如周末線上支付線下消費的產品銷量會比工作日高等。當然泛推薦領域的信息推送等一般也會考慮時間因子進行信息推送(簡訊-email)。
  • Where: 這個維度主要考慮地理位置因素,包涵了粗粒度的省份城市因素和細粒度的經緯度,粗細粒度一般在不同的產品場景下被使用,細粒度的地理位置信息一般在用在時效性/區域性要求較高的產品上,比如外賣(O2O);粗粒度則更多的是的輕位置信息的電商產品重,比如衣服,百貨等(B2C),雖然輕位置信息,但是位置信息也會被使用在這類產品重,比如南方與北方姑娘喜歡的衣服風格會不一樣,天氣因素也會隨地理位置的不同不同,所以同一時間南北方的消費需求會存在差異。
  • Who:人物維度,則更多地去考慮用戶各類信息特徵,比如用戶是男是女,是老還是少,是新用戶還是老用戶,平時喜歡買什麼品牌,喜歡什麼品類的東西,風格如何等等,這些都是在描述這個人,現在這一類技術一般作為用戶畫像存在,通過用戶行為和人口統計學數據構建的畫像體系。
  • What: 這個維度則是需要推薦的主體是什麼,主體類型可能有以下服飾,百貨,文章,音樂,美食,視頻等等,不同物料有著不同的自帶屬性,並且產品附加信息也不同。比如文章,視頻等對時效性的要求比電商類產品更高,特別是新聞類內容基本時效性要求在天級;再比如剛剛說的對位置信息的利用,美食相對於衣服這類商品對位置的要求就更高。所以在推薦的過程中我們會根據推薦的主體不同做更多的推薦策略演算法和系統的適配,最終去推動
  • Why: 這個維度更多地會去考量推薦地可解釋性問題,外化到產品維度則是推薦理由,比如是通過好友推薦的,比如通過瀏覽的商品推薦相似的商品等等 。所以上面這一切都基於數據洞察,維度基本有以下幾個:用戶數,用戶群體,推薦功能,推薦內容,非個性化/個性化,Top-N,列表瀏覽,是否實時反饋,消費需求變化情況。
  • 通過以上維度進行產品定位,最終可以考慮的設計要素有:需求分析和用戶調研,功能設計,界面設計,架構設計,演算法設計,系統評測。總之,每個產品特性導致不同的評估指標,對於用戶滿足度不同的定義也帶來了不同的評估方式,並且不同場景/不同階段的推薦系統各個部分重要程度不同。

1.3常規評估指標:

  • a.準確度評價指標: ??預測準確度,分類準確度,排序準確度,預測打分關聯,半衰期效用指標
  • b.準確度之外的評價指標: ??推薦列表的流行性和多樣性,覆蓋率,新鮮性和意外性,用戶滿意度
  • c.其它相關指標: ??用戶對演算法準確度的敏感度,演算法對不同產品的普適性,廣義的質量評價,個人隱私的保護,推薦系統的魯棒性等 具體上述幾個指標的計算等,我們在推薦系統的評價這一章展開。

2.為什麼會有這麼多流程

??機器學習的核心就是基於過去的事實和數據,用來發現趨勢和模式;這裡體現的兩過程就是從學習過程到決策過程(配圖);傳統數據分析旨在回答關於過去的事實,機器學習模型提供了對於結果的洞察力,機器學習幫助揭示未來的一個結果的概率而不僅僅是過去發生的事情回答關於未來事件的可能性的問題。在推薦領域的核心問題就是如何構建一個用戶對商品的評價模型。推薦系統通過收集用戶和商品數據,利用機器學習演算法構建用戶模型,最終影響推薦結果。形象地來說,我們通過機器學習構建了模型f(也可稱之為映射),然後我就可以用這個模型預測出人對商品的感興趣程度,即f(人,商品)=人對商品的感興趣程度

所以你會說那麼推薦豈不是很簡單,只要利用數據構建特徵與訓練數據,然後學習到上面所述的打分模型f,那麼一個用戶來到平台,把所有商品逐個和用戶組合放到模型裡面打分,最終按分數從大到小排序就可以了?對,你非常聰明,但是你可能忽略了以下若干問題:

2.1成本與資源問題:

a.時間與資源:互聯網時代個性化推薦的典型應用場景中,商品/內容一般是海量的(百萬-萬億級別),如果要做到對每個用戶商品預測分數那麼這將是一件耗時耗力的事情,而在體驗至上的互聯網時代,留給計算機的時間在百毫秒以內,那麼必然需要機器資源來解決海量計算問題,而這就涉及到了成本與效果問題。如果推薦效果滿分是100分,則使用其它不那麼完美的技術可以使用20%資源達到80分的效果,但是可能另外的20分可能需要80%的資源甚至更多;所以這時候我們是不是可以在模型打分之前先做一層初篩,簡單的做法有很多,比如在總的商品池子裡面先刪除一些低質量的商品(比如售後評價低,退貨率較高的等等);再比如根據用戶行為,提取少量不在用戶興趣範圍但熱銷的商品等等。當然這肯定會損失一定的效果,所以我們是不是在初篩這一層好好下功夫做一下,這樣既能保證效果,也能節省成本。其實不光有初篩這一步,整個推薦還可以做其它拆解,引入流水線式推薦流程,每個環節專註自己的事情,可以把效率和效果都做好。只要做好各個環節的銜接工作(api),那麼整個流程將可以高效運轉。 ??

b.流水線

讓我們來看一下推薦系統常見的模塊分解圖(架構圖),分別為召回,過濾,排序,重排序。召回模塊主要是根據各種任務類型在全站商品庫進行商品篩選,其中任務類型主要為上一講中介紹的基於用戶,商品,內容,模型等等常見方法;過濾模塊則更多地考慮用戶購買力/性別/年齡/已購商品等問題,利用規則或模型剔除召回模塊初篩後的商品。排序模塊會更細化地利用用戶/商品特徵/召回各類模型得分等因素,並以點擊率/轉化率等指標為目標,對用戶商品對打分預測,並根據得分進行排序。重排序則會更多考慮多樣性,當然新穎性,驚喜性,實時性,商品覆蓋率等指標。而最近推薦系統地發展,則開始探索強化學習(反饋學習),深度學習等技術,開始對原有模塊深挖與拓展。後面幾章我們會具體展開。

c.架構圖:為了配合上述模塊的構建,系統工程架構上需要考慮日誌收集與迴流模塊,演算法離線計算模塊,近實時/實時計算模塊,推薦服務與容器,api業務耦合模塊等,當然上述模塊還可以單獨再做拆分,類似現在普遍採用的微服務概念,具體我們也會在後面講到,並作拆解的分析與介紹。

2.2視覺窄化問題:

??個性化的推薦必然需要用戶的數據為基礎,必然帶來行為–>推薦結果–>行為的循環,這就會帶來推薦會將用戶能看到的東西窄化。新鮮性,多樣性,驚喜度在今天的推薦系統中還不能做的非常好,比如下面的例子。

一般某個推薦場景下,每屏可展現商品一般都大於1,如果一個用戶歷史上一共只看了100個商品,並且這一百個商品都是褲子,那麼有可能你的模型對全站商品逐個打分後,top10的商品都是褲子,最終可能這種效果會比在褲子中間穿插一些雖然打分沒有top10褲子高但是與褲子不同類的皮帶,短袖等商品的結果差。因為一個普通用戶在一次購物中購買褲子的條數是指數分布,隨購買條數的增多用戶比例也是指數下降的,這時候你在褲子中間穿插一些不同類但可能是搭配的商品促成交易的可能性更大。這中間涉及的就是多樣性與準確性的平衡。並且影響用戶購物的因素非常多,前面的展現可能影響後面的展現,同屏的商品會互相影響。比如用戶看了大量高價的商品,突然看到一個質量差不多但價格差很多的商品,下單的可能性比直接看到這個商品高;再比如同屏的短袖和褲子非常搭,這時候用戶下單的概率可能比單獨看到這兩個商品高。所以基於成本以及全局優化(多變數優化)的考慮,其實我們可以在流程化推薦的過程重,在每一層都去盡量兼顧全局與局部。 ??而要避免這個問題,需要各個模塊協同完成,從上往至下其實是一個漏斗,如果其中一層物料被窄化嚴重,則後面就巧婦難為無米之炊了。

3.預告:

??第二章我們將開講召回模塊,由於第二章開始內容將非常多,正在緊張地寫作中,敬請期待。如果對推薦這一塊的東西感興趣的,可以收聽我的知乎live,內有配合ppt的音頻素材,謝謝支持!地址:知乎 Live - 全新的實時問答


推薦閱讀:

圖說可視化,報表也能做得如此酷炫!
有一個傳奇叫:周杰倫! 大數據分析後的周杰倫就是這麼牛 但是有人卻質疑他
四個動畫秒懂 Apache Beam 模型
Kaggle Titanic項目代碼精簡版(排名1307)
運用小數據逆襲,一家地區超市讓沃爾瑪甘拜下風

TAG:推荐算法 | 大数据 | 算法 |