推薦系統的覆蓋率

推薦系統的覆蓋率(coverage),是商品資料庫中可以產生預測或推薦的項目的比率,相對於我們曾經討論過的準確率accuracy),覆蓋率是指推薦系統所能涵蓋的廣度。覆蓋率愈低,消費者透過推薦系統找到「合適」商品的機會也愈低,換言之,促進長尾(long tail)式銷售的機會也愈低(請參考之前推薦系統與長尾的討論)。

過去學者曾經使用過的覆蓋率指標計算方式不只一種,第一種最常見的叫做預測覆蓋率( prediction coverage)。推薦系統在消費者每瀏覽一種商品時,會依據資料庫的內容,以預先設計好的演算法,做出估計和預測,當資料不足,或是受限於演算法能力時,也可能無法產出預估值(這是可能的,cold start 就可能產生這樣的結果)。

預測覆蓋率的計算方式,依照分母定義的不同,又可分成兩種計算方式,一種是可以產生預測品項相對於整個資料庫內容的比率,第二種則是相對於「曾經瀏覽過(表示消費者可能有興趣)」的項目的比率。

當要計算 prediction coverage 時,通常以隨機方式選擇一組 user/item 組合樣本,逐一檢查每個 user/item pair,是否能夠得到預測值。

第二種覆蓋率計算方式,叫做目錄覆蓋率(catalog coverage),計算時將所有曾經被推薦的商品項目除以商品目錄中所有項目的數值,得到的比值,就是 catalog coverage。

我在討論準確率( accuracy)的不足時,舉的第二個例子,就是典型的目錄覆蓋率的情境,這種情況,和 long tail 所追求的方向恰好是背道而馳的。去年(2007)十月初,老貓學出版發表的「好書會自動販賣時代」之消逝一文,也曾經談到這種情況,他談到現在出版業界各式各樣的推薦與行銷動作,其實只是把「火力」放在少數書籍上,與「網路促進長尾」的概念是不符的。

通常覆蓋率不是一個單獨使用的評估指標,它必須搭配準確率(accuracy),或者加上其他指標,才能對推薦系統的能力,作較精準有用的評估。有的學者,甚至直接了當的警告 : this metric distorts if it is not considered in combination with accuracy,換言之,在實務上,結合單純的準確度與覆蓋率,才是比較有用的指標 (accuracy + coverage = practical accuracy)。


推薦閱讀:

Comments

Popular posts from this blog

如何評估推薦系統(一)

備忘:在 Mac OS 環境安裝 Python 開發工具

[詩戀] 鄭愁予/定