淺談影響推薦系統(tǒng)效果的一些因素

大數(shù)據(jù)

作者:張相於

在一個網(wǎng)站或者app中,推薦系統(tǒng)通常會和整個大系統(tǒng)的多個方面有交互,推薦系統(tǒng)本身也有很多的組成部分,再加上整個系統(tǒng)所處的大環(huán)境,綜合起來會有很多因素影響著一個推薦系統(tǒng)最終效果的好壞,這里的效果指的是包括準確率、召回率、多樣性等等指標在內(nèi)的一個整體整體效果,不做具體區(qū)分。在這里我們試對其中一些主要的因素做一討論。需要指出的是,這些因素里面并不是所有的我們都可以左右,但是了解它們究竟是什么對我們開發(fā)和優(yōu)化系統(tǒng)還是非常有用的。

用戶因素

與廣告系統(tǒng)需要同時面對用戶和廣告主不同,推薦系統(tǒng)的服務對象只有一個,那就是用戶,所以用戶的因素很大程度會影響系統(tǒng)的效果。具體來講,系統(tǒng)中新用戶和老用戶的比例可以說是對效果影響最大的因素之一。大家知道推薦系統(tǒng)是高度依賴用戶行為的,而對于無任何行為或者行為非常少的新用戶,效果肯定是不會太好的,所以整個系統(tǒng)中新用戶的比例越高,系統(tǒng)的整體表現(xiàn)就會越差。

這就是一個典型的推薦系統(tǒng)本身無法左右的因素,而是需要整個系統(tǒng)共同努力來解決。對于這個問題,有兩種解決思路:一種是努力優(yōu)化推薦系統(tǒng)的冷啟動算法,這種方法肯定會有效,但是其天花板也是非常低的;而另一種方法,是努力將平臺上的新用戶轉(zhuǎn)化為老用戶,也就是說努力讓他們與平臺多交互,產(chǎn)生行為,從而脫離冷啟動的階段。這兩種方法相比,可能第二種的效果要更好,這主要是因為冷啟動算法的優(yōu)化空間實在有限,而將其轉(zhuǎn)為“熱”用戶之后,各種優(yōu)化策略就都可以派上用場了。這也是一種可以在多種場景下借鑒的思路:將未知問題轉(zhuǎn)化為已知問題,而不是創(chuàng)造新問題。

產(chǎn)品設計因素

所謂產(chǎn)品設計因素,指的是推薦出的物品在什么位置、以何種形式展示給用戶。如果說推薦算法是一個人的內(nèi)在,那么產(chǎn)品設計就是一個人的臉。在現(xiàn)在這個看臉的時代,長得好不好看會很大程度上影響算法能量的釋放程度。最常見的影響效果的外在因素包括但不限于:

圖片的質(zhì)量。互聯(lián)網(wǎng)早已進入讀圖時代,無論任何物品的推薦,例如商品、資訊等,有圖片的吸引力一定是大于無圖片的。而對于都有圖片的情況,圖片的大小和清晰度則會對用戶是否感興趣產(chǎn)生很大影響。除了大小和清晰度這種基礎的質(zhì)量以外,圖片本身傳達出來的信息的質(zhì)量也很關鍵,例如對于商品的圖片,如果不能在圖片中展示出該商品的主要信息和用戶關心的內(nèi)容,那么用戶點擊的概率就會大大降低,畢竟大家都很忙,點一下也是有代價的。所以對于C2C市場這樣以用戶自己拍攝的照片為主的場景,引導用戶拍出高質(zhì)量的商品圖片就顯得尤為重要,這個問題上Airbnb自費給房東拍照片的故事已經(jīng)足夠證明其重要性和意義了。

主題的吸引程度。除了圖片以外,以文字形式描述的主題也是非常重要的,畢竟文字還是人們獲取信息的一個主要途徑。在轉(zhuǎn)轉(zhuǎn)平臺上,會有一些偷懶的用戶在文字描述中只寫類似“如圖,私聊”這樣的信息,可想而知這樣的描述競爭力是比較弱的,同時也會讓人覺得賣家對這個商品并不是很上心,所以除非你的商品在其他方面極具競爭力,否則是很難得到轉(zhuǎn)化的。

主題吸引人固然重要,但是過于“頭重腳輕”,只關注主題質(zhì)量,而忽略物品本身質(zhì)量的話,反而會起到反作用,引起用戶的反感。這里面最典型的例子就是現(xiàn)在充斥屏幕的各種標題黨文章了,為了吸引用戶的點擊而在起標題上面大做文章,但用戶點進去之后發(fā)現(xiàn)要么文章質(zhì)量低下,要么文不對題,長期以往下去,會對平臺的信譽度產(chǎn)生很大的負面影響,是一種殺雞取卵的做法。

