梅長蘇:推薦系統難道就是琅琊榜?_風聞
谭婧在充电-谭婧在充电官方账号-偏爱人工智能(数据、算法、算力、场景)。-2021-08-31 13:10

圖文原創:譚婧
琅琊榜,是琅琊閣的榜單。
有天下高手、幫派、富豪、美人等眾多排名。
百年風雲多變,榜單數目向萬級進軍,江湖豪傑趨之若鶩,可製作榜單的效率卻低,需要計算機軟件加速。
琅琊閣主,一籌莫展。
琅琊閣作為頂級戰略智庫,文化才子多,技術高手少,且聽聞,還需算法工程師和算法科學家助陣,一時也不知去何處結交。
閣主突然憶起“麒麟才子”,梅長蘇。
“下帖,有請。”

領導下了指示,退休也得返聘。
梅長蘇容顏依舊清朗,一改往日月白衣衫,身着格子襯衫。
閣主倍感意外,嘴上説:“怎麼你改行,連裝束也變了?”
心裏卻想:“氣質這一塊還是拿捏得死死的。”
“莫非閣主忘了,穿格子衫的,還有一位後起之秀,劍走偏鋒,一手刀法精湛絕倫,跟高手也不客氣,見人就叫囂:砍一刀!”
閣主看看手機裏七大姑八大姨的微信羣,無奈笑笑。
梅長蘇緩聲説道:“推薦系統為電商用至極致,它的本質是排名,琅琊閣不妨上一個推薦系統。”

眾人聽後,一臉迷茫。
“單看兵器,所用皆不同。”
“百種重兵器,千種輕兵器,萬種暗器,按江湖俠客的喜好是一種排名。”
“衝鋒陷陣,攻城掠地,馬上對陣,近身過招,按場景又是另一種排名。”

“排名,本質上就是兵器推薦系統。”
梅長蘇,果然名不虛傳。
“以此類推,護具甲冑,帶刃武器,防禦盾牌,都應該按俠客的使用體驗和喜好排名。”
閣主點頭附和:“某豆電影榜單,雖然經典永流傳,但也略顯單一。”
“道理易懂,還是得講透一個成熟產品。畢竟產品是技術和市場需求的綜合體現。”
梅長蘇思忖半晌:
“亞馬遜雲科技的的個性化按服務Amazon Personalize”。


正説話間,有人打斷梅長蘇:
“上好的推薦系統,中國互聯網各大門派,無論草莽,還是梟雄,均鑽研已久,勇猛精進。推薦這門手藝,中國並沒有落後國外,為什麼講亞馬遜雲科技的產品呢?”
梅長蘇凝視着樓台上方的“琅琊閣”三個字,他的回答,惜字如金:
“全託管,好理解。”
全託管是什麼呢?是亞馬遜雲科技專用術(黑)語(話),不少外圍人士雲裏霧裏。
若有播音腔的電視廣告語,那就是:“用户只關心應用層的事情,基礎架構交給亞馬遜雲科技。”
梅長蘇説:“不想聽我講的,可參考《開發人員指南》。
共計408頁,頗為詳實。”

當今之世,但慕虛名。
外行看兵器,內行看兵法。
人工智能這一兵法,紅極於武林,可玩得極精的高手數量極少。
推薦系統所用之處,業務好理解,場景不復雜,可從工程角度來看,卻異常繁瑣。
一些沒有經驗的企業,入門困難,處處踩坑,好不狼狽,好比拿了《葵花寶典》就按老思路揮刀自宮,翻書一看,大驚失色:“新版寶典,無需自宮。”
如若專門養一個工程和算法團隊來維護,銀兩花銷極大,非豪門貴胄,無法享受。
再反觀互聯網公司,推薦系統太過重要,是花重兵重金投入打造的護城河。
實力不可小覷,但也有一個問題隨之而來,很多互聯網大廠對推薦系統過度投入(overinvest),做了很多高度定製化的工作。
青銅玩家,一時一刻便想掌握,談何容易?
琅琊閣也是如此,精簡部隊作戰,無需航空母艦般複雜的推薦系統。
手起刀落,也是道行。
人工智能產品走過數度春秋,有一高手公認的套路,從Amazon Personalize身上可略見一斑。
很多第一次用推薦系統的廠商,花拳繡腿,混亂之極,毫無章法。
工具,數據流,方案,東拼西湊,把業務部門搞得雞飛狗跳,簡直是“縱兵擾民”。

雲廠商沒有前朝舊曆的固化思維,這套推薦系統的“心決”,上手易,功效強。
常言道,外練筋骨皮,內練一口氣。世人皆知,內功是很多練武之人功力拔高的天花板。
內功不積跬步,無以至千里,想迅速上手,唯有一個“借”字,借雲廠商的內功,為己所用。
這六大步法,乍看平白無奇,人人可把玩,實則“借內力”突破了內功對武功發揮的限制。
登時,梅長蘇神色肅然,旋即開始講解。
一、先懂業務,後懂推薦,放哪裏,如何放?
二、如何準備訓練數據?
三、如何建解決方案?
四、如何評估解決方案?
五、如何部署模型?
六、如何推薦?

