機器學習的本質(zhì)是人類學習?5大要素詳解個性化推薦的商業(yè)化之路

最近“人工智能”特別火。“人工智能”的概念雖然很高大上,但從算法角度來說,離技術(shù)算法層自然語言處理(NLP)和應用層內(nèi)容的個性化推薦很近。這些算法之所以能夠得到廣泛地應用,本質(zhì)上是因為機器學習和人類學習很像。本文將從人工智能應用場景中個性化推薦商業(yè)化的五大要素進行詳細探討。
機器學習的原理并不神秘
從人類學習的角度來說,我們教一個小朋友學數(shù)學,我們先要給他一些課本上的例題,讓他知道加減乘除大概是怎么回事;然后給他一本習題集,讓他不斷地去算,去對答案,最終學得四則運算的技能。
在這個過程中,例題和習題就是訓練樣本,通過訓練樣本獲得標準答案的過程,就是“訓練”。“訓練”的最終目的,是要找到一個“目標函數(shù)”。有訓練樣本,通過訓練找到目標函數(shù),這就是機器“學習”的方式,它和人類學習是很相似的。
舉個實際的例子,比如我們的天氣預報系統(tǒng)就是按照這個方式“學習”出來的一個人工智能系統(tǒng)。為了有一個好的預測結(jié)果,我們先要廣泛地采集溫度、濕度、風速、氣壓等各類數(shù)據(jù)和特征,構(gòu)造訓練樣本;然后,根據(jù)之前是否下雨以及降雨量的結(jié)果,得到一個量化的目標函數(shù);接下來,再通過建立一個學習模型并反復糾正完成一套訓練過程,不斷優(yōu)化我們的目標函數(shù),得到盡可能準確的預報結(jié)果。
接下來我們要展開講的個性化推薦算法也是如此。它的實際操作需要克服很多細節(jié)問題,但是其基礎(chǔ)是很容易理解的。
圖一:機器學習簡單示意圖
推薦算法的演進之路
對于一個內(nèi)容提供商,不管是新聞媒體或者是電商,還是文學網(wǎng)站,它們提供給用戶的內(nèi)容總是按照一定指標來做推薦的。
最簡單的方法是單一指標推薦,也叫“熱門推薦”。比如就按點擊量或者銷量來做排序,優(yōu)先推送閱讀人數(shù)最多、購買人數(shù)最多的產(chǎn)品。各種類型的“熱搜”“熱銷”類榜單就是如此。采用單一指標推薦最大的問題,是沒有“個性化”。沒有“個性化”會導致兩個顯著的后果——首先是體驗相對較差,用戶內(nèi)心深處“想要變得不同”的需求沒有被激發(fā)出來;另外一個問題,就是馬太效應明顯,本身得到曝光的產(chǎn)品會持續(xù)得到曝光,而處于長尾上的商品則持續(xù)得不到曝光,等于大量質(zhì)量不錯的產(chǎn)品或內(nèi)容其實被閑置了。
圖二:傳統(tǒng)排行榜的邏輯
為了解決這兩個問題,出現(xiàn)了兩種針對性的方案,即基于用戶(user)信息和物品(item)信息分別來做推薦。
根據(jù)物品信息來做推薦,關(guān)鍵是對物品的基本屬性、類別、標簽等進行標注,通過對物品信息的深度分析,為用戶推薦和他之前瀏覽記錄相似的物品。在這個過程中,要推薦的物品的形態(tài)是清楚了,但用戶的畫像仍然是模糊的。
根據(jù)用戶信息來做推薦,關(guān)鍵是根據(jù)用戶的行為日志來刻畫他的偏好。通過對用戶喜歡點什么,來為這個用戶建立他的偏好模型,然后向他推送他偏好的那些內(nèi)容。在這個過程中,用戶畫像是有些清晰了,但是用戶仍然是個體化的,不同用戶之間的相似性、用戶行為的社會性并沒有得到比較好的體現(xiàn),推薦的精度也并沒有一個很好的提升。
針對這些問題,出現(xiàn)了“協(xié)同過濾”的算法。協(xié)同過濾算法的核心是利用群體智慧。具體來講,分為基于物品的協(xié)同過濾和基于用戶的協(xié)同過濾。舉例來說,基于物品的協(xié)同過濾的思路,是說在一大群人中,我們發(fā)現(xiàn)看劉德華的人很多都會看張學友,這說明張學友和劉德華有相似度,那以后碰到點擊劉德華的人,我們可以為他推薦張學友。而基于用戶的協(xié)同過濾是說,在一大群人中,我們發(fā)現(xiàn)A和B兩個人都喜歡看好萊塢大片,比如他們都看了變形金剛、木乃伊、神奇女俠,這說明A和B是同好中人,后面用戶A又看了加勒比海盜,那就可以把加勒比海盜也推薦給B。
在商業(yè)實戰(zhàn)中,協(xié)同過濾通常會和對物品以及用戶的深度分析相結(jié)合,并進行進一步的模型融合,從而得到一個精準度更高的效果。比如基于物品的協(xié)同過濾在Amazon、Netflix等網(wǎng)站中成功應用,能為用戶推薦同領(lǐng)域的更深入的結(jié)果;而基于用戶的協(xié)同過濾則傾向于推薦范圍更寬泛而熱門的內(nèi)容,在特定場景下運用,能實現(xiàn)跨領(lǐng)域、令人耳目一新的結(jié)果。
圖三:協(xié)同過濾示意圖
除了協(xié)同過濾,隱語義模型的廣泛應用也是一個重要的技術(shù)突破。以前傳統(tǒng)的分析方式分為兩步,第一步是對用戶打標簽,比如“15-20歲,男性”;有了這個標簽,第二步是根據(jù)這些標簽來映射到結(jié)果。這兩步都存在一些“硬傷”。首先,根據(jù)用戶信息打出的標簽不一定準確,比如用戶填的注冊年齡,不一定是真實的年齡;其次,通過標簽來對其偏好的物品進行映射,準確度也不高。比如男性中確實很大部分喜歡體育類內(nèi)容,但是所有男性都要給他們推送體育類內(nèi)容嗎?這樣的推薦精準度是比較差的。隱語義模型的核心,是超越這些表層語義標簽的維度,通過機器學習技術(shù),挖掘用戶行為中更深層的潛在關(guān)聯(lián),從而避免人工貼標簽粗放、主觀的缺點,使得推薦精準度更高。
協(xié)同過濾和隱語義模型已經(jīng)應用在越來越多的商業(yè)場景中。不過,對于一個成功的算法來說,僅僅明確其模型基礎(chǔ)是不夠的,還必須要具備下面所說的這些重要優(yōu)點。
五大要素缺一不可
從整個行業(yè)的實踐來看,有五個要素至關(guān)重要,即自我進化、快速建模、模型融合、開放架構(gòu)以及性能/效果/資源的良好平衡。具備這五個要素的算法,才能有效應對海量實時數(shù)據(jù)的吞吐,并高效持續(xù)地進行運轉(zhuǎn)。
自我進化
一個推薦系統(tǒng)要長期運行,首先要解決的就是自我進化的問題。用戶的興趣、物品的價值以及用戶數(shù)據(jù)的時效性都會隨著時間的推延而變化。用戶的興趣有長期和短期的興趣,曾經(jīng)的短期興趣并不能對預測其未來行為提供很好的參考;物品的價值也有它的高峰期和平原期,現(xiàn)在賣得好的產(chǎn)品未必以后也賣得好,反之亦然。
圖四:用戶長短期興趣圖
以前針對用戶興趣、物品價值的變化,通常是用人工設定規(guī)則的方法來加以應對。隨著數(shù)據(jù)量呈幾何級的增長,人工設定規(guī)則繁瑣且低效的弱點越來越明顯。人工設定100條、1000條規(guī)則可能還行,但是100萬、1000萬條規(guī)則呢?根本不可行。與之相比,通過算法設計,驅(qū)動推薦系統(tǒng)不斷進行自我進化,不但更可行,而且更精準高效。
快速建模
在信息的洪流裹挾下,用戶在每個平臺停留的時間是很有限的,這就要求推薦系統(tǒng)必須根據(jù)這很短的停留時間內(nèi)用戶的行為數(shù)據(jù),快速地捕捉其興趣,為其建立和更新興趣模型,從而迅速為其推薦個性化的內(nèi)容。
對于新用戶來說,這個問題特別明顯,業(yè)界稱之為“冷啟動”問題。解決冷啟動問題,從完全空白到建立起一個可以提供有效參考的用戶模型通常需要幾天。這個漫長的周期在實際的商業(yè)化過程中是很致命的。很難想象一個用戶如果沒有在首次瀏覽時獲得滿意印象后以后仍會經(jīng)常來光顧。
要解決冷啟動問題,有很多種方案,比如可以通過外部信息,如IP地址,注冊信息等來完善用戶的標簽體系。但更重要的是,我們可以選擇那些接受度比較高、同時又能代表細分領(lǐng)域的物品來測試用戶的興趣點。如何選擇這些物品,以確保能快速地明確用戶興趣,是問題的核心。一個能快速捕捉到用戶興趣的推薦系統(tǒng),是確保用戶留存、提升用戶轉(zhuǎn)化率的重要因素。
模型融合
前面講協(xié)同過濾時我們已經(jīng)提到,商用的推薦算法中都融合了多套算法,以獲得更佳的效果。在機器學習領(lǐng)域,每一個單一算法都是針對一類特定的問題,因而針對同一個推薦任務,不同的算法效果相差很大。但是,實踐中的推薦任務千差萬別,每個任務適應的算法往往并不相同,在這種情況下,將多個算法的預測結(jié)果進行融合,往往能取得10%以上的優(yōu)化效果。
模型融合的出發(fā)點是想建立一個通用性更強的解決方案,以期用一個較一般的算法模型,來為盡可能多的任務提供支持。如何盡量兼顧“通用性”和“優(yōu)化效果”,是在進行模型融合過程中需要考慮的關(guān)鍵。在實踐中,我們開發(fā)出的獨有專利的雙層疊加算法模型就是這方面的一個典型案例,現(xiàn)在已經(jīng)成為我們向客戶提供推薦服務的技術(shù)基礎(chǔ)。
開放架構(gòu)
從推薦算法發(fā)展的歷史來看,新的算法始終在不斷的涌現(xiàn),尤其是隨著深度學習興起之后,各種新興算法更是層出不窮,包括強化學習、遷移學習等新方法、新領(lǐng)域都開始受到越來越多的關(guān)注。
對于一個優(yōu)秀的推薦系統(tǒng)來說,即使現(xiàn)在的推薦效果已經(jīng)相當好,但必須對新興算法也持有海納百川、兼容并蓄的態(tài)度,才能不斷地進一步優(yōu)化提升自己。要做到這樣的理想狀態(tài),整個系統(tǒng)架構(gòu)的開放性是至關(guān)重要的。比如我原來是采用協(xié)同過濾來做推薦的,現(xiàn)在要接入深度學習的算法,怎樣才能保證我原來的系統(tǒng)仍然高效穩(wěn)定的運行?如果是見獵心喜,跟風趕潮流地接入新算法,會有很大風險,系統(tǒng)的效率和穩(wěn)定性可能都會打折扣。如何解決這個問題,是我們在做架構(gòu)設計的時候一開始就該有所考慮的。
性能/效果/資源的良好平衡
和以前相比,現(xiàn)在的數(shù)據(jù)量的增長可以說是爆炸式的。用戶數(shù)、商品數(shù)的急劇增長,隨之而來的是為他們建立的模型的數(shù)量呈現(xiàn)幾何級增長——每個用戶不僅有長期興趣模型還有短期興趣模型,每個商品也要建立時效性變化的模型,而且在高并發(fā)的場景下,所有這些事情都需要在極短的時間內(nèi)完成,但是運算所需的硬件資源卻是有限的,這時候就需要在資源消耗和運算效果中找到一個平衡。
比如大家都知道分布式計算是解決海量數(shù)據(jù)運算的一個解決方案,但是分布式數(shù)據(jù)很難滿足時效性方面的要求。要滿足時效性的需求,很重要的一點就是要簡化模型,去掉不必要的用戶特征,從而降低運算量,并同時緩解存儲資源緊張的問題。但是,降低了運算量之后,會不會對推薦效果產(chǎn)生消極影響?如何平衡好運算量和推薦效果,這也是一個大課題。
圖五:三層火箭模型
在實際中,我們的操作方式是,專門抽取出高價值的用戶和物品,讓它們享受更復雜的算法和更快的更新頻率,同時構(gòu)建“三級火箭”的算法體系。“三級火箭”的核心思想是,按照離線、近線、在線這三個步驟,將一整套推薦算法拆分成三個部分。比如,對海量用戶日志進行深入挖掘完全可以獨立進行,可以離線進行操作;Cache、Model的及時更新、迅速捕捉用戶點擊反饋以及一些較輕量級的推薦算法的運行可以在近線部分進行完成;在線部分則負責及時響應請求并返回結(jié)果,保證高可靠高并發(fā)的能力。在算法設計中應用類似的思路,可以分攤運算壓力,提升運算效率。
作者:紀達麒,達觀數(shù)據(jù)CTO,中國計算機學會(CCF)會員。曾經(jīng)擔任騰訊文學數(shù)據(jù)中心高級專家、盛大文學技術(shù)總監(jiān),負責百度、搜狗廣告系統(tǒng)研發(fā)工作,在中國一線互聯(lián)網(wǎng)公司中承擔個性化推薦系統(tǒng)、在線廣告系統(tǒng)等核心技術(shù)研發(fā)十余年。其代表公司多次參加國際數(shù)據(jù)挖掘競賽,是ACM KDD-Cup,CIKM Competition等世界一流數(shù)據(jù)挖掘競賽獲冠軍,所開發(fā)的個性化推薦系統(tǒng)曾創(chuàng)造了上線后效果提升300%的記錄。
? ?
求報道、意見反饋、調(diào)戲 ??小秘書 “佳佳”? 請加微信:
微信掃描下面二維碼,關(guān)注 加速會微信公號,成長快人一步!
如果你在創(chuàng)業(yè), 想認識更多的創(chuàng)始人,彼此學習、資源共享 ,請掃描下面二維碼加入 : 創(chuàng)始人通訊社群 !
如果你在職場,想 認識更多媒體圈朋友(編輯/記者、市場、公關(guān)、媒介、品牌) 請掃描下面二維碼加入: 媒體圈通訊社群 !