
作者|莫淩、桑楊、明依
出品|阿裡巴巴新零售淘系技術部
導讀:資訊流作為手淘的一大流量入口,對手淘的浏覽效率轉化和流量分發起到至關重要的作用。在探索如何給使用者推薦其喜歡的商品這條路上,我們首次将端計算大規模應用在手淘用戶端,通過端側豐富的使用者特征資料和觸發點,利用機器學習和深度神經網絡,在端側持續感覺使用者意圖,抓住使用者轉瞬即逝的興趣點,并給予使用者及時的結果回報。通過大半年的不斷改進,手淘資訊流端上智能推薦在9月中旬全量,并在雙十一當天對資訊流的點選量和GMV都帶來了大幅的提升。下文将給大家分享我們在探索過程中發現的問題,對其的思考和解決方案。
背景
現狀與解決方案
手淘上以清單推薦形式為主的業務場景有不少,以手淘資訊流為例,進入猜你喜歡場景的使用者,興趣點常常是不明确的,使用者浏覽時往往沒有明确的商品需求,而是在逛的過程中逐漸去發現想買的商品。而推薦系統在使用者逛到買的過程中,往往會下發并呈現不同類型商品讓使用者從中挑選,推薦系統這個過程中會去捕捉使用者的興趣變化,進而推薦出更符合使用者興趣的商品。然而推薦系統能不能做到使用者興趣變化時立刻給出響應呢?
推薦系統以往的做法都是通過用戶端請求後觸發雲端商品排序,然後将排序好的商品下發給使用者,端側再依此做商品呈現。這樣存在下面兩個問題:
- 雲端推薦系統對終端使用者推薦内容調整機會少,往往都在分頁請求時,而簡單請求并不能靈活做内容的增删改
- 雲端推薦系統不能及時擷取到使用者目前時刻的偏好意圖,快速給出回報
我們總結發現,目前推薦系統的弊端是,使用者偏好的變化與推薦系統對使用者感覺和對内容的調整時機并不能比對,會出現推薦的内容并非使用者目前時刻想要的,使用者浏覽和點選意願都會下降。那麼怎樣能夠讓推薦系統及時感覺到使用者偏好并及時的給出使用者想要的内容呢?
我們先透過現象看本質,以上問題的本質在于推薦系統和使用者互動過程中的實時性差,以及決策系統可調整性差。實時性差展現在兩個方面,推薦系統對終端使用者的感覺實時性差以及對使用者的幹預實時性差。而決策系統可調整性差,展現在決策系統對使用者内容的調整時機依賴端側的固定規則請求,可調整的内容局限于目前次下發的内容。如果我們能夠解決實時性問題,推薦系統能夠實時感覺使用者偏好,并在任何時機實時調整使用者所見内容,推薦的内容可以更符合使用者目前的偏好;如果我們能夠解決決策系統可調整性差問題,推薦系統可以決定合适的時機去調整使用者内容,可以決定用更優的方式去調整具體的内容。那麼解決的方案是什麼呢?
我們在手淘資訊流中引入機器學習和深度神經網絡模型,結合端側使用者特征,在端側持續感覺使用者意圖,實時決策并實時回報結果給使用者,這樣解決了實時性差以及決策系統可調整性差的問題。我們把這個解決方案稱之為端智能。
端智能帶來的改變
端智能的本質是“端”+“智能”。首先“智能”不是一個新鮮的東西,“智能”不管是在雲端或終端,解決的問題是通過機器學習資料的内在機制并推理出最終結論;“端”解決的問題是将”智能“工程化并落地到具體的應用場景,“端”有機的整合端側資料以及雲端下發内容,決定何時觸發“智能”做決策,最終決定怎樣給使用者以回報。
端智能帶來的改變,則是讓端上具備了“獨立思考”的能力,這讓部分決策和計算不再依賴于雲端,端側可以更實時、更有政策的給出結果。說到實時性,5G時代的到來,其低延遲時間特性極大的降低了端和雲的互動時間,但這并不影響我們利用端智能實作更低成本的決策和快速響應,反而對于端智能來說,好處是能和雲端結合的更緊密。另外由于在端側能夠秒級感覺使用者意圖做出決策,産品和使用者貼的更近了,這催生了更多實時性的玩法,産品将不再局限于要到固定的時機如分頁請求讓雲端去給到新的内容回報,而是思考,當使用者表達出來特定的使用者意圖時,産品應該如何提供與意圖相比對的内容。
端智能與傳統差異比較
盡管端智能帶來了很多好的改變,但這裡依然需要強調一點,并不是說有了端智能就不再需要雲智能,怎樣做到雲&端協同智能才是未來。
端智能的優勢在于:
- 端側有着豐富的使用者特征和觸點,有着更多的機會和條件去做決策
- 實時性高,在端側處理可節省資料的網絡傳輸時間,節省的時間可用于更快的回報結果
- 節省資源,在端側處理,利用端側算力和存儲空間,可以節省大量的雲端計算和存儲資源
- 隐私性好,從産生資料到消費資料都在端側完成,避免傳輸到雲端引起隐私洩露風險
端智能的不足在于:
- 裝置資源有限,端側的算力、電力、存儲是有限的,不能做大規模高強度的持續計算。
- 算法規模小,端側算力小,而且單使用者的資料,在算法上并不能做到最優
- 使用者資料有限,端側資料并不适合長期大量存儲,端側可用資料有限
雲智能的優勢在于:
- 大資料,雲端可以通過長期大量的來自不同人群的資料進行計算
- 裝置資源充足,雲計算的算力、電力、存儲都可以根據需求進行配置
- 算法規模大,可以通過足夠的大規模模型,計算出最優解
雲智能不足在于:
- 響應速度慢,受傳輸帶寬影響,不能穩定提供較高的響應速度
- 使用者感覺弱,端側産生的資料同步到雲端,資料量限制和傳輸時間的限制都會削弱雲端對使用者的感覺
從以上雲智能和端智能的對比可以看出,端智能适合于依賴端側使用者觸點的小規模低延遲時間的計算,而雲智能更适合中長期資料大規模計算。同時,端智能往往需要雲端提供的長期特征及内容,而雲智能也往往需要端上的特征和豐富的觸發點,兩者優勢互補,才能發揮出更好的效果。
端智能基礎設施建設
高樓起于平地,打造端智能這幢摩天大樓需要很多基礎設施,剝除各種各樣邊角料和錦上添花的東西後,我們認為構成支撐起端智能體系的骨架組成部分主要有資料、端計算、端計算引擎、端智能決策架構、算法研發平台。其中,端側資料 、端計算、端計算引擎這三塊的作用是實時感覺使用者,計算出貼合使用者的結果;端智能決策架構是觸達使用者的通道,通過端上實時智能決策銜接使用者意圖和端計算,最後通過一定的幹預手段展現到使用者眼前;算法研發平台是開發過程主要接觸的平台,能有效提升研發效率。通過一個簡單的示意圖也許能更好的了解這五大塊:
資料-BehaviX
無論計算是發生在雲端還是終端,資料始終是執行所有計算的基本要素之一,端計算的本質也是計算,資料當然也是他的要素之一。在淘寶或者其他阿裡系App裡我們已經有很多資料沉澱,這些資料包括但不限于商品、商品特征、使用者特征等。這些資料同樣可以作為端計算的輸入來源,但如果隻有這些,端計算和雲計算相比在資料上似乎沒有什麼明顯優勢了,是以我們需要回過頭看下端計算作為端智能的重要部分,他的在資料上的核心優勢是什麼?端計算運作在端上,天然能擷取端上的資料,而且是實時擷取。我們希望這部分資料是和已有資料是互補的、對端計算是有價值的,端計算的目的之一是千人千面,端上豐富的使用者特征,能展現目前使用者的實時意圖。是以我們在建構了端側使用者特征資料中心BehaviX。
BehaviX作為整個端智能的資料基礎,提供給算法特征資料作為模型資料輸入源,支援了特征實時同步雲端,讓雲端能夠秒級感覺到端側使用者特征,提供了算法基于端側使用者特征資料做意圖分析的能力。
端智能決策架構-BehaviR
從使用者角度來看,使用者感覺到的不是一堆資料和計算而是能夠被感覺到的結果,是以,即使計算出來的結果無比貼合使用者意圖,如果無法及時觸達使用者也是無用功。觸達使用者方式多種多樣,我們需要基于實際場景放開手大膽探索,合理的産品設計會讓使用者覺得是在和一個“智能”的App交流,反之,不合理的産品設計會打擾使用者、對使用者造成困擾。從技術角度來說,我們要設計和做的其實是一條觸達通道,通過感覺使用者觸點,我們能根據營運規則配置或者本地模型決策出此時要給使用者什麼類型的回報,然後通過下面要講述的端計算能力計算出貼合使用者的結果并展示給使用者,以此将端計算和使用者連接配接在一起。
端智能決策架構能簡化業務方接入端智能流程,幫助業務方真正做到實時感覺、及時幹預,更多詳細内容。
端計算-EdgeRec
端計算簡單了解起來可以認為是跑在端上的一段邏輯,這段邏輯可以是一個預置的Native任務,也可以是一個動态部署的腳步,當然,在最終我們希望他是一個算法模型。算法模型是目前做到千人千面的有效手段之一,其他優勢不再累述了,詳見下面的友情連結。
回到這裡的主角EdgeRec-邊緣計算算法,他在在端上實時模組化了使用者的異構特征序列,為端上決策提供通用的使用者狀态表達。通過多任務學習,共享通用的使用者狀态表達,在端上模組化多種決策模型。另外,邊緣計算算法SDK也提供端上深度學習算法開發的通用解決方案,如:端上深度學習模型庫、端上模型拆分部署、端上模型版本控制、端上樣本生成等。
端計算引擎-Walle&MNN
端計算引擎是端智能體系中重要的一環,是算法模型的基礎環境。無論是iOS還是Android目前都提供了一套環境,但兩端差異性比較大,限制也比較多。建構一套端計算引擎的成本是非常高的,但長遠來看統一兩端引擎、抹平差異是有非常有必要的。Walle和MNN作為目前我們端計算引擎很好地做到了這一點。
Walle是端上整體的Runtime,他為算法的Python腳本、深度模型以及Jarvis的EFC、ESC等特征樣本計算庫提供運作環境,另外也為BehaviX管理的基礎資料提供存儲服務。
MNN 是一個輕量級的深度學習端側推理引擎,核心解決深度神經網絡模型在端側推理運作問題,涵蓋深度神經網絡模型的優化、轉換和推理,其前身為 AliNN。
算法研發平台-Jarvis
算法模型的研發并不是簡單地在本地IDE寫一份代碼那麼簡單,我們通常需要理論調研、算法開發、模型訓練、參數調優、線上驗證等等步驟,本地環境是遠遠不夠的,是以算法研發平台的存在能幫助算法同學更高效、更專注地進行研發工作。另外,端智能要出結果,一定是多團隊通力合作的結果,多團隊合作僅靠口頭溝通是遠遠不夠的,我們需要一套合理的流程去簡化和規範各項工作,是以,在算法研發平台的基礎之上我們仍舊需要一個一站式平台。
Jarvis提供一站式的開發、調試、驗證、AB測試、釋出、監控平台,與算法同學共建一起打造了端上的特征計算、樣本計算等基礎庫。
整體流程圖
我們建構了端智能的五個基礎設施,通過端上排程系統,将整個端智能技術體系串聯起來,總體來說分為使用者觸達和使用者感覺部分。使用者觸達部分包括端上排程和端上決策,端上排程提供和業務的直接對接,端上決策由端上排程系統在合适的時候拉起本地算法計算;使用者感覺部分則對使用者特征進行标準化端上使用者特征,提供端側計算的資料輸入。
資料效果
從年初資訊流端智能立項以來,我們經過最開始的小流量實驗,效果逐漸優化,大半年的不斷探索試錯,資訊流端智能于9月中旬在首頁猜你喜歡場景全量。雙十一當天也取得了不錯的業務效果,對商品推薦的準确度提升,資訊流GMV和點選量都大幅提升。其實這隻是資訊流在端智能的開始,相信後面更深入的優化探索,我們将會取到更好的效果。
總結
從我們以往的經驗來看,端側做的更多的是将雲端内容以具體的形式呈現給使用者。當端側也具備了感覺使用者意圖并智能做出決策時,端側的能力就不再局限于“呈現”,端側也可以”思考“。業務可以利用端側”思考“能力,将以往在雲端解決起來比較困難的問題放到端上去解決,如雲端決策實時性問題、大資料量上報雲端分析的資源消耗問題;可以結合端側本身的特性,如傳感器、相機、UI呈現等,去思考如何去整合使用者特征、資料、端側算法去大膽嘗試找到新的突破口。
One More Thing
淘系技術部依托淘系豐富的業務形态和海量的使用者,我們持續以技術驅動産品和商業創新,不斷探索和衍生颠覆型網際網路新技術,以更加智能、友好、普惠的科技深度重塑産業和使用者體驗,打造新商業。我們不斷吸引使用者增長、機器學習、視覺算法、音視訊通信、數字媒體、移動技術、端側智能等領域全球頂尖專業人才加入,讓科技引領面向未來的商業創新和進步。
請投遞履歷至郵箱:[email protected]
了解更多職位詳情:
2684億成交!每秒訂單峰值54.4W!這樣的團隊你想加入嗎?掃描下方二維碼,關注「淘系技術」微信公衆号。