展開來説,就是:
步法一:先懂業務,後懂推薦,放哪裏,如何放?
業務流程中哪個地方,需要什麼樣的推薦?隨後創建相關數據集和數據集組。
所需內功:用户、場景、物品的信息如何收集?元數據是什麼?架構數據的類型是什麼?數據如何存儲?存儲在哪?買哪個數據庫?數據湖如何使用?
步法二:如何準備訓練數據?
所需內功:歷史數據如何導入到數據集組?用户在線交互事件如何記錄?訓練和存儲服務如何打通?Docker技術相關難點怎麼解決?
步法三:如何建解決方案?
所需內功:模型訓練的計算資源如何管理?模型如何管理?每次訓練模型時,都會有一個新的模型版本。線上幾十個模型,模型版本怎麼管理?模型效果不好,如何回滾到上一個版本?
步法四:如何評估解決方案?
使用指標評估解決方案版本。
所需內功:模型訓練的計算資源如何解決?需要多少GPU機器?數據怎麼拉到GPU機器上?分佈式處理平台怎麼用?
步法五:如何部署模型?
所需內功:訓練好的模型如何直接上線?TensorFlow-serving開源方案怎麼用?流計算平台怎麼用?
步法六:如何推薦?
不同場景,不同算法,都要先把模型訓練好,進而創建不同的解決方案版本,進而推薦。

借內功,發威力。這一串拆解,讓一眾閣老瞠目結舌。
梅長蘇置之不顧,繼續闡述。
使用推薦產品Amazon Personalize,攻克內功的活兒,都甩給雲計算廠商。
所以謂之,借內功。
六大步法,逐個通關,門檻降低,可發威力。
可敲代碼,用命令行(用網頁的方式訪問Amazon Web Services控制枱),零搭建,易上手,完善,輕量。
自己的技術,自己先用。
自家的酒,先乾為敬。
作為推薦算法發源地之一,亞馬遜電商是推薦系統的經驗來源。
1998年,Amazon網站從龐大的圖書目錄起家,開始做書籍推薦。
推薦技術在內部大規模使用,真實困難,又推動技術攻關。梅長蘇似乎不甚在意的樣子:
“江湖上,推薦系統產品很多,有的品牌的機器學習平台上面也有推薦系統,但像琅琊閣這樣,只有推薦需求,買機器學習平台,就太重了。”
閣老們,點頭回應,言之有理。
“雖然原理大同小異,但是,Amazon Personalize試錯週期短,不行就換掉,沉沒成本小。”
推薦系統的原理,是從數據裏面找規律。
推薦算法就像解題,已知,求解。已知了一些人的興趣和喜好,求其他人的。或者已知了你過往的行為路徑,預測將來的。
物以類聚,人以羣分,還可用“朋友喜歡”作為一條線索。
比如,有三個人,
張三喜歡一個商品,a。
李四喜歡三個商品,a、b、c。
王五喜歡兩個商品,a和c。
推薦系統算法認為,張三李四王五有相似之處,因為都喜歡商品a,而喜歡a的人同時也喜歡c。
所以,把商品c也推薦給張三。
梅長蘇淡然説道:“只是將一些消費者身上的共同點,用在了別的消費者身上。”
不少閣老暗自驚訝,幾年未見,梅長蘇對科技的理解令人驚歎,隨即又問:“那個推薦模型裏都有什麼?”
梅長蘇目光微微一凝,緩聲説道:
“推薦模型大致可分為三部分:召回+排序+再排序(補充策略與算法)。技術細節按下不表,先理解本質。”