所以說,在文字內(nèi)容描述方面,要盡量信息周全,但也不能背離事實,單純?yōu)榱艘粫r的點擊率,而犧牲了平臺的長遠發(fā)展。

關鍵信息是否露出。所謂關鍵信息,指的是能夠左右或影響用戶產(chǎn)生點擊、轉(zhuǎn)化的信息,除了上面提到的圖片和文字描述以外,各個業(yè)務場景下都有一些有特點的關鍵信息 ,例如銷量、評論數(shù)等等。一部分是因為這些信息本身就會對用戶的轉(zhuǎn)化產(chǎn)生影響,另一方面,推薦算法在召回或排序時可能用到了這些信息,那么將這些信息展現(xiàn)出來,一定程度上充當了推薦解釋的功能。

是否有干擾信息。這個指的是模塊周圍是否有影響用戶注意力的其他內(nèi)容,能否讓用戶比較專心地瀏覽推薦模塊。典型的如一些亮閃閃的廣告或者促銷/活動banner之類的,放在推薦位的旁邊會對用戶的注意力產(chǎn)生不同程度的影響,進而影響轉(zhuǎn)化。如果推薦系統(tǒng)在你的業(yè)務中是重要的一部分,那么就應該給予它足夠?qū)Wⅲ╠edicated)的空間和位置,而盡量不要將其與其他內(nèi)容混在一起。在這個紛繁復雜的世界里,很多時候,少就是多(less is more)。

數(shù)據(jù)因素

推薦系統(tǒng)是典型算法驅(qū)動的系統(tǒng),而如果說算法是系統(tǒng)的骨架,那么數(shù)據(jù)就是系統(tǒng)的血液。如果數(shù)據(jù)質(zhì)量和數(shù)量不夠,那么任何算法的效果都會打折扣。數(shù)據(jù)的數(shù)量不足是很容易理解的,而且數(shù)據(jù)量是否充足很多時候和整個網(wǎng)站或APP的發(fā)展狀況有關,不是我們所能左右的,但數(shù)據(jù)質(zhì)量則不同,是可以通過人為的努力而不斷加強的。所以這里就簡單說一下數(shù)據(jù)質(zhì)量方面常見的可能存在的問題。

關鍵信息缺失。信息缺失是數(shù)據(jù)質(zhì)量方面最大的問題之一,尤其是影響到算法策略或排序模型的關鍵信息。例如曝光數(shù)據(jù)中沒有具體曝光位置信息,展現(xiàn)日志中沒有用戶停留時長的信息等等,這些信息的確實會直接導致算法效果的下降,進而影響最終效果。類似這些問題的出現(xiàn),很多時候是因為在最初的數(shù)據(jù)系統(tǒng)建設時,沒有算法相關的人員參與,導致沒有把這些相關信息設計進去。不過這類問題也相對好解決,只要在發(fā)現(xiàn)有缺失之后盡快補充進去就好了。

數(shù)據(jù)設計欠佳,使用復雜。還有一種情況,就是關鍵信息都有,沒有嚴重缺失,但是數(shù)據(jù)結(jié)構或表結(jié)構設計不夠合理,導致獲取一個信息要join多張表,或經(jīng)過復雜的運算邏輯。這種情況下,雖然關鍵信息都可以獲取到,但是由于獲取成本高,很有可能在工程實現(xiàn)中被不同程度地做折中,導致數(shù)據(jù)質(zhì)量打折扣,影響最終效果。這類問題的解決方法,從大的思路上來講是要做好算法相關的數(shù)據(jù)倉庫/數(shù)據(jù)集市建設,使得數(shù)據(jù)的獲取、變動和維護都盡量簡單化,減少數(shù)據(jù)建設的成本,從而提高數(shù)據(jù)的使用效率。

推薦系統(tǒng)使用到的數(shù)據(jù)通常是整個網(wǎng)站的數(shù)據(jù)系統(tǒng)中的一個子集,所以這部分數(shù)據(jù)質(zhì)量的把控需要推薦系統(tǒng)的開發(fā)人員和數(shù)據(jù)系統(tǒng)的開發(fā)人員共同的努力,才能保證數(shù)據(jù)的可用性和易用性。

算法策略因素

上面說了這么多,終于說到了推薦系統(tǒng)最核心的算法策略部分。算法策略對效果的影響是毋庸置疑的,但是其影響也是多方面的,具體來講,算法可能會從以下幾個方面影響效果。

