天天看點

無推薦、不APP

作者:鄭重(盧梭) 阿裡雲算法專家

<a href="#s1">推薦概述</a>

<a href="#s2">阿裡雲推薦引擎的技術特點</a>

<a href="#s3">針對行業的解決方案</a>

<a></a>

随着網際網路規模不斷擴大,商品、音樂、電影、廣告資訊...的個數和種類快速增長,顧客需要花費大量的時間才能找到自己想要的東西。個性化推薦則是建立在海量資料挖掘基礎之上,為顧客提供完全個性化的決策支援和資訊服務。

無推薦、不APP

随着移動網際網路的發展,顧客的行為發生了明顯的變化,過去在pc時代,顧客的浏覽習慣是進來搜尋,分類導航,但如今在移動端,隻有搜尋,沒有分類,因為整個無線浏覽不是一層層點選下去,而是劃屏下去。無線的發展同時帶來了推薦的大爆發,尤其是用了資料的個性化推薦,帶來很多的精準轉化。

當然,除了解決移動端使用者體驗的問題外,個性化推薦的能力還被會成為app的商業價值。尤其是媒體資訊的行業,不僅比拼内容的來源豐富,還要對比對海量資料實時推薦、精準推薦的技術能力。

無推薦、不APP

同時,在個性化需求強烈的行業上,推薦也同樣走在最前面。

比如亞馬遜,随着零售市場的豐富化和越來越細分的類目,使用者對商品選購這件事情越來越頭疼,同樣電商網站也在頭疼如何在有限的産品頁面提供對使用者最有效的資訊。亞馬遜最早使用個性化推薦來建構千人千面的電商頁面,減少了自身的營運成本的同時,也使得衆多顧客成為亞馬遜的忠實客戶。

再比如netflix,75%的視訊觀看和推薦系統有關。為了提升推薦效果,netflix來舉辦了專門的推薦算法大賽,邀請全世界學術界的大牛來推動推薦算法的發展。

facebook同樣也是個性化推薦的受益者。推薦算法支撐着facebook可以為幾億人找到他們想看的咨詢,新聞,興趣小組。

無推薦、不APP

推薦引擎整體包括三塊計算域:離線計算、線上計算、近線計算。

其中離線計算依賴阿裡雲大資料計算引擎maxcompute,可以完成pb級資料分析和運算,同時我們會提供基于maxcompute sdk的離線算法開發包,幫助客戶完成自定義算開發。

線上計算則包括處理api請求,擷取離線推薦結果,重排序等功能。依賴阿裡雲table store提供的大容量,高效的kv資料庫,同樣客戶可以編寫js代碼來自定義自己的線上計算邏輯。

近線計算是基于客戶的實時日志做實時修正,物品增删,新使用者推薦等功能。核心是實時日志的流計算。後續會引入更加強大streamcompute引擎。

無推薦、不APP

推薦算法核心就是比對,而比對的核心就是向量化。如何把使用者和物品高效精準的向量化,是推薦算法效果好的關鍵。基因提取算法提供了一個向量化的架構,把從使用者行為,物品基礎資訊到生成使用者、物品向量這個過程分解為4個階段:因子分析、特征提取、基因計算和基因降維。

因子分析:分析使用者的曆史行為資料,得到使用者在不同行為上對于目标的權重。目标由業務來确定,如點選率,購買轉化率等。計算方法可以是邏輯回歸或者神經網絡等監督學習方法。

特征提取:分析物品的基礎資訊,将物品用關鍵詞,屬性,類目等特征來表示。這裡包括分詞,特征變化,特征衍生等算法。提取出來的每個特征,我們稱之為基因。

基因計算:行為因子的權重應用在使用者行為上,計算得到使用者對每個基因的偏好。得到了使用者在基因次元上的的特征向量。

基因降維:如果基因次元仍然很大的情況。可以在後面增加基因降維算法。利用svd矩陣分解的技術,壓縮使用者和物品的特征向量。

無推薦、不APP

推薦引擎提供learning to rank 的算法子產品。在使用者特征和物品特征提取完成後,再根據業務目标,篩選訓練樣本,訓練排序模型,應用在離線線上排序中。然後通過配置多個場景,實作在每個推薦位上面的單獨優化。比如首頁推薦場景,可以用點選率來訓練排序模型;詳情頁場景,可以通過看了又看來訓練。

無推薦、不APP

推薦引擎支援對推薦結果做實時/準實時修正,下面列舉了兩個典型算法:

1.新增物品實時推薦(圖例上半部)

離線: 物品聚類,得到聚類特征-&gt;計算使用者對物品聚類的偏好-&gt;計算simhash-聚類特征的反向索引

線上: 新增物品線上抽取特征,計算歸屬的聚類-&gt;利用使用者對物品聚類的偏好實時推薦

利用bandit政策增加新物品的曝光機會。

通過控制聚類數目,來平衡推薦精度和廣度。

2.基于實時日志的使用者特征修正 (圖例下半部)

擷取使用者行為-&gt;利用行為因子生成使用者特征修正量-&gt;利用壓縮矩陣壓縮特征修正量,最終修正使用者特征。

無推薦、不APP

推薦引擎擁有強大的外圍擴充能力,具體展現在兩個方面:

推薦引擎支援離線算法、線上算法、近線算法的自定義,客戶可以根據自己的資料情況來定義自己算法。比如音樂特征資料,可以開發自己的特征提取算法,把音樂頻譜資料應用在推薦系統中。

推薦引擎使用的maxcompute是阿裡雲很多資料應用的基礎元件。是以在推薦引擎裡面計算得到的模型,可以無需修改應用到其他服務中去。推薦産生的離線資料也可以直接用于人群篩選,人群模組化等大資料bi場景。同樣的,因為底層都是maxcompute,機器學習平台pai訓練得到的資料模型也可以應用在推薦引擎中。

無推薦、不APP

exploration &amp; exploitation(精準度和新穎性的權衡)

無推薦、不APP

其中加号前面是這個item到目前的收益均值,後面的叫做bonus,本質上是均值的标準差,t是目前的試驗次數,tjt是item被選中的次數。這個公式反映:均值越大,标準差越小,被選中的機率會越來越大,起到了exploit的作用;同時哪些被選次數較少的item也會得到試驗機會,起到了explore的作用。

冷啟動問題

推薦引擎在每個計算階段都有處理冷啟動問題的解決方案,離線通過計算熱門推薦來做補全。線上通過物品聚類和新品特征抽取,來做新品推薦。近線通過實時擷取使用者行為日志,推薦使用者之前有行為的物品及其相關物品等。

在不同行業,推薦有着不同的需求。阿裡雲推薦引擎同樣在行業需求上面有自己的積累。

需求:

内容篩選

提高成交轉化率

對應解決方案:

離線通過自定義的篩選算法選出被推薦的pgc(專業生産内容) ugc(使用者生産内容),達人。近線通過實時修正完成新品推薦。

離線訓練基于成交轉化率的排序模型。

無推薦、不APP

内容标簽化

推新

離線通過内容結構化,抽取内容基因,生成内容标簽。描述使用者畫像。

新使用者千人十面線上标簽推薦,新物品實時修正推薦。

無推薦、不APP

實時性

物品更新

線上修正使用者基因,曆史行為過濾,看過的不在推薦。

新物品上架推薦,實時物品下降,線上審計。

無推薦、不APP

繼續閱讀