排序是核心思想,最終都是想要一個最好的排序,最貼近人心的“琅琊榜”。
世間之事,人心最為曲折,推薦就是,隨其曲折,借力用力。
又有閣老發問:“那召回是什麼?”
梅長蘇又道:“人的內心再豐富,也裝不下整個世界。”
召回是,在排序前先挑一輪,挑出可能感興趣的商品。電商商品池子裏面有海量的商品,選商品,到底選哪些,要有個方法,就是召回算法。
如今電商的商品數量,就像海洋,全部排序,計算量可太大了。
所以,要分批次打撈,從幾億商品裏先撈幾百萬,再從幾百萬中撈出幾萬,範圍越來越小。
專業説法是,排序時使用複雜模型,用多特徵(比如用户的各種喜好)精準排序。如果直接對百萬量級的候選物品進行逐一推斷,那麼計算資源和延遲都是在線服務無法忍受的。
召回算法包括一些計算效率高的算法,如,協同過濾。
2003年,《IEEEInternet Computing》雜誌上一篇流傳頗廣的文章首次揭曉了亞馬遜電商協同過濾算法的秘密:
“Amazon.comRecommendations: Item-to-Item Collaborative Filtering”。
作者是Greg Linden,BrentSmith,Jeremy York。這篇經典論文,給現在很多流行的推薦算法提供了思路源泉。
口訣是:
精確排序,精工細作,算得慢。
召回算法,大開大合,算得快。
加入召回這個過程,利用少量的特徵和簡單的模型或規則,進行候選者的快速篩選,減少精準排序時的時間開銷。
“召回算法”先用肩膀扛了下了一些壓力。所以,先召回,再精確排序。
一個維度明顯不夠,綜合“多樣性”“流行度”“新鮮度”等多個不同的思路設計。
唯“流行”論,
就是什麼流行,什麼排在前面。
唯“愛好”論,
蘿蔔青菜各有所愛,喜好程度優先。
唯“新鮮”論,
先新聞,後舊聞,新聞實時性排序。
算法凝聚了設計者的高超智慧,最終形成推薦。
説得學術一點,推薦的過程,就是從次優解,到最優解。不停調優,就是不停地找最優解的過程。
推薦系統在工程上的複雜性,加大了用好這一神器的難度。
一面考慮很多數據處理、特徵工程的事情。
另一面考慮很多底層架構運維的事情。
何其痛苦,吁嗟再三。
在Amazon Personalize中,從數據的特徵抽取到模型的分佈式訓練,再到實現高可用架構部署,全託管,不操心。
晚霞漸收,山間明月升起。
琅琊閣,殿塔均浸在溶溶月色之中。
梅長蘇説:“第三個部分,也是最後一個部分,不同場景還需要適配不同的算法。
Amazon Personalize分成三類,這在《Amazon Personalize開發人員指南》中叫,配方。”




外界看來,Amazon Personalize可稱之為,SaaS產品。
一方面有亞馬遜雲科技的獨家算法,另一方面封裝簡化,只要調API就行了,適合青銅選手用。
與SaaS相呼應的是亞馬遜雲科技的PaaS產品。
Amazon SageMaker是亞馬遜雲科技的機器學習平台,有全面的機器學習工具,但需要有AI開發經驗的開發者才能用好。
如若兄弟裏連一個有AI開發經驗的研發人員都沒有,就別考慮了,Amazon SageMaker適合王者選手用。
若情況更為複雜多變,琅琊閣也可以選擇亞馬遜雲科技解決方案。
部署的相關算法和所有實現代碼,對琅琊閣來説,都是公開的。
按需調整,再集成到企業應用代碼裏面去。
推薦系統雖然風靡江湖,但是於細微處見真章。一些難點,異常棘手,比如實時性和冷啓動。
人的興趣總在變化,實時性很重要。
幾分鐘前,在看球鞋。
幾分鐘後,想看手錶。
就是誰也不想用一個反應遲鈍的推薦系統,用户已經離開APP了,還沒有想好推薦啥,一臉呆萌。
推薦系統需要比較快地反映出用户的興趣變化。使用“用户個性化”配方構建的解決方案,不僅每2小時模型會自動更新,還可以用一鍵開啓事件跟蹤器功能實時跟蹤用户行為變化。
模型更新的間隔時間越長,推薦系統的效果越差。
數據從無到有的過程很痛苦。冷啓動,就是從“一無所有”開始推薦。這是一道送命題,能單獨講個三天三夜,就不展開了。
梅長蘇從容不迫地收尾:
“琅琊一卷風雲去,百年風霜歷,江湖次序定。擺脱996的福報就靠一款成熟且方便的產品了。”
聽罷,琅琊閣老們驚拜:“佩服佩服。”
梅長蘇補充了Amazon personalize隱藏的三個暗器。
暗器一
AB測試方便。
新的模型準備上線時,少量流量進行AB測試。
暗器二
推薦模型上線自動化方便。
模型上線時,流量隨時切過去,不對生產系統造成影響。降低模型運營的成本。
暗器三
系統吞吐量(TPS)設置方便。
設置值可以自動併發,不需要有專人再寫擴容程序。
明槍好躲,暗箭難防,
諸位江湖豪傑,
各自珍重,來日再會。
(完)
更多閲讀:
4. 隱私計算:消失的人工智能 “法外之地”
5. 售前,航空母艦,交付,皮划艇:銀行的AI模型上線有多難?
8. “重型卡車自動駕駛,無量產,則無意義”贏徹科技CTO楊睿剛博士觀點

最後,再介紹一下主編自己吧。
我是譚婧,科技和科普題材作者。
為了在時代中發現故事,我圍追科技大神,堵截科技公司。
生命短暫,不走捷徑。
還想看我的文章,就關注“親愛的數據”。
這次分離,
要説再見
