活用自編碼器:以CF推薦系統(tǒng)為例
1 認(rèn)識(shí)協(xié)同過濾(CF)推薦系統(tǒng)
在大數(shù)據(jù)時(shí)代里,數(shù)字信息太多了,讓人眼花繚亂,因而需要有一個(gè)懂您的工具來協(xié)助您,例如在您想聽歌曲時(shí),它會(huì)推薦您喜歡的音樂,當(dāng)你想去一個(gè)陌生地方購物時(shí),它就為您規(guī)劃一條最流暢的路線,這種工具就通稱為:推薦系統(tǒng)(recommender system)。推薦系統(tǒng)是一種信息過濾系統(tǒng),在大量信息之中,幫你過濾你不感興趣的信息(又稱噪聲),它隨時(shí)精確細(xì)膩地鎖定那些讓您會(huì)心一笑的有意義信息。也就是,它不需要您提出明確的需求,就會(huì)根據(jù)您的偏好和行為提供一些您可能會(huì)感興趣的物品或服務(wù)。推薦系統(tǒng)之所以會(huì)懂您,是基于一個(gè)假設(shè):相似的客戶群,其成員會(huì)有相似的(similar)興趣或偏好。以電商購物場景為例,如果能找到一群與您相似的“鄰居”成員,然后從這一群相似的鄰居的偏好來協(xié)同分析,來挖掘出您潛在的興趣。例如,下圖里的客戶A 和客戶B是鄰居(具有很高的相似度)。如下圖所示:
依據(jù)上圖,就可以把客戶A 喜歡的葡萄和西瓜推薦給客戶B。由于是從一群鄰居成員的偏好來協(xié)同分析的,所以通稱為:協(xié)同過濾(collaborative filtering,簡稱CF)。
2 使用傳統(tǒng)的CF推薦算法
協(xié)同過濾(CF)是推薦系統(tǒng)的流行算法,基于客戶對(duì)物品的行為(如消費(fèi)、點(diǎn)贊、評(píng)分等),來建立客戶興趣的模型,然后依據(jù)其興趣而推薦物品給客戶。利用算法將客戶和物品聯(lián)結(jié)起來,而且不僅僅根據(jù)自己的喜愛來判斷,還從一群相似的“鄰居”的喜好來協(xié)同分析出潛在的興趣?,F(xiàn)在來舉例說明之,有一家水果店,賣5 種水果。目前收集了4 位客人對(duì)于這5 種水果的評(píng)比,其中有買過的水果才有評(píng)比,對(duì)于沒有買過的水果就沒有評(píng)比數(shù)據(jù)。如果能推測出這些缺失的評(píng)比,就能據(jù)之來進(jìn)行推薦了。例如,從客服大數(shù)據(jù)中取得客戶評(píng)比(rating)歷史數(shù)據(jù)檔案(如.csv),并呈現(xiàn)如下:
然后,讀取這檔案里的數(shù)據(jù),以陣列方式呈現(xiàn)于Excel 畫面上:
這張圖看起來就更清晰了,其中的灰色空格部分,就是欠缺(missing)的評(píng)比數(shù)據(jù),而CF 推薦系統(tǒng)就是要找出合理的值,來替代這些欠缺的(評(píng)比)數(shù)據(jù)。當(dāng)您按下“傳統(tǒng)CF 推薦”按鈕,就會(huì)利用傳統(tǒng)CF 推薦算法找出各位客戶的鄰居,然后通過協(xié)同過濾方法找出合理的值來填入上圖里的灰色格子里,如下圖:
于是,在圖上方的陣列里,已經(jīng)預(yù)測出各位客戶對(duì)所有物品的評(píng)比了(將空白處填滿了)。而在圖下方的陣列(推薦表)里,則輸出優(yōu)先推薦的列表。例如,針對(duì)Lily 客戶,建議優(yōu)先推薦物品#4(香蕉),其次是物品#3(橘子)。還有針對(duì)Melody 客戶,則優(yōu)先推薦物品#1(草莓),其次是物品#4(香蕉)。還有針對(duì)Peter 客戶,則建議優(yōu)先推薦物品#1(草莓),其次是物品3(橘子)。
3 活用ML瑞士刀:自編碼器
在上一期里[1],已經(jīng)介紹過自編碼器(autoencoder,AE),它是一種小而美的ML 模型,它的用途非常多,所以有“ML 瑞士刀”之稱?;蚍Q為:深度學(xué)習(xí)瑞士刀。在本期里,就來活用AE(自編碼器),來實(shí)踐CF 推薦?,F(xiàn)在,就來設(shè)計(jì)一個(gè)AE 模型。在上一期里,也已經(jīng)說明了,AE 模型的特色就是:目標(biāo)值(t)等于輸入值(x)。如下圖:
這是一個(gè)5×2×5 的AE 模型。首先將缺失的數(shù)據(jù)都補(bǔ)值為-1,然后按下“AE 模型CF 推薦”按鈕,就展開訓(xùn)練了。幾分鐘之后,就訓(xùn)練好了,出現(xiàn)如下圖:
于是,就很快地把缺失的數(shù)據(jù)填補(bǔ)起來了,而且可以依據(jù)填補(bǔ)的數(shù)據(jù)來制作出優(yōu)先推薦的列表。例如,針對(duì)Lily 客戶,建議優(yōu)先推薦物品#4(香蕉),其次是物品#3(橘子)。針對(duì)Melody 客戶,則優(yōu)先推薦物品#1(草莓),其次是物品#4(香蕉);針對(duì)John 客戶,則只推薦物品3(橘子);還有針對(duì)Peter 客戶,則建議優(yōu)先推薦物品#1(草莓),其次是物品3(橘子)。以上展示了AE 模型的神奇用途之一,至于它(AE)的神奇技能的來源,則因篇幅的關(guān)系,就留待下一期再詳細(xì)說明之。
4 介紹:基于物品的協(xié)同過濾(Item CF)推薦
在本期所談的CF 推薦系統(tǒng)中,最常見的算法有兩種:User CF 和Item CF。在本期的前面3 節(jié)里,已經(jīng)介紹過User CF 了。它有個(gè)特性:如果針對(duì)一位用戶,而能找到更多相似的鄰居,這種CF 能夠提供給他更準(zhǔn)確度的估算和推薦。然而,如果找不到相似的鄰居,其效果就會(huì)下降。此時(shí),可以考慮其他的推薦算法,例如:Item CF?,F(xiàn)在,就來介紹Item CF。它是通過分析用戶標(biāo)簽數(shù)據(jù)和行為數(shù)據(jù),判斷出用戶喜好商品的類型,然后從這類喜歡共同類型商品的用戶中挑選一些類似的商品推薦給該用戶。例如,該算法會(huì)因?yàn)槟阗徺I過“阿里山茶”而給你推薦“茶具”。該算法目前在一般電商平臺(tái)最常用的算法。Item CF 并不基于物品本身的屬性和類目來計(jì)算出物品之間的相似度,而是通過分析用戶行為來找出物品之間的相關(guān)性。所以不是計(jì)算阿里山、茶具與高山茶之間的相似度,而是基于喜歡“阿里山茶”的用戶群也喜歡茶具,來判斷阿里山茶與茶具之間是鄰居(有相關(guān)性)。例如,上圖里的“阿里山茶”與茶具比較相似,而且客戶C 喜歡“阿里山茶”,那么可以預(yù)測出客戶C也會(huì)喜歡茶具,于是就將茶具推薦給客戶C。綜上所述,User CF 算法是基于一項(xiàng)假設(shè):一位客戶會(huì)喜歡他鄰居(具有相同喜好的客戶)所喜歡的物品。但如果一個(gè)用戶沒有鄰居的話,則User CF 就無法準(zhǔn)確推薦了。
而Item CF 算法也有一個(gè)基本假設(shè):用戶會(huì)喜歡和他以前喜歡的物品的相似物品。也就是,他喜歡的東西都是比較具有相關(guān)性的,這通稱為:客戶對(duì)喜歡物品的自相似度。一個(gè)用戶喜歡物品的自相似度大,就愈符合Item CF 的假設(shè),則Item CF 的推薦效果就愈好。
參考文獻(xiàn):
[1] 高煥堂.AI講座:自編碼器——神奇的ML瑞士軍刀[J].電子產(chǎn)品世界,2021(9):27-29.
(本文來源于《電子產(chǎn)品世界》雜志2021年10月期)
評(píng)論