朱子江,劉壽強(qiáng)
(廣東外語(yǔ)外貿(mào)大學(xué)南國(guó)商學(xué)院,廣州 510545)
基于用戶標(biāo)簽的推薦系統(tǒng)研究
朱子江,劉壽強(qiáng)
(廣東外語(yǔ)外貿(mào)大學(xué)南國(guó)商學(xué)院,廣州 510545)
在標(biāo)簽系統(tǒng)中用戶可以隨意上傳資源,并且允許使用任意的稱為標(biāo)簽的文字對(duì)資源進(jìn)行標(biāo)注。結(jié)合協(xié)同過(guò)濾推薦技術(shù)開(kāi)發(fā)微博系統(tǒng),通過(guò)獲取新浪微博真實(shí)用戶數(shù)據(jù)進(jìn)行實(shí)驗(yàn)分析,驗(yàn)證所提出的模型及相關(guān)算法的有效性,并根據(jù)實(shí)驗(yàn)提出面向用戶的推薦策略。
微博;協(xié)同過(guò)濾;用戶標(biāo)簽
微博客(Microblogging或Microblog)是一種允許用戶及時(shí)更新剪短文本(通常少于140字)并可以公開(kāi)發(fā)布的博客形式[1]。它允許任何人閱讀或者只能由用戶選擇的群組閱讀。隨著發(fā)展,這些訊息可以被很多方式傳送,包括短信、即時(shí)訊息軟件、電子郵件或網(wǎng)頁(yè)。為了提供給用戶更好的服務(wù)與體驗(yàn),微博系統(tǒng)使用了一套用戶標(biāo)簽系統(tǒng),更容易將各種信息分類。標(biāo)簽系統(tǒng)又可細(xì)分為用戶標(biāo)簽系統(tǒng)和博文標(biāo)簽系統(tǒng),用戶個(gè)人興趣愛(ài)好、個(gè)性特長(zhǎng)等特征通過(guò)用戶標(biāo)簽來(lái)體現(xiàn)。博文標(biāo)簽系統(tǒng)是給發(fā)布的微博內(nèi)容添加標(biāo)簽,用來(lái)表示微博類型。標(biāo)簽系統(tǒng)是將具有相同特征的用戶聚類在一起,然后根據(jù)用戶的標(biāo)簽推薦具有相同圈子相同標(biāo)簽的用戶給其關(guān)注[2]。因?yàn)槲⒉┦且粋€(gè)信息傳遞類的社交系統(tǒng),用戶與用戶的關(guān)系是可以根據(jù)社會(huì)學(xué)研究的,而標(biāo)簽系統(tǒng)則可以很好地計(jì)算用戶的好友圈子和交友方向。一方面,通過(guò)收集博文的標(biāo)簽,更能準(zhǔn)確地算出用戶平時(shí)的一些行為,分析出用戶的固有特性。另一方面,越來(lái)越多的用戶希望系統(tǒng)向他們推薦能反映個(gè)人愛(ài)好和意愿的具有個(gè)性化特征的標(biāo)簽,以便在日后能更迅速更準(zhǔn)確地搜索到他們需要的信息[3-4]。
本文研究的目標(biāo)是如何通過(guò)ThinkPHP搭建起微博平臺(tái),并且利用新浪微博上的真實(shí)用戶數(shù)據(jù)模擬原始生態(tài)壞境,通過(guò)對(duì)三維的系統(tǒng)進(jìn)行降維,重點(diǎn)研究了用戶-用戶關(guān)系、標(biāo)簽-標(biāo)簽關(guān)系,提出了相關(guān)的基于標(biāo)簽的推薦系統(tǒng)模型及算法,并將其實(shí)現(xiàn)在微博系統(tǒng)上。
2.1 推薦系統(tǒng)模型
推薦系統(tǒng)是SNS(Social Network Services)社交網(wǎng)絡(luò)系統(tǒng)最重要的模塊,用戶使用微博系統(tǒng)就是為了與其他用戶進(jìn)行信息交流,以及日常的聯(lián)系等。作為一個(gè)以用戶為中心的系統(tǒng),用戶是網(wǎng)站最寶貴的信息,應(yīng)該為用戶提供更好的服務(wù)和體驗(yàn)。對(duì)于一個(gè)用戶來(lái)說(shuō),第一次注冊(cè)時(shí)由于現(xiàn)實(shí)世界的朋友并沒(méi)有使用本系統(tǒng),可以利用用戶瀏覽本網(wǎng)站時(shí)搜集到的信息嘗試向其推薦一些明星用戶、相同地區(qū)的用戶,當(dāng)用戶填寫(xiě)了標(biāo)簽等資料以后,可以使用標(biāo)簽推薦系統(tǒng)向其推薦具有相同標(biāo)簽及相同圈子的用戶[5]。推薦系統(tǒng)模型如圖1所示。
2.2 標(biāo)簽獲取算法
標(biāo)簽獲取算法主要是收集使用用戶的數(shù)據(jù),如用戶的基本信息,用戶的登錄地址,用戶的關(guān)注好友和粉絲好友,用戶為自己打的標(biāo)簽等數(shù)據(jù)[6]。
圖1 推薦系統(tǒng)模型框圖
以用戶為基礎(chǔ)的協(xié)同過(guò)濾的出發(fā)點(diǎn)是與用戶興趣愛(ài)好相同的另一組用戶,就是計(jì)算兩個(gè)用戶的相似度。通過(guò)遍歷一個(gè)用戶的關(guān)注和粉絲,獲得他們的所有標(biāo)簽。對(duì)大多數(shù)用戶而言,微博的功能主要是獲取信息,而且是獲取用戶感興趣的信息,因此利用用戶的關(guān)注者特征來(lái)推測(cè)用戶的特征是一個(gè)很直觀的思路,相對(duì)于用戶的關(guān)注者而言,其粉絲與用戶的關(guān)系要疏遠(yuǎn)一些,因?yàn)殛P(guān)注是一種主動(dòng)選擇行為,既對(duì)該用戶感興趣,才會(huì)關(guān)注,而被別人關(guān)注是一種被動(dòng)行為,所以只在關(guān)注中較少的情況下才將粉絲的標(biāo)簽作為標(biāo)簽源,加入一般權(quán)重,來(lái)產(chǎn)生推薦結(jié)果[7-8]。
(1)標(biāo)簽獲取算法如下:
①收集用戶全部關(guān)注人的標(biāo)簽,粉絲的標(biāo)簽,按權(quán)重比例分配,根據(jù)相關(guān)機(jī)構(gòu)研究成果,用戶比較關(guān)注自己關(guān)注的其他用戶的信息,因此在權(quán)重分配上,被用戶關(guān)注的其他用戶權(quán)重較重,取約0.7,粉絲取約0.3的權(quán)重值。
②對(duì)收集到的所有標(biāo)簽進(jìn)行篩選排序,按標(biāo)簽的權(quán)重值和出現(xiàn)次數(shù)排序,保留前10個(gè)。
③根據(jù)返回的多用戶最愛(ài)標(biāo)簽列表,組成的一個(gè)標(biāo)簽矩陣,可以進(jìn)行標(biāo)簽相似度的計(jì)算,根據(jù)其推薦度和推薦算法的使用,可以從矩陣選出推薦用戶,或者與其他用戶本身的標(biāo)簽相匹配,從而產(chǎn)生推薦結(jié)果。
(2)標(biāo)簽獲取算法計(jì)算步驟(如圖2所示):
①遍歷用戶關(guān)注和粉絲兩種好友,返回最感興趣標(biāo)簽表。對(duì)多個(gè)用戶進(jìn)行最感興趣標(biāo)簽表整理后,得到用戶-標(biāo)簽矩陣表。
圖2 標(biāo)簽獲取算法流程圖
②計(jì)算相似度。相似度計(jì)算算法可以用于計(jì)算用戶或項(xiàng)目相似度。以用戶相似度計(jì)算為例,通過(guò)在用戶-標(biāo)簽矩陣中計(jì)算兩個(gè)用戶相似標(biāo)簽的個(gè)數(shù),可以返回用戶相似集U{U1,U2,…,Ui,…}(U1表示第1個(gè)用戶,U2表示第2個(gè)用戶,Ui表示第i個(gè)用戶,下同)。本系統(tǒng)計(jì)算相似度使用了余弦相似度(Cosine-based Similarity)計(jì)算公式,它基于兩個(gè)標(biāo)簽i,j視為兩個(gè)m維用戶控件向量,通過(guò)計(jì)算兩個(gè)向量的余弦?jiàn)A角,那么,對(duì)于m*n的用戶-標(biāo)簽矩陣,用戶U1,U2的相似度計(jì)算公式如(1)所示:
根據(jù)上述步驟可以得到相似用戶集合,從而可以對(duì)目標(biāo)使用者的特征進(jìn)行計(jì)算、預(yù)測(cè),得出其推薦結(jié)果。
3.1 實(shí)驗(yàn)數(shù)據(jù)集
為了體現(xiàn)數(shù)據(jù)的真實(shí)性,本系統(tǒng)導(dǎo)入的用戶數(shù)據(jù)和標(biāo)簽數(shù)據(jù)是通過(guò)新浪微博平臺(tái)抓取到的用戶數(shù)據(jù)。抓取用戶數(shù)據(jù)需要一個(gè)爬蟲(chóng)程序,該爬蟲(chóng)程序利用新浪API用戶信息接口和用戶標(biāo)簽接口實(shí)現(xiàn)。數(shù)據(jù)的抽取方式為:首先抓取用戶的ID(10位的純數(shù)字),假設(shè)從1010101010開(kāi)始抓取,自增量為20,抓取1000個(gè)存在用戶,并寫(xiě)入Excel數(shù)據(jù)庫(kù),再根據(jù)抓取到的1000個(gè)有效用戶(如圖3所示),通過(guò)其UID抓取對(duì)應(yīng)的標(biāo)簽內(nèi)容(如圖4所示)。
圖3 用戶信息數(shù)據(jù)集
圖4 用戶標(biāo)簽數(shù)據(jù)集
(1)用戶特征分析
發(fā)布微博的數(shù)量反映了微博用戶的活躍程度,因此本次抓取到的用戶需用進(jìn)行二次分析后才能使用。對(duì)抓取到的用戶分類分析,并篩選掉極無(wú)用的用戶信息。
①去掉粉絲和關(guān)注人數(shù)少于20的用戶,去掉微博發(fā)布量總數(shù)少于50的用戶。該類用戶基本上是注冊(cè)后就沒(méi)有使用微博系統(tǒng),又或者重新開(kāi)了一個(gè)賬號(hào),該賬號(hào)已廢除等等。
②去掉粉絲數(shù)和關(guān)注人數(shù)較少,但微博發(fā)布量較高的用戶。該類用戶主要將微博當(dāng)做一種記事本或者寫(xiě)心情的工具,因此研究?jī)r(jià)值不高,不同于大多數(shù)用戶對(duì)微博的理解。
(2)用戶分析
①關(guān)注人數(shù)較多,粉絲數(shù)較少,微博發(fā)布量100條左右,這類用戶主要是信息的接受者,通過(guò)關(guān)注特定的用戶,獲取自身需要的信息,這類用戶占了20%左右。
②關(guān)注人數(shù)和粉絲數(shù)較多,微博發(fā)布量1000條左右,這一類用戶使用微博主要用于發(fā)布信息,獲取信息,用戶交流等,占了60%左右,屬于活躍用戶。
③關(guān)注人數(shù)少,粉絲數(shù)量多,發(fā)布微博量大,這類用戶主要是信息的發(fā)布者,或者是行業(yè)的精英,這類用戶占了10%左右。
④其他,占10%左右。
不活躍用戶可分為被動(dòng)接收信息和主動(dòng)發(fā)布信息兩種,對(duì)前者可根據(jù)其特征推薦他們關(guān)注的相關(guān)用戶?;钴S用戶的特征可以通過(guò)其粉絲標(biāo)簽、自身標(biāo)簽和關(guān)注用戶的標(biāo)簽等獲得,根據(jù)其特征可以通過(guò)鏈?zhǔn)接脩舻姆绞酵扑]其相關(guān)用戶。不論是否為活躍用戶,均可以抽取微博潛在的標(biāo)簽作為標(biāo)簽源,計(jì)算與用戶的關(guān)系,得到數(shù)據(jù)后通過(guò)篩選后推薦給用戶。
由以上方法得到用戶-標(biāo)簽矩陣表,利用余弦相似度公式計(jì)算用戶相似度。得到相似用戶集U{U1,U2,…,Ui,…},并按權(quán)重排列,產(chǎn)生TOP-N推薦前N位用戶。
3.2 實(shí)驗(yàn)結(jié)果分析與結(jié)論
通過(guò)注冊(cè)、登錄查看被推薦的用戶,第一種是明星用戶,第二種是相同地區(qū)用戶,第三種是標(biāo)簽系統(tǒng)推薦用戶,用戶都可以隨時(shí)發(fā)現(xiàn)自己可能感興趣的用戶。通過(guò)用戶的反饋數(shù)據(jù)進(jìn)行分析,用戶在冷啟動(dòng)問(wèn)題下,會(huì)關(guān)注部分明星用戶,同時(shí)可能關(guān)注相同地區(qū)的用戶,而標(biāo)簽系統(tǒng)推薦的用戶,則要取決于用戶的興趣所在,并且并非興趣愛(ài)好相似就會(huì)關(guān)注,同時(shí)又受很多方面的影響。
通過(guò)聚類分析,用戶的標(biāo)簽與其所關(guān)注的人和他的粉絲的分布如圖5所示,一個(gè)用戶具有5個(gè)標(biāo)簽,返回的推薦用戶的愛(ài)好標(biāo)簽由不同的標(biāo)簽也由高到低分布在圖5中所示。可以看到通過(guò)選取頂端分?jǐn)?shù)較高的用戶產(chǎn)生推薦,而推薦結(jié)果也正是這一部分用戶,由此說(shuō)明用戶標(biāo)簽系統(tǒng)對(duì)于用戶的推薦作用比較明顯。
圖5 聚類分析示意圖
本微博系統(tǒng)通過(guò)模仿新浪微博等可用微博系統(tǒng)進(jìn)行開(kāi)發(fā)整合,參考了很多現(xiàn)有的微博系統(tǒng)。在用戶推薦系統(tǒng)這一方面,從明星用戶推薦、相同地區(qū)推薦、標(biāo)簽系統(tǒng)推薦,是在新浪微博現(xiàn)有推薦系統(tǒng)上的深入研究和創(chuàng)新下完成的。
對(duì)于一個(gè)推薦算法的研究,它對(duì)整個(gè)系統(tǒng)的依賴性、實(shí)用性也很重要,而推薦算法是建立在用戶數(shù)據(jù)的研究基礎(chǔ)上的,因此用戶數(shù)據(jù)只能通過(guò)獲取新浪微博平臺(tái)上的真實(shí)用戶數(shù)據(jù)作為數(shù)據(jù)源進(jìn)行算法的模擬測(cè)試,根據(jù)反饋來(lái)決定算法的好壞,這也是本文的不足之處。
[1]陳淵,等.一種面向微博用戶的標(biāo)簽推薦方法.智能計(jì)算機(jī)[J].2013(10):22~27.
[2]丁婉瑩.基于用戶標(biāo)簽的個(gè)人本體的構(gòu)建模型研究.現(xiàn)代情報(bào)[J].2011(7):42~46.
[3]Zhang ZK,Zhou T,Zhang YC.Tag-Aware Recommender Systems:A State-of-the-Art Survey.Journal of Computer Science and Technology 26(5):Sept.2015.DOI 10.1007/s11390-011-0176-1.
[4]Chen Su,Luo Tie-Jian,Xu Yan-Xiang.Robust.Analysis of Trust-Based Recommendation Algorithms.Journal of the Graduate School of the Chinese Academy of Sciences.2014(March)ID:1002-1175(2011)02-0253-09.
[5]沈磊,等.基于心理學(xué)模型的協(xié)同過(guò)濾推薦方法[J].計(jì)算機(jī)工程,2010(10):206-216.
[6]梅晶.校園網(wǎng)微博系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D],2011,5.
[7]韓阜業(yè).孟慶軒.微博系統(tǒng)架構(gòu)的可信性研究.專題研究[N],2011(8).
[8]王昭英.基于MVC設(shè)計(jì)模式的ThinkPHP框架的研究與應(yīng)用[D],2010(5).
Research on Recommendation System Based on User Tag
ZHU Zi-jiang,LIU Shou-qiang
(Guangdong University of Foreign Studies South China Business College,Guangzhou 510545)
In the label system users can upload resources,and allows the use of any known as label text annotation on resources.Based on collaborative filtering recommendation technology development Microblogging systems,through accessing to Sina Weibo real user data experiment analysis,verifies the validity of the model and the related algorithm,according to the experiment,puts forward recommend strategies for the user.
Microblogging;Collaborative Filtering;User Tags
1007-1423(2017)07-0007-04
10.3969/j.issn.1007-1423.2017.07.002
朱子江(1977-),男,湖南婁底人,高級(jí)工程師、副教授,碩士,CCF會(huì)員,研究方向?yàn)樗惴ㄔO(shè)計(jì)與分析、軟件工程
2017-01-04
2017-03-20
廣東省本科高校教學(xué)質(zhì)量與教學(xué)改革工程項(xiàng)目(粵教高函[2015]133號(hào))
劉壽強(qiáng)(1974-),男,湖北人,講師,博士,CCF會(huì)員,研究方向?yàn)榇髷?shù)據(jù)、云計(jì)算、人工智能