推薦算法是一個很有意思的人工智能(artificial intelligence)。想想看,計算機(jī)能夠根據(jù)大數(shù)據(jù)較為精確地了解人們的喜好、預(yù)測可能的結(jié)果,那如果輸入人類的表情、內(nèi)心與行為方式給機(jī)器人,它是不是也就能像人一樣進(jìn)行思考和對話呢?目前的科技已部分地完成了這種可能。下面想介紹下我個人對推薦算法的淺薄之見,也是一個深入學(xué)習(xí)、認(rèn)真思考的開篇。
推薦算法的Base可以分三類:用戶性質(zhì)、對象性質(zhì)、用戶與對象的交互過程。用網(wǎng)上的話來說,就是以人為本、以物為本和協(xié)同過濾(即“聯(lián)動”)。這三類算法并不會孤立存在,一般會交錯切換或者加權(quán)共生,意思就是會綜合起來使用或者在不同場景使用不同方法。我把它們單一的存在,稱為“一度推薦”;綜合在一起時,稱為“二度推薦”。
說說“一度推薦”。
第一類叫基于用戶性質(zhì)的推薦,可以說是用戶與用戶的交互過程,具體來說,就是根據(jù)用戶的label、喜好等個性來建立一個“同好會”,同好會也有分層,低層的只對應(yīng)一個關(guān)鍵字詞(tag),高層的會對應(yīng)多個tag,故每個用戶會有N個同好會,越高層聯(lián)系越緊密。在推薦的時候,根據(jù)分層高低來進(jìn)行前后排序。說白了,高層產(chǎn)生于低層,低層只是質(zhì)變之前的量變,可以不作他用。
第二類叫基于對象性質(zhì)的推薦,可以說是對象與對象的交互過程,根據(jù)對象(產(chǎn)品/內(nèi)容)的本身相似度進(jìn)行同類推薦,這就包括作用、場景、品牌、價格、目標(biāo)用戶、label等tag,在用戶搜索瀏覽某些tag時,系統(tǒng)會據(jù)此來進(jìn)行相應(yīng)推薦,推薦排序可以是以加權(quán)算法計算的相似度高低。例如,A與B-Z均有關(guān)聯(lián),但要做推薦,那么簡化版的計算公式為相似度=tag1*權(quán)重1+tag2*權(quán)重2+...+tagN*權(quán)重N,所得結(jié)果按高低排序。
第三類叫用戶與對象的交互過程,根據(jù)用戶顯式或隱式的行為,比如搜索、瀏覽、關(guān)注、收藏、分享、下載、評價等加強(qiáng)的行為,或者取關(guān)、刪除、拉黑、秒關(guān)等減弱的行為,還有關(guān)系傳遞(同類用戶也看過B、買物品A的人80%的也買了B)。其中,根據(jù)用戶不同的行為及展現(xiàn)出的喜好的強(qiáng)弱,進(jìn)行權(quán)重的加減。另外我想到的用戶二次行為,也要加入到運(yùn)算中,比如推薦后主動瀏覽、多次瀏覽等。除了這些用戶行為,系統(tǒng)也可以進(jìn)行預(yù)測型行為來進(jìn)一步提高推薦準(zhǔn)確度,比如消息推送后點(diǎn)開鏈接、“換一組”的tag等。此類算法有幾個經(jīng)典的,例如余弦相似度、泊松相關(guān)系數(shù)等,稍后會一一說明。
這里有幾種最主要的推薦算法供大家了解,因?yàn)樾【帞?shù)學(xué)一般,不能很深入了解,故寫得較簡略。
一、余弦相似度和修正余弦相似度,公式如下:
將向量根據(jù)坐標(biāo)值,繪制到向量空間中,求得他們的夾角,并得出夾角對應(yīng)的余弦值。余弦值的范圍在[-1,1]之間,值越趨近于1,代表夾角越小,兩個向量的方向越一致,相似度也越高。
修正余弦相似度是為了加入取關(guān)、刪除、低評價等影響相似度的用戶反向行為,也算是對余弦相似度缺點(diǎn)的修正
二、潛在因子(Latent Factor)算法
用戶-潛在因子矩陣Q(用戶多個tag的關(guān)注喜愛度)和對象-潛在因子矩陣P(對象多個tag的關(guān)聯(lián)包含度),用矩陣表示即為:R=QP,也是值高者勝。
三、Pearson相關(guān)系數(shù)
是用來衡量兩個數(shù)據(jù)集合是否在一條線上面,它用來衡量定距變量間的線性關(guān)系,公式如下:
通常情況下通過以下取值范圍判斷變量的相關(guān)強(qiáng)度:
0.8-1.0極強(qiáng)相關(guān)
0.6-0.8強(qiáng)相關(guān)
0.4-0.6中等程度相關(guān)
0.2-0.4弱相關(guān)
0.0-0.2極弱相關(guān)或無相關(guān)
四、其他
除了以上三類以外,還有一種我覺得特別有意思的推薦算法,可以稱為互動型的生態(tài)圈,也就是UGC和官網(wǎng)的聯(lián)動推薦。
用戶可以自行建立電臺、社區(qū)等個性化“文件夾”,進(jìn)行用戶之間的相互推薦,這可以應(yīng)用于電商、娛樂型產(chǎn)品。
具體的方式可以是基于用戶之間的關(guān)聯(lián),推薦同類用戶的個人“文件夾”;基于對象之間的關(guān)聯(lián),推薦含有相同tag的個人“文件夾”,鼓勵和引導(dǎo)用戶貢獻(xiàn)內(nèi)容,加強(qiáng)社交屬性,增強(qiáng)用戶歸屬感和成就感,增加用戶黏性,這種知乎就做得很好,雖然不至于主動推薦,但專為用戶開放一個入口,可以接觸到可能感興趣的他人“文件夾”。
出現(xiàn)的疑問一:如何避免推薦的單一化?解決方式可以是推薦用戶沒有加強(qiáng)或減弱行為下的tag,進(jìn)行熱門推薦、換一組形式的tag。在推薦比例上,遵循推薦數(shù)量為強(qiáng)關(guān)聯(lián):中等關(guān)聯(lián):弱關(guān)聯(lián)=4:2:1,。
出現(xiàn)的疑問二:如何解決用戶冷啟動的問題?解決方式可以是排行榜、熱門推薦等,也可以在最初讓用戶選擇tag和拒絕部分tag,進(jìn)行初步推薦,在后續(xù)用戶行為增加后再進(jìn)行精細(xì)化推薦。
以上是從個人興趣點(diǎn)出發(fā),僅為拙見。我的公眾號是:亂入花間化綠葉,是我的生活和成長空間,歡迎關(guān)注和。