基於內容的推薦的方法,以及協同過濾式的推薦方法,都是現在常用的推薦技術,它們分別有其應用上的優點及缺點。

兩種推薦系統的特性
以基於內容的推薦方法來說,若「內容的相似性」能構成使用者喜好的基礎,那麼,以內容為基礎來做推薦就會有不錯的效果。但是,並不是所有內容,都可以輕易用一組特徵表示方式來表達,倘若所處理的項目,其內容不易表示時,那麼也就不容易使用這種推薦方法。

此外,基於內容的推薦方式,也需要系統設計者對於內容的資料特性,甚至是所應用的領域特性有更深入的了解。因為唯有如此,才能設計出夠好的特徵表示方式。

相反地,協同過濾式的推薦方法並不理會項目本身的內容究竟是什麼,因為它並不是從項目的內容來評估項目間的相似性,而是從項目被所有使用者所偏好的情況來判斷項目間的相似性,而這個相似性並不是指它們內容相似,而是指喜歡他們的人相似,以及項目被同一使用者喜愛的相似。

可以想見的,協同過濾式的推薦法,免去了對於內容究竟是什麼的理解,也免去了苦心設想究竟應該如何表示內容特徵的困難,而是倚賴群體行為的展現,來從中探找出人與人的相似性,以及項目間的相似性。

換言之,人的相像,是基於他們所喜愛的項目而相像;而項目之間的相像,則是因為喜歡它們的人相像。

可以略去內容究竟是什麼,是協同過濾式推薦方法的優點,但是當群體的數量不足、產生的資料不足以得到品質較好的計算結果時,協同過濾式推薦方法可能就比較難以做出好的推薦。

相較而言,基於內容的推薦方法,比較可以面對上述這種情況。在系統建置初期,或是新的使用者,以及新的項目剛加入系統的情況,都是協同過濾式推薦方法比較弱的一環──前者也被稱為「冷機問題(Cold Start Problem)」,後者可稱為「新使用者問題(New User Problem)」,以及「新項目問題(New Item Problem)」。

系統剛建置的時候,由於尚未收集到足夠的使用者操作項目資料,所以無從分析使用者之間的相似性或項之目間的相似性,所以便會影響到計算結果的品質。

而當新使用者加入系統時,也是類似的情況,系統對新使用者的行為一無所知,自然不知道他和其他使用者相似的情況,自然也不知道如何對他進行推薦。而當新的項目被加入系統中時,因為沒有任何被它操作的歷史資料,所以系統也就無從評估它和其他項目相似的程度,自然也就無法評估它會被任一使用者喜好的情況。

對基於內容的推薦方法而言,每個項目加入系統時,系統都能依據其內容而計算出其內容特徵,所以很容易評估它和其他項目之間的相似程度。而當新的使用者加入系統時,系統的確還無法做出任何評估,因為使用者完全還沒有和系統有任何的互動,但是,只要使用者一使用系統,即使只有少量的資料,系統也能嘗試做出著一些推薦。

將兩種推薦方式混合使用

不同的推薦方法的優點及缺點,看起來就是其本質的一體兩面。因為有了優點,所以才有了缺點。不過現實的應用中,有不少推薦系統的運作,事實上都是混用多種推薦方法,甚至搭配一些資料的後處理動作。

以YouTube的推薦系統為例,在建置這套推薦系統時,他們便為這個系統設定了以下的目標:

(1)推薦的影片要夠新

(2)推薦的影片的主題要夠分散

(3)推薦的結果要和使用者最近的行為相關

(4)推薦的結果要能夠讓使用者,一看就明白系統為什麼推薦給他。

推薦的影片要夠新,當然不是光靠單一的推薦系統核心來完成,起碼要做資料的前處理或是後處理。而推薦系統大多處理相似,而不是處理相異。影片主題要夠分散,自然推薦系統必須參考一些相異性的指標。

而上述這些,都不是僅倚賴單一推薦系統核心的計算,就能夠達到的。

除此之外,因為各種推薦方法各有優劣,所以才會有人嘗試著混用多種方法,來進行不同推薦方法間的截長補短,而這樣混合的方式又起碼可以分成兩種,分別被稱為「循序組合(Sequential Combination)」,以及「線性組合(Linear Combination)」。

「循序組合」指的是,在不同的階段,使用不同的推薦方法,來產生該階段所需的結果。例如,先利用基於內容的方式,來找出相似的使用者,接著再利用協同過濾式的方法來做推薦。而線性組合指的,則是同時利用兩種以上的方法,分別產生個別的推薦結果,接著分別賦予不同方法結果不同的權重,接著加權之後,得到最後推薦結果中的推薦度數值。

目前許多系統都採用混合的推薦方法,其目的便是截長補短,發揮每一種推薦方法的優點,降低該推薦方法所帶來的負面效應。

例如,透過混合的方法來避免冷機問題,或是新使用者問題。

 

混合更多資訊來產生推薦資訊

除了混合基於內容的推薦方法,以及協同過濾式推薦方法之外,現在有很多系統或服務都可以提供更多的資訊,來做為推薦的參考,或是成為一個可以被混用的推薦方法。

舉例來說,現在社交網路服務如Facebook大行其道,在Facebook上有個很重要的參考資訊,就是人際關係。

在Facebook上,你可以將一個使用者加到你的好友名單中,甚至將他設為所謂的「摯友」。這意謂著這些使用者對你來說有比較特別的意義。他們關心的資訊,甚至是他們喜好的資訊,對你來說,也更有可能是比較喜好的資訊。

因此,當你在設計你的推薦系統時,除了常見的基於內容或協同過濾式的推薦方法,也可以考慮加上來自於人際網絡中的資訊,來針對推薦結果做不同的加權。

例如,透過基於內容的方法找出的相似使用者,如果又落在該使用者的人際網絡中時,則將該使用者的影響予以加權;如果相似使用者又是摯友時,則又可給予更高的加權。

隨著社交服務成為人們使用網路的重心之一,透過人與人之間的互動,以及人們在社交網絡上所自我產生的內容(像是近況更新、照片、影片、等等),我們有機會從中分析出更多有用的資訊。

可作為分析參考的資訊很多
無論是透過已經普及的基於內容的分析,或是協同過濾式的分析,我們都足以從中發掘出許多有用的資訊。

而且,更重要的是,社交網絡本身還可以提供更豐富的人與人之間的關係,除了是否設為好友、摯友,還包括了互動是否頻繁,使用者對於什麼樣的內容時常按讚,這些豐富的資料,都是可以做為推薦系統的參考。

在未來,相信基於社交網絡資訊的推薦方式,一定成為一個重要的方向。

 

專欄作者

熱門新聞

Advertisement