什么是好的推薦系統(tǒng)
推薦系統(tǒng)一般有兩種:一種是預(yù)測用戶評分,另外是給出TopN,但后者會更頻繁更有用。因為預(yù)測分?jǐn)?shù)并不能怎么樣。“重點是他看了,而不是評價”。下面都以TopN為主。
衡量推薦系統(tǒng)有四個基本指標(biāo):
準(zhǔn)確率:
召回率:
覆蓋率:對長尾物品的挖掘能力,所有用戶的推薦總列表,占所有商品的比例,可以看出,K越大,覆蓋率一定越高
流行度:
更高級別的:
新穎度: 這會讓人眼前一亮,但很難通過離線計算獲得,通常都用用戶問卷。
現(xiàn)在主流推薦算法都有馬太效應(yīng):強者越強,弱者越弱,會造成基尼系數(shù)的進(jìn)一步提升。
距離和基于圖的算法
基于距離的算法
用戶購買的物品,可以記做矩陣。就有了ItemCF和UserCF,即常用的協(xié)同過濾。簡單說,購買了相似物品的用戶越相似,被用戶同時購買的商品更相似。
對大部分東西的熱度曲線,都呈現(xiàn)長尾效應(yīng):指數(shù)曲線。占20%的物品占據(jù)了80%的流量。越是重度用戶,越會關(guān)心那些冷門的信息。
UserCF的推薦更社會化, 反映了用戶在小型團體中興趣的程度;和自己相似的人喜歡的,自己也喜歡。 ItemCF的推薦更個性化,反映了用戶自己的興趣:一定會喜歡購買類似的商品。
算法看似簡單,但都有共同的問題,比如物品和物品是不同的,新華字典的信息量肯定沒有《機器學(xué)習(xí)》來得大;人和人也是不同的,一個書商購書行為,也和普通的文藝青年有所區(qū)別。因此,需要特別去調(diào)整頻繁用戶/物品的權(quán)重,避免污染整個數(shù)據(jù)集。
另外,如果物品特別多或更新頻繁,就去更新用戶矩陣。而若用戶特別多,則可用物品矩陣。簡而言之,沒有最合適的方法,都需要根據(jù)具體業(yè)務(wù)場景來定義規(guī)則。
K值越大,需要考慮的用戶和商品就越多,顯然,對UserCF,可以提升覆蓋率,但不一定能提升召回。對ItemCF, K越大會降低覆蓋率(為什么?)。
選擇一個合適的K很重要。ItemCF的好處是其可解釋性。
基于隱語義的算法
簡單說,如果用戶之前喜歡科技類書籍,那么就可以給他打標(biāo)簽,科技,之后即可推薦科技類書籍。
但問題是:
不是所有的書籍都有準(zhǔn)確的分類,比如數(shù)學(xué)or計算機
分類很難提供準(zhǔn)確的粗細(xì)粒度
甚至不一定有合適的分類標(biāo)簽
這就是隱語義,可以通過類似聚類的方法,將Item做分類,但標(biāo)簽不一定是可解釋的,也就是所謂的“隱”,即LFM。
LFM通過如下公式計算用戶對某個商品的興趣:
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式