內容要點
本文主要圍繞電商推薦,從個性化推薦的核心問題、架構、推薦效果闡述智能推薦的技術演進應用。
電商推薦問題和價值
在看推薦系統要解決哪些問題之前,首要了解它能帶來什麼價值。個性化推薦之所以能如此迅速地佔領各大APP的首要版塊,取代了之前很多人工運營的坑位,最核心的原因是它可以更拉近用戶與商品的距離,用最短的時間和路徑讓用戶找到想要的商品,也就是常說的流量分發效率。
這就好比一個人逛超市,他喜歡吃肉,而且一般只逛3個貨架,雖然還沒確定這次要買什麼,但是如果貨架上擺的都是蔬菜,那麼他大概會掃興而歸,對於超市來說,最現實的就是收入少了,歸因就是流量分發效率低。所以由此引出的就是,推薦要解決的最基本問題,就是保證流量效率,也就是點擊率、轉化率這些指標。
電商首頁的版塊,一般都代表著產品的門面,它所承載的,不僅僅是怎麼賺更多的錢。所以這也需要推薦系統再往前走一步,不僅僅是流量,還要能承接住用戶的心智和產品的調性。這些可以概括為兩個方面:用戶體驗和運營幹預。
運營幹預,就是推薦結果要可以被一些外部的輸入所影響,這些輸入主要來自於人的主觀判斷。比如能夠做一些流量調控,側重一些行業的傾斜,甚至對新店鋪做一些扶持。首先這些判斷對產品的發展是很重要的,其次其背後的信息是系統無法量化計算的,因此只能交給人來做,系統只需要留好接口,儘可能柔和地接住這些硬性的規則。
怎麼才算是好的用戶體驗?這是一個綜合的衡量指標,很難從單一維度回答。換個角度,當一個用戶逛完某個平臺,有了一定的精神滿足感,那麼就基本可以判斷用戶體驗還不錯。仍以逛超市舉例,我們不僅希望用戶在3個貨架內成交,還希望他能逛更多的貨架,希望他明天能來,逛完後不僅僅喜歡吃肉了,還喜歡吃水果了。所以具象化到推薦系統,就有了更多的衡量指標,如發現性、停留時長、瀏覽深度、復購率等,也就是說,一個好的推薦系統,不僅是讓用戶快速找到喜歡的商品,還能讓用戶逛起來。
總結起來,推薦需要解決這三方面的問題,但單靠推薦系統肯定是不夠的,還需要商品、流量、運營這些因素共同來支撐。
由左側的問題,可以推斷出,判定一套推薦系統的價值,一定是多元化的。不同的業務系統,會有各自側重的標準,所以推薦做到最後,不僅僅是算法模型的問題,它更是一個業務系統。
在此有一點需要強調,這種多元的價值判斷,不同指標看上去都是相輔相成的,但是仔細思考,裡面還是有很多相悖的。就比如前面說的,一個用戶滿足感高了,他自然買的就多了,可買的多並不僅僅是因為流量效率高了,而是因為他瀏覽了更多的貨架,感覺越逛越開心。所以怎麼去衡量這些指標之間的平衡,也是推薦系統需要考量的問題。
推薦系統架構
對於一個推薦系統來說,它的架構已經比較明確了。
第一部分是商品池、用戶池的構建。數據是算法的基礎,底層數據的豐富程度決定了推薦能力的天花板。更多的用戶錄入系統,使請求推薦的用戶未登錄佔比更低。更多的特徵,比如用戶的年齡、性別、地域、商品的店鋪、價格、類目等。更豐富的行為,曝光和點擊是目前智能推薦的基本要求,其他還包括點贊、停留時長、下載等等。算法系統本質上是拿過去預測未來,如果過去什麼都沒有發生,那麼預測出來的結果,就可想而知。
第二部分是怎麼從海量的商品池選擇推薦的對象。這方面主要是依靠檢索的技術,包括通過協同過濾、內容過濾、用戶偏好建立索引,並根據索引生成第一步的結果。這些涉及到的工程技術主要是性能,怎樣一次性查得更多、更快。以阿里雲智能推薦來說,主要是複用了阿里內部的系統架構,單次單鏈路的召回至少是幾千級別的,這是這款產品的固本之策。
在算法上,主要就是各個召回鏈路。以最基礎且最通用的協同過濾為例,ItemCF可算是推薦系統發展過程中的一個里程碑節點,它第一次解決了大規模的計算問題,並且能在效果上碾壓其它普通的基於信息檢索,語義檢索的推薦系統。它效果好的原因,第一就是它本質上是一種遷移學習,收集用戶在全場景上的行為、推薦、搜索等打造出來的信息,是一種半監督式的。另一個就是,它是通過用戶的近期行為去做相關性的匹配,所以也是一個核函數的方法,就是越近的結果越容易被推薦出來。但是,i2i效果太好也會有挑戰性的一面,很難去突破,而且對數據質量要求很高。以上問題的關鍵就在於心智的體現,落地到系統上就是需要擴召回,需要更豐富的,能體現心智的鏈路進來。
第三部分是在之前的基礎上,需要一個精選排序。不管是LR或者GBDT,還是WDL在神經網絡上4層、7層甚至10層的嘗試,都是希望rank model學得更準。再配合推薦價值,不僅僅能優化例如停留時長之類的某一個目標。
最後一部分是運營幹預,也就是對最後結果的一次規則性的過濾。這裡其實有一個主要的矛盾點,對於運營同學來說,僅僅對最後結果的干預,還是太弱了。對於算法同學來說,強行對最後的結果進行人工規則的過濾、重排序,是非常影響效果的。所以,從系統落地的角度,我們在做的一個事情就是把運營規則前置化,可以更柔性地應用到選品、召回、排序中。
推薦效果
第三部分內容聚焦在怎樣提升推薦效果上,也就是流量分發效率。
現階段,機器還是一個把人的思維落地成自動化的過程。所以試想一下,如果面臨一個用戶要選擇三個商品,你會怎麼去推薦,需要什麼樣的信息,怎樣去做決策。
第一步,需要什麼樣的信息。我們需要知道這3個商品是什麼。是美妝,還是食品?是大品牌,還是性價比高?還需要知道用戶的信息。是男是女?地域怎麼樣?年齡多大?最重要的是,我們得知道用戶喜歡什麼,他肯定不會直接告訴你,有時候他自己也不知道,那麼,我們就用他過去的行為來推測,點過什麼商品,買過什麼商品,什麼商品看了看就走了,什麼商品看了很久很久。所以你需要這些信息判斷,推薦系統也需要,把這些信息抽象一下,就是以上圖右邊的這三類,對於智能推薦這個產品來說,就是三張基礎數據表。
第二步,需要把這些信息抽象一下,得出這個用戶喜歡什麼的結論。對於推薦系統,就是一個用戶畫像構建的過程。簡單的做法,就是把用戶過去的行為做個聚類。也可以做的很複雜,如需要考慮時間的衰減,需要把即時興趣抽出來,需要考慮同特徵的人群畫像的輸入等等,這也是各個推薦系統的核心競爭力之一。當然,還是那句話,沒有最好的,只有最符合你的業務的。
拿到用戶畫像之後,還有很關鍵的一步,就是怎麼把這個畫像和要推薦的商品關聯起來。這裡就可以抽象出一個trigger的概念,是一個橋樑,以之前提到的i2i舉例,圖中左邊這個item就是一個trigger,可通過畫像知道用戶更喜歡哪個item,然後進而去尋找和它最相近的右邊item,這樣就完成了一次召回的查詢。
有了用戶畫像,還可以構建物品畫像。舉個例子,一個商品,北京的人更喜歡購買,那麼它的畫像中的一個因素就是北京人,一般物品畫像更多地會用在新用戶冷啟動上。
第三步,通過這種相關性,可以拿到多商品,之後就是推薦的最後一步——精排。還是用之前的這些信息量,換個角度,重新再模型計算打分。這樣,就完成了一次推薦。
在這個過程中,其實還有一些更細緻的考慮,比如當拿到的信息缺失了一部分怎麼辦,映射到推薦系統,也就是用戶冷啟動和物品冷啟動。
用戶冷啟動,需要明確一個前提,就是可以拿到這個用戶的部分特徵(每一個平臺用戶註冊的基本信息),但是沒有這個用戶過去在這個平臺的行為。僅僅從分發效率上說,能想的辦法不多。一方面,可通過物品畫像進行推薦,比如這個平臺上,男生都喜歡什麼,那麼就給新來的男性推送這些商品。另一方面,也可以想辦法擴充用戶畫像和特徵,他在這個平臺上是新用戶,但並不表示在全網其它平臺上也是新用戶,這是一個思路。具體的操作需要第三方數據授權,在此也提醒大家,一定要注意隱私保護,因為這些信息對推薦系統來說,確實很重要。最後,如果前兩個都不起作用,那就只能用熱門推薦了,這是考慮效率後的最優選擇。
其實,新用戶對一個平臺來說,留存是最重要的,所以對於推薦系統來說,就更需要特殊考慮了。以阿里雲智能推薦來說,除了分發效果,也會考慮用戶心智的探索,比如適當地推薦一些新鮮的東西,讓用戶能快速建立平臺的心智,同時還會結合一些運營的需求。
其次,是新品冷啟動,這個問題的核心在於怎麼讓一個未知的商品在兼顧效率的情況下,快速地熱起來。對於我們智能推薦的設計,主要就是兩個流量環,我們會給新品單獨建立一個索引池,小流量地灰度預熱這些商品,它的推薦策略主要是兼容效果和運營需求。當這個商品熱起來之後,再放到正常的推薦流量環中。這樣做主要的考量因素就是新品的曝光可控性。考慮到如果新品直接放入正常的推薦池中,那麼大概率是得不到流量的,如果人工運營強行加權,又會干擾到正常商品池的推薦,還會導致新品自身的流量不均衡。
另外有一點也值得深思,就是怎麼判斷一個商品熱起來了。這裡有很多辦法,簡單點,PV達到一定量就可以了,再進一步,需要這個商品的CTR穩定下來不再波動,這個問題我們會持續迭代探討下去。
智能推薦2.0及未來
基於以上產品技術的思考,本次阿里雲智能推薦2.0發佈了。相比之前,智能推薦加入了前文提到的價值判斷的環節,目標就是為了優化用戶體驗。在新品的策略上進行了一些調整,希望做到可控,可調整,有分發效率。同時,2.0版本也提升了整體推薦效果,模型持續迭代,擴了很多召回,很多基礎鏈路也進行了重構,主要是為了更適宜雲上中小客戶的行為規模。以上優化僅僅是個開始,我們的目標是推薦賦能用戶,這條路還很長,期待我們一起探索。
加入社群
點擊訂閱《阿里雲搜索與推薦技術交流期刊》
掃碼入群,瞭解更多資訊,獲取課程資料