在一個網(wǎng)站或者app中,推薦系統(tǒng)通常會和整個大系統(tǒng)的多個方面有交互,推薦系統(tǒng)本身也有很多的組成部分,再加上整個系統(tǒng)所處的大環(huán)境,綜合起來會有很多因素影響著一個推薦系統(tǒng)最終效果的好壞,這里的效果指的是包括準(zhǔn)確率、召回率、多樣性等等指標(biāo)在內(nèi)的一個整體整體效果,不做具體區(qū)分。在這里我們試對其中一些主要的因素做一討論。需要指出的是,這些因素里面并不是所有的我們都可以左右,但是了解它們究竟是什么對我們開發(fā)和優(yōu)化系統(tǒng)還是非常有用的。
一、用戶因素
與廣告系統(tǒng)需要同時面對用戶和廣告主不同,推薦系統(tǒng)的服務(wù)對象只有一個,那就是用戶,所以用戶的因素很大程度會影響系統(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)品設(shè)計因素
所謂產(chǎn)品設(shè)計因素,指的是推薦出的物品在什么位置、以何種形式展示給用戶。如果說推薦算法是一個人的內(nèi)在,那么產(chǎn)品設(shè)計就是一個人的臉。在現(xiàn)在這個看臉的時代,長得好不好看會很大程度上影響算法能量的釋放程度。最常見的影響效果的外在因素包括但不限于:
圖片的質(zhì)量。互聯(lián)網(wǎng)早已進入讀圖時代,無論任何物品的推薦,例如商品、資訊等,有圖片的吸引力一定是大于無圖片的。而對于都有圖片的情況,圖片的大小和清晰度則會對用戶是否感興趣產(chǎn)生很大影響。除了大小和清晰度這種基礎(chǔ)的質(zhì)量以外,圖片本身傳達出來的信息的質(zhì)量也很關(guān)鍵,例如對于商品的圖片,如果不能在圖片中展示出該商品的主要信息和用戶關(guān)心的內(nèi)容,那么用戶點擊的概率就會大大降低,畢竟大家都很忙,點一下也是有代價的。所以對于C2C市場這樣以用戶自己拍攝的照片為主的場景,引導(dǎo)用戶拍出高質(zhì)量的商品圖片就顯得尤為重要,這個問題上Airbnb自費給房東拍照片的故事已經(jīng)足夠證明其重要性和意義了。
主題的吸引程度。除了圖片以外,以文字形式描述的主題也是非常重要的,畢竟文字還是人們獲取信息的一個主要途徑。在轉(zhuǎn)轉(zhuǎn)平臺上,會有一些偷懶的用戶在文字描述中只寫類似“如圖,私聊”這樣的信息,可想而知這樣的描述競爭力是比較弱的,同時也會讓人覺得賣家對這個商品并不是很上心,所以除非你的商品在其他方面極具競爭力,否則是很難得到轉(zhuǎn)化的。
主題吸引人固然重要,但是過于“頭重腳輕”,只關(guān)注主題質(zhì)量,而忽略物品本身質(zhì)量的話,反而會起到反作用,引起用戶的反感。這里面最典型的例子就是現(xiàn)在充斥屏幕的各種標(biāo)題黨文章了,為了吸引用戶的點擊而在起標(biāo)題上面大做文章,但用戶點進去之后發(fā)現(xiàn)要么文章質(zhì)量低下,要么文不對題,長期以往下去,會對平臺的信譽度產(chǎn)生很大的負面影響,是一種殺雞取卵的做法。
所以說,在文字內(nèi)容描述方面,要盡量信息周全,但也不能背離事實,單純?yōu)榱艘粫r的點擊率,而犧牲了平臺的長遠發(fā)展。
關(guān)鍵信息是否露出。所謂關(guān)鍵信息,指的是能夠左右或影響用戶產(chǎn)生點擊、轉(zhuǎn)化的信息,除了上面提到的圖片和文字描述以外,各個業(yè)務(wù)場景下都有一些有特點的關(guān)鍵信息 ,例如銷量、評論數(shù)等等。一部分是因為這些信息本身就會對用戶的轉(zhuǎn)化產(chǎn)生影響,另一方面,推薦算法在召回或排序時可能用到了這些信息,那么將這些信息展現(xiàn)出來,一定程度上充當(dāng)了推薦解釋的功能。
是否有干擾信息。這個指的是模塊周圍是否有影響用戶注意力的其他內(nèi)容,能否讓用戶比較專心地瀏覽推薦模塊。典型的如一些亮閃閃的廣告或者促銷/活動banner之類的,放在推薦位的旁邊會對用戶的注意力產(chǎn)生不同程度的影響,進而影響轉(zhuǎn)化。如果推薦系統(tǒng)在你的業(yè)務(wù)中是重要的一部分,那么就應(yīng)該給予它足夠?qū)Wⅲ╠edicated)的空間和位置,而盡量不要將其與其他內(nèi)容混在一起。在這個紛繁復(fù)雜的世界里,很多時候,少就是多(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ā)展?fàn)顩r有關(guān),不是我們所能左右的,但數(shù)據(jù)質(zhì)量則不同,是可以通過人為的努力而不斷加強的。所以這里就簡單說一下數(shù)據(jù)質(zhì)量方面常見的可能存在的問題。
關(guān)鍵信息缺失。信息缺失是數(shù)據(jù)質(zhì)量方面最大的問題之一,尤其是影響到算法策略或排序模型的關(guān)鍵信息。例如曝光數(shù)據(jù)中沒有具體曝光位置信息,展現(xiàn)日志中沒有用戶停留時長的信息等等,這些信息的確實會直接導(dǎo)致算法效果的下降,進而影響最終效果。類似這些問題的出現(xiàn),很多時候是因為在最初的數(shù)據(jù)系統(tǒng)建設(shè)時,沒有算法相關(guān)的人員參與,導(dǎo)致沒有把這些相關(guān)信息設(shè)計進去。不過這類問題也相對好解決,只要在發(fā)現(xiàn)有缺失之后盡快補充進去就好了。
數(shù)據(jù)設(shè)計欠佳,使用復(fù)雜。還有一種情況,就是關(guān)鍵信息都有,沒有嚴重缺失,但是數(shù)據(jù)結(jié)構(gòu)或表結(jié)構(gòu)設(shè)計不夠合理,導(dǎo)致獲取一個信息要join多張表,或經(jīng)過復(fù)雜的運算邏輯。這種情況下,雖然關(guān)鍵信息都可以獲取到,但是由于獲取成本高,很有可能在工程實現(xiàn)中被不同程度地做折中,導(dǎo)致數(shù)據(jù)質(zhì)量打折扣,影響最終效果。這類問題的解決方法,從大的思路上來講是要做好算法相關(guān)的數(shù)據(jù)倉庫/數(shù)據(jù)集市建設(shè),使得數(shù)據(jù)的獲取、變動和維護都盡量簡單化,減少數(shù)據(jù)建設(shè)的成本,從而提高數(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)最核心的算法策略部分。算法策略對效果的影響是毋庸置疑的,但是其影響也是多方面的,具體來講,算法可能會從以下幾個方面影響效果。
算法復(fù)雜度影響準(zhǔn)確性。復(fù)雜度越高的算法整體上準(zhǔn)確性較高,無論使用什么具體算法,這個大趨勢整體來說是正確的。例如簡單的排序模型可能干不過非線性模型,連續(xù)值特征有可能干不過離散化后的非線性特征,時序問題上vanilla rnn干不過LSTM等等。在保證數(shù)據(jù)質(zhì)量的前提下,用復(fù)雜度高的模型是一種能夠確保收益的效果提升方式,當(dāng)然前提是算法要與業(yè)務(wù)相契合,不能為了復(fù)雜而復(fù)雜。
算法的穩(wěn)定性影響效果的穩(wěn)定性。我們知道在機器學(xué)習(xí)模型中有一類模型具有低偏差但同時也具有高方差,這里的高方差,指的是在訓(xùn)練出來的模型,在不同的數(shù)據(jù)集上表現(xiàn)差異會比較大,這種現(xiàn)象還有另外一個名字就是過擬合。如果數(shù)據(jù)量足夠大的話,再加上合理的正則化手段,過擬合是比較容易避免的。所以問題更容易出現(xiàn)在數(shù)據(jù)量不足的情況下,在這種情況下,應(yīng)該選擇例如線性模型這樣簡單模型來保證結(jié)果的穩(wěn)定性,甚至可以考慮使用基于規(guī)則的算法來保證穩(wěn)定性。
為什么要關(guān)注結(jié)果的穩(wěn)定性呢?這里的原因和我們在學(xué)習(xí)算法設(shè)計分析時要關(guān)注算法的平均復(fù)雜度是類似的。我們雖然希望得到一個非常準(zhǔn)確的模型,但是更希望這個模型在線上運行時穩(wěn)定的,是可預(yù)期的,不會今天效果好,明天效果差。在實際使用中,無論準(zhǔn)確率如何,都希望穩(wěn)定性是有保證的。
五、工程架構(gòu)因素
最后,我們再來簡單說一下工程架構(gòu)方面的因素。無論什么樣的數(shù)據(jù),什么樣的算法,最終呈獻給用戶之前都需要具體的工程落地,那么這個落地過程中選擇的具體工程架構(gòu)也會對效果產(chǎn)生影響。
效應(yīng)耗時的影響。接口的響應(yīng)速度無疑是工程架構(gòu)對用戶的最直接體現(xiàn),響應(yīng)速度慢肯定會導(dǎo)致用戶的不耐煩,可能就直接流失掉了。要提高速度,通常會有幾類方法,一類是對算法進行優(yōu)化,減少不必要的計算;二是選擇簡單算法;三是使用緩存的思路,只在在線部分進行盡量少的計算,其余的計算都放到離線或近線層去做,減少實時計算的負擔(dān)。
架構(gòu)設(shè)計對問題排查監(jiān)控的影響。老司機們都知道,只能跑不能修的車是肯定不能上路的。同理,推薦系統(tǒng)的整體架構(gòu)設(shè)計要對問題的排查比較友好,能夠在出現(xiàn)問題或者需要驗證猜想的時候能夠快速在系統(tǒng)中進行定位,而不是現(xiàn)加debug信息現(xiàn)上線,導(dǎo)致問題排查過程被拖長。優(yōu)秀的工程師會在系統(tǒng)設(shè)計的時候就給自己留好后路,而不是在出了問題時才臨時抱佛腳。
架構(gòu)設(shè)計對迭代速度的影響。除了響應(yīng)速度這種較為表面的影響以外,整個架構(gòu)的設(shè)計能否支持快速的策略迭代對效果的隱形影響也是極大的。如果整體架構(gòu)比較臃腫,模塊分離不清晰,基礎(chǔ)邏輯缺乏適當(dāng)抽象同一,會導(dǎo)致數(shù)據(jù)和策略的迭代無法快速進行,每迭代一次都要走很復(fù)雜的流程,而且還不能保證正確性。這樣的問題會拖累系統(tǒng)的發(fā)展速度,最終影響效果。
總結(jié)
除了上面提到的因素,還有很多細節(jié)會影響推薦系統(tǒng)的最終效果,所以說我們在提升推薦系統(tǒng)效果時,眼睛不能只盯著一處,而是要具有一定的全局觀,能夠從全局的角度找到當(dāng)前對效果影響最大的是什么,進而進行針對性優(yōu)化。對于那些暫時不能改變的因素,也要做到心里有數(shù),在適當(dāng)?shù)臅r機進行干預(yù)。
End.
作者:張相於
來源:http://www.36dsj.com/archives/100047
本文來源于人人都是產(chǎn)品經(jīng)理合作媒體@36大數(shù)據(jù),作者@張相於
題圖來自PEXELS,基于CC0協(xié)議
從底層到應(yīng)用層,各個方面都說得很清楚,贊