進度條

買襯衫竟推薦洗衣精?淺談推薦系統的演算法則

大數據與人工智慧正夯?不過你知道If-Else還是目前的主流喔!

作者: Vincent Ke 更新日期:

常使用購物網站的你,一定對各種推薦系統產出的相關清單相當熟悉,舉凡像是「相似商品」、「猜你喜歡」,甚至是「其他人也再找」..等等,看起來似乎都是透過推薦系統的演算,將各種五花八門的商品,對使用者做出適合度的判斷,進而作出推薦。

 

 

pexels-photo-297933.jpeg

 

 

但不知道各位有沒有印象,曾經在推薦系統中,發現了一些完全毫不相關的商品,例如你看的是襯衫,推薦出領帶似乎還算合理,但出現像是洗衣精,甚至是辣椒醬等這些風馬牛不相關的商品,究竟是怎麼被計算出來的呢?

 

首先在推薦系統中,每一個商品的相似度會是關鍵,早期決定商品相似程度的,無外乎就是所謂的類別、尺寸、使用者性別、材質..等等的商品規格,也就是所謂商品的Meta Data(詮釋資料),這其實就是推薦系統中常說的item-profileing, 利用商品的Meta來建立商品與商品間的相似度。

 

但相信大家總有經驗,就算搜索條件下的再精準,單靠這些資料,也是無法針對使用者的實際喜好做出推薦。例如運動鞋與高跟鞋,儘管商品規格都是鞋類,顏色和材質也有相似的可能,但難道就代表他們具備較高的相似度嗎?

 

 

pexels-photo-404168.jpeg

 

 

所以對於使用者來說的商品相似度,如果不是只有所謂的規格相關性,到底應該怎麼計算才有辦法更為精準

 

 

還記得前篇文章提到的Collaborative Filtering(協同過濾法,以下簡稱CF),本文的重點就是依據CF的兩大計算特性: item-based 和 user-based,來為大家解釋推薦系統的行為解析

 

首先CF的目的,就是透過全站使用者的共同行為,來對各種商品做出相似度的關聯,若要在講的具體一點,Collaborative Filtering是藉由其他和你相似的使用者的偏好,去預測使用者的個人偏好,進而達到個人化的推薦效果。

 

 

pexels-photo-318236.jpeg

 

 

其中User-base,中文可翻譯為「以使用者為基礎」的概念,就是針對「買了A商品的使用者,也買了什麼商品」來做計算,透過使用者們類似購買行為,來定義針對一個User,要推薦什麼商品。而這樣的方式,適合在使用者大於商品的平台中。

 

所以分析所有使用者,買襯衫的人多半會跳出去買領帶和洗衣精,就表示這兩個商品上有著一定的關聯度。所以基於這些全站使用者的行為,來對一個新的User做出推薦,當你買鍋具時,推薦就會出現火鍋湯包,買襯衫出現洗衣精,這樣也都不是什麼奇怪的事情。

 

 

但隨著使用者數量的增多,伴隨的問題就是計算的時間,也會隨之變長,而item-based「項目為基礎的協同過濾方法」也隨之誕生,主要是跟上述的方式雷同,但是會先根據全站用戶的喜好,來判斷這些東西的相似性,例如買襯衫的人都會看過A,B,就表示A和B有較高的相似性,最後當使用者來買襯衫時,就會推薦A和B這兩個商品,這樣判斷相似性的方式,也會比前面提到的item profiling 來的精準,而這樣的模式,就比較適合在商品數遠大於使用者數的平台。

 

 

image.png

 

 

「以使用者為基礎」的方法計算精確度高,但是計算複雜度卻高,使用者之間的相似度變化也較不穩度。相反的,「以項目為基礎」的方法計算精確度較低(就像洗衣精跟領帶相似度就很低),但由於計算速度快,而且項目之間的相似度變化也相對穩定,面對大量的資料量,顯得更為合適。

 

 

一但瞭解了推薦原理之後,接下來就是考量平台特性與目的,來決定哪一種推薦方式,比較適合你的產品,但要記得,推薦的初衷永遠都是替使用者挖掘更多他可能有感興趣的商品,進而成為另外一種的行銷方式,進而提升網站上活躍用戶的數量,避免使用者在淹沒在海量資訊前,就失去了探索的樂趣。

 


最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!

Medium vincent

Vincent Ke

喜歡把混亂的事情變的簡單 用嘴巴做事其實很可以 但要結合靈活的腦袋思考 就一起來拆解吧