劉彤彤 馬文明 李湘南 宋玉龍
(1.煙臺(tái)大學(xué) 山東省煙臺(tái)市 264005 2.煙臺(tái)市科學(xué)技術(shù)情報(bào)研究所 山東省煙臺(tái)市 264005)
隨著當(dāng)今世界機(jī)器學(xué)習(xí)技術(shù)的興起,科學(xué)技術(shù)也走上了新的高度,人們生活中對(duì)科技應(yīng)用的需求占比也越來(lái)越重。人們利用隨處可見的智能設(shè)備來(lái)完成工作娛樂(lè)生活,處在這種快節(jié)奏的生活下,人們面對(duì)隨處可見的復(fù)雜信息無(wú)法進(jìn)行選擇,出現(xiàn)了信息過(guò)載[1]的現(xiàn)象。為了解決信息過(guò)載的問(wèn)題,電子商務(wù)行業(yè)采用推薦系統(tǒng)技術(shù)為用戶推薦和介紹產(chǎn)品,旨在于對(duì)本身需求不清晰的用戶提供建議。而現(xiàn)在,隨著娛樂(lè)方式的增多,推薦系統(tǒng)技術(shù)的運(yùn)用不僅存在于電子商務(wù)行業(yè),還擴(kuò)展到視頻音樂(lè)等多媒體行業(yè)中。
組推薦系統(tǒng)越來(lái)越成為研究的熱點(diǎn)之一[2]?,F(xiàn)代社會(huì)越來(lái)越重視人與人之間的交往與聯(lián)系,社交活動(dòng)影響著社交關(guān)系。例如,與朋友一起去風(fēng)景秀麗的地方旅游,學(xué)校組織各種社團(tuán)活動(dòng),社區(qū)中的人們一起健身做操,等等。但是大部分情況下,群組內(nèi)成員對(duì)活動(dòng)的選擇會(huì)產(chǎn)生分歧,這就需要組推薦為群組活動(dòng)提供建議或者意見,它旨在為一組用戶推薦可能喜愛(ài)的項(xiàng)目,而非普通的個(gè)性化推薦[3]。組推薦系統(tǒng)將每個(gè)人都喜好都考慮到,進(jìn)行分析和篩選,使其推薦的結(jié)果滿足群組內(nèi)多數(shù)成員的要求。
本文介紹了傳統(tǒng)推薦系統(tǒng)的算法與組推薦系統(tǒng),分析了組推薦偏好融合的多種策略,并根據(jù)分析結(jié)果構(gòu)建模型架構(gòu)實(shí)現(xiàn)面向群組的電影推薦系統(tǒng)。
傳統(tǒng)推薦系統(tǒng)(Recommender system)應(yīng)用在各大知名網(wǎng)站,例如京東和亞馬遜網(wǎng)站等。其主要的推薦系統(tǒng)算法分為基于內(nèi)容的推薦(Content-based Recommendation),協(xié)同過(guò)濾推薦(Collaborative Filtering Recommendation CF),基于知識(shí)的推薦方(Knowledge-based Recommendation)等?;趦?nèi)容的推薦方法是根據(jù)用戶歷史數(shù)據(jù),獲取用戶喜好,利用用戶喜好推薦與其特征匹配的項(xiàng)目。協(xié)同過(guò)濾推薦方法是傳統(tǒng)推薦中最早也是使用最廣泛的推薦算法之一[4],主要通過(guò)對(duì)比相似度來(lái)進(jìn)行篩選。該算法主要分為兩種,基于用戶的協(xié)同過(guò)濾算法(User-based CF)和基于項(xiàng)目的協(xié)同過(guò)濾算法(Itembased CF)?;谥R(shí)推薦的算法是將一個(gè)項(xiàng)目映射到某一特定用戶上,需要使用戶資料規(guī)范化,才能推薦與之需求相符的項(xiàng)目。
傳統(tǒng)推薦算法基于對(duì)單個(gè)用戶推薦項(xiàng)目,只分析該用戶的喜好等因素,并且得出的結(jié)果可以直接展示給該用戶,而組推薦將一個(gè)群組設(shè)為整體,分析獲取群體內(nèi)所有用戶的喜好因素,再將個(gè)人結(jié)果整合成最終群組結(jié)果。因此群組推薦也可為單個(gè)用戶服務(wù)。協(xié)同過(guò)濾推薦算法在推薦系統(tǒng)的使用中非常普遍[5]。
組推薦系統(tǒng)基于共識(shí)分?jǐn)?shù)對(duì)群組進(jìn)行推薦,包括整個(gè)群組對(duì)預(yù)測(cè)項(xiàng)目的共同偏好和群組成員之間的差異偏好[2]。組推薦系統(tǒng)獲得群組成員的興趣偏好后,需要對(duì)偏好差異進(jìn)行分析,將各個(gè)用戶的偏好融合到一起。組推薦常見的融合策略[3]有以下幾種:
(1)公平策略。每次推薦時(shí)選取組內(nèi)某個(gè)成員的評(píng)分作為群組評(píng)分。pu為用戶的偏好,pG為群組的偏好,du為用戶對(duì)項(xiàng)目的評(píng)分。
(2)均值策略。將某項(xiàng)目的的所有用戶評(píng)分求平均值,作為該項(xiàng)目的分?jǐn)?shù),再根據(jù)評(píng)分高低對(duì)群組推薦。
(3)痛苦避免均值策略。設(shè)置一個(gè)痛苦閾值 ,對(duì)所有超出該值的評(píng)分求平均值,取該平均值作為群組評(píng)分。
(4)最受尊敬者策略。根據(jù)群組成員交互關(guān)系或其他信息選取某個(gè)權(quán)重高的成員,該成員的評(píng)分作為群組評(píng)分。uresp為最受尊敬用戶。
模型中預(yù)測(cè)電影評(píng)分采用協(xié)同過(guò)濾算法,考慮到用戶與用戶之間可能受到社交關(guān)系等因素的影響,計(jì)算基于用戶的相似度,容易出現(xiàn)不穩(wěn)定的狀況。因此采用基于項(xiàng)目的協(xié)同過(guò)濾算法,將用戶所青睞的類似項(xiàng)目進(jìn)行推薦,計(jì)算復(fù)雜度相對(duì)較低。
模型中的推薦結(jié)果融合策略采用痛苦避免均值策略。均值策略在實(shí)際組推薦系統(tǒng)應(yīng)用中較為廣泛,卻可能使得個(gè)別用戶對(duì)推薦結(jié)果不滿意,個(gè)別極端的評(píng)分對(duì)群組推薦的結(jié)果產(chǎn)生不利的影響??紤]到去除極端,保留大眾化的評(píng)分,采用痛苦避免均值策略。該策略對(duì)痛苦閾值上的評(píng)分?jǐn)?shù)據(jù)進(jìn)行平均處理,過(guò)濾掉可能引起痛苦的項(xiàng)目。
圖1:模型實(shí)現(xiàn)流程圖
為群組推薦電影,利用用戶對(duì)電影的歷史評(píng)分,對(duì)群組成員進(jìn)行建檔。每個(gè)成員生成一個(gè)用戶描述文件,成員所在的每個(gè)群組生成一個(gè)群組描述文件。對(duì)用戶資料和群組資料進(jìn)行整理,除去多余用戶信息,建立評(píng)分矩陣。m 為用戶的數(shù)量,n 為電影的數(shù)量,矩陣如下:
根據(jù)獲得的評(píng)分矩陣,使用余弦相似度計(jì)算目標(biāo)電影與其他電影的相似程度,余弦相似度公式為:
再根據(jù)計(jì)算的相似度求目標(biāo)電影評(píng)分,將每個(gè)相似度作為權(quán)重,計(jì)算每個(gè)電影與其所占權(quán)重乘積并將所有乘積求和,與目標(biāo)電影相似的歷史電影,其評(píng)分作為參考的價(jià)值越大,最后對(duì)加和求平均值,得出目標(biāo)電影的預(yù)測(cè)評(píng)分。
將所有預(yù)測(cè)出的用戶評(píng)分,去掉低于參數(shù)α 的用戶評(píng)分,將剩下的電影評(píng)分?jǐn)?shù)據(jù)取平均值,作為群組預(yù)測(cè)電影評(píng)分,選擇排名前k 個(gè)的電影,使其成為預(yù)測(cè)的群組推薦電影列表。模型實(shí)現(xiàn)流程如圖1 所示。
3.3.1 準(zhǔn)確度
推薦系統(tǒng)的評(píng)分指標(biāo)同樣適用于組推薦系統(tǒng)。推薦系統(tǒng)的準(zhǔn)確度評(píng)價(jià)主要有RMSE,MAP,recall 等。RMSE 是體現(xiàn)了預(yù)測(cè)電影評(píng)分與真實(shí)評(píng)分的偏差,其值越小則偏差越小,說(shuō)明其準(zhǔn)確率越高。
3.3.2 覆蓋率
覆蓋率通過(guò)獲取群組的推薦結(jié)果占全部項(xiàng)目的比率來(lái)評(píng)價(jià)組推薦系統(tǒng)的覆蓋率情況[6]。覆蓋越多,項(xiàng)目越多樣化,對(duì)于提供項(xiàng)目者來(lái)說(shuō)非常有益。覆蓋率越高,推薦的項(xiàng)目種類雜,也可能存在著準(zhǔn)確度不高的情況,這就需要覆蓋率與準(zhǔn)確率放在一起來(lái)對(duì)推薦結(jié)果評(píng)估。
3.3.3 驚喜度
驚喜度也越來(lái)越成為評(píng)價(jià)組推薦系統(tǒng)結(jié)果滿意與否的度量之一[7]。驚喜的推薦項(xiàng)目對(duì)用戶來(lái)說(shuō)是陌生的,與用戶的喜好不相似,但是用戶卻對(duì)推薦結(jié)果有著不錯(cuò)的評(píng)價(jià)。例如給用戶推薦了沒(méi)有看過(guò)的電影,但是用戶看完之后對(duì)該電影評(píng)分挺高,這就可以認(rèn)為該推薦能夠讓用戶驚喜。
日常生活中不僅有單人推薦的需求,也有團(tuán)體推薦的需求,組推薦的出現(xiàn)解決了這一問(wèn)題。組推薦系統(tǒng)必須顧全所有群組內(nèi)用戶的需求,針對(duì)各種應(yīng)用面對(duì)不同的對(duì)象,采取相應(yīng)的融合策略,必要時(shí)可以融合多個(gè)策略以解決問(wèn)題,從而更貼合實(shí)際,符合用戶的需求。在電影推薦系統(tǒng)的設(shè)計(jì)中采用組推薦的融合策略,為進(jìn)行社交活動(dòng)的人們帶來(lái)了方便,也拓寬了推薦系統(tǒng)實(shí)用性的領(lǐng)域。