算法復雜度影響準確性。復雜度越高的算法整體上準確性較高,無論使用什么具體算法,這個大趨勢整體來說是正確的。例如簡單的排序模型可能干不過非線性模型,連續(xù)值特征有可能干不過離散化后的非線性特征,時序問題上vanilla rnn干不過LSTM等等。在保證數(shù)據(jù)質(zhì)量的前提下,用復雜度高的模型是一種能夠確保收益的效果提升方式,當然前提是算法要與業(yè)務相契合,不能為了復雜而復雜。

算法的穩(wěn)定性影響效果的穩(wěn)定性。我們知道在機器學習模型中有一類模型具有低偏差但同時也具有高方差,這里的高方差,指的是在訓練出來的模型,在不同的數(shù)據(jù)集上表現(xiàn)差異會比較大,這種現(xiàn)象還有另外一個名字就是過擬合。如果數(shù)據(jù)量足夠大的話,再加上合理的正則化手段,過擬合是比較容易避免的。所以問題更容易出現(xiàn)在數(shù)據(jù)量不足的情況下,在這種情況下,應該選擇例如線性模型這樣簡單模型來保證結(jié)果的穩(wěn)定性,甚至可以考慮使用基于規(guī)則的算法來保證穩(wěn)定性。

為什么要關注結(jié)果的穩(wěn)定性呢?這里的原因和我們在學習算法設計分析時要關注算法的平均復雜度是類似的。我們雖然希望得到一個非常準確的模型,但是更希望這個模型在線上運行時穩(wěn)定的,是可預期的,不會今天效果好,明天效果差。在實際使用中,無論準確率如何,都希望穩(wěn)定性是有保證的。

工程架構因素

最后,我們再來簡單說一下工程架構方面的因素。無論什么樣的數(shù)據(jù),什么樣的算法,最終呈獻給用戶之前都需要具體的工程落地,那么這個落地過程中選擇的具體工程架構也會對效果產(chǎn)生影響。

效應耗時的影響。接口的響應速度無疑是工程架構對用戶的最直接體現(xiàn),響應速度慢肯定會導致用戶的不耐煩,可能就直接流失掉了。要提高速度,通常會有幾類方法,一類是對算法進行優(yōu)化,減少不必要的計算;二是選擇簡單算法;三是使用緩存的思路,只在在線部分進行盡量少的計算,其余的計算都放到離線或近線層去做,減少實時計算的負擔。

架構設計對問題排查監(jiān)控的影響。老司機們都知道,只能跑不能修的車是肯定不能上路的。同理,推薦系統(tǒng)的整體架構設計要對問題的排查比較友好,能夠在出現(xiàn)問題或者需要驗證猜想的時候能夠快速在系統(tǒng)中進行定位,而不是現(xiàn)加debug信息現(xiàn)上線,導致問題排查過程被拖長。優(yōu)秀的工程師會在系統(tǒng)設計的時候就給自己留好后路,而不是在出了問題時才臨時抱佛腳。

架構設計對迭代速度的影響。除了響應速度這種較為表面的影響以外,整個架構的設計能否支持快速的策略迭代對效果的隱形影響也是極大的。如果整體架構比較臃腫,模塊分離不清晰,基礎邏輯缺乏適當抽象同一,會導致數(shù)據(jù)和策略的迭代無法快速進行,每迭代一次都要走很復雜的流程,而且還不能保證正確性。這樣的問題會拖累系統(tǒng)的發(fā)展速度,最終影響效果。

總結(jié)

除了上面提到的因素,還有很多細節(jié)會影響推薦系統(tǒng)的最終效果,所以說我們在提升推薦系統(tǒng)效果時,眼睛不能只盯著一處,而是要具有一定的全局觀,能夠從全局的角度找到當前對效果影響最大的是什么,進而進行針對性優(yōu)化。對于那些暫時不能改變的因素,也要做到心里有數(shù),在適當?shù)臅r機進行干預。

極客網(wǎng)企業(yè)會員

免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權或存在不實內(nèi)容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內(nèi)容或斷開相關鏈接。

2017-10-23
淺談影響推薦系統(tǒng)效果的一些因素
作者:張相於 在一個網(wǎng)站或者app中,推薦系統(tǒng)通常會和整個大系統(tǒng)的多個方面有交互,推薦系統(tǒng)本身也有很多的組成部分,再加上整個系統(tǒng)所處的大環(huán)境,綜合起來會有很多

長按掃碼 閱讀全文