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