1. 程式人生 > >推薦系統中的使用者偏好

推薦系統中的使用者偏好

引言

在推薦系統中,一個核心的問題就是對使用者的偏好建模。所謂的使用者偏好就是指使用者對物品(可能是音樂,電影,商品等)的喜好程度。如何根據已有的使用者行為和資訊,準確地對使用者偏好進行預測是一個很重要的問題。

使用者偏好模型

如圖所示,我們可以利用使用者的行為資訊對其偏好進行建模。可以把這些資訊分為顯式(explicit)行為和隱式(implict)行為。顯式行為包括:評分,評論,投票等;隱式行為包括:點選,購買,關注(Follow)等。本文主要對顯式行為中的評分進行討論,總結並得出評分行為的常見應用和問題。

星級評分

星級評分是最常見的評分應用。在應用時,可以做一些決策讓評分系統有些變化,比如評分總共分為幾星,常見的有5,7,10星;或者是否允許半星評分;亦或是評分是是否需要給出額外的資訊,比如為什麼給出這樣的評分。下圖分別是goodReads和Amazon的評分系統示例。

goodReads
goodReads

Amzon

獲得使用者偏好的方法

點贊

點贊一般有幾種形式,比如投票頂或者踩(Vote up/down),或者只能點贊不能踩。一般來說,點贊機制一般用於一些時效性很強的物品中,比如:

  • 新聞(Reddit,Digg)
  • 問答社群(StackOverflow)
  • YouTube

點贊機制的好處在於花費少,使用者願意進行評分。

其他方法

  • 連續值的評分(比如1~100分)
  • 配對評分(詢問使用者相對於物品A是否更喜歡物品B)
  • 混合機制(比如1~100分 加上 再也不想看到這個推薦的選項)
  • 短暫偏好(比如 Pandora中可以選擇30天不想聽這首歌,之後這首歌就會排在三十天後的佇列中)

什麼時候獲取使用者偏好

  • 以評分為例,我們應當要求使用者給我們的物品進行評分呢?這裡一般有這幾種情況:

  • 使用者使用完物品後一段時間要求評分。此時的評分會受到使用者記憶的影響。

  • 沒有使用過物品的評分。這種評分一般出現在一些比較貴重,很少人能夠擁有大量該物品的情況下。比如說房和車,使用者大多是根據物品的描述進行評論。

評分的難點

  • 評分是否可信且準確?評分和使用者當時
  • 使用者的偏好是否會變化?比如,使用者的偏好會隨著時間變化,但是我們的推薦系統卻沒有更新。
  • 評分究竟意味著什麼?

使用者的隱式行為

使用者的隱式行為是指不是通過評分或點贊等直接的方式的使用者偏好行為,資料來源於使用者與系統互動的行為。與顯式行為不同,隱式行為是具有某種目的而不是直接表達某種偏好的行為,比如購買行為,瀏覽點選等行為。
事實上,使用者的隱式行為透露了很多資訊,有時甚至比顯式行為更具有說服力。比如,購買了某件商品顯然比根據描述對某件商品給了好評更具有說服力。

閱讀時間

使用者在頁面停留的時間或是閱讀某個物品資訊的時間一定程度上可以表示使用者對該物品的喜愛程度。比如,一個智慧音樂播放器就會記錄使用者聽每首歌的時長,如果你把一首歌完整聽完了,那麼可以認為你喜歡這首歌,如果你跳過了這首歌,則代表你不喜歡。之後的播放列表則根據使用者對每首歌的喜愛程度排序。

隱式行為的侷限和難點

  • 隱式行為的真實含義?
    不點選行為不能代表使用者就不喜歡該物品,有可能是使用者每看到該連結,或是連結的描述讓使用者產生了反感。
  • 如何量化行為對推薦系統的影響?
    比如,對於點選行為,一般我們可以用點選次數或是點選與否(點選則1,否則0)表示使用者的點選行為。量化行為的影響的難點在於如何將不同的行為量化並輸入到推薦系統模型中。

小結

  • 推薦系統挖掘使用者所說(評分或點贊等)和所做的事情(購買,瀏覽等),來了解使用者的偏好。
  • 評分提供了使用者偏好的顯式表達
  • 隱式行為在大量資料的情況下效果很好