仲兆滿,戴紅偉,管 燕
(1. 淮海工學(xué)院 計(jì)算機(jī)工程學(xué)院,江蘇 連云港 222005;2. 江蘇金鴿網(wǎng)絡(luò)科技有限公司 大數(shù)據(jù)事業(yè)部, 江蘇 連云港 222005)
近幾年,活動(dòng)社交網(wǎng)絡(luò)(Event-based Social Networks,EBSNs)引起了研究者的關(guān)注。這主要是因?yàn)槠渫ㄟ^在線方式為用戶提供組織、參加以及分享社交活動(dòng)的平臺(tái),且用戶還可以參加真實(shí)的線下活動(dòng)。比如,Meetup,Plancast,F(xiàn)acebook Event以及豆瓣同城等等。面對(duì)EBSNs上,在不同時(shí)間和地點(diǎn)舉辦的諸多活動(dòng),用戶需要花費(fèi)大量時(shí)間才能尋找到自己感興趣的活動(dòng)。在EBSNs上,實(shí)現(xiàn)活動(dòng)自動(dòng)向用戶精準(zhǔn)推薦,進(jìn)而讓用戶豐富業(yè)余生活、拓展社交關(guān)系和享受團(tuán)隊(duì)娛樂具有重要的現(xiàn)實(shí)意義。
與以往的社交網(wǎng)絡(luò)不同的是,EBSNs有其獨(dú)有的特點(diǎn): ①活動(dòng)多由主辦方舉辦。主要包含活動(dòng)類型、活動(dòng)內(nèi)容、活動(dòng)時(shí)間、活動(dòng)地點(diǎn)以及對(duì)活動(dòng)感興趣/參加的人等等信息,活動(dòng)內(nèi)涵更加豐富;②EBSNs上有大量實(shí)體。包含活動(dòng)、用戶和主辦方等,且這些實(shí)體之間構(gòu)建了特有的復(fù)雜社交關(guān)系; ③用戶參加活動(dòng)不僅受活動(dòng)內(nèi)容的吸引,而且受社交關(guān)系、活動(dòng)的時(shí)間和地點(diǎn)等因素的影響。
已有的EBSNs用戶參加活動(dòng)推薦的研究主要是圍繞EBSNs上的活動(dòng)及用戶的屬性展開。根據(jù)研究成果利用EBSNs上的實(shí)體及其關(guān)系深度的不同,現(xiàn)將已有工作總結(jié)如下:
2012年,Liu等[1]第一次定義了活動(dòng)社交網(wǎng)絡(luò)EBSNs的概念,認(rèn)為其連接了線上和線下的社交世界,是一種新型的社交媒體。在EBSNs的社群檢測(cè)時(shí),側(cè)重于用戶和活動(dòng)之間的關(guān)聯(lián)分析。
文獻(xiàn)[2-3]利用了EBSNs上朋友間的關(guān)系進(jìn)行活動(dòng)參加預(yù)測(cè)。Chin等[2]調(diào)研了用戶參加線下活動(dòng)的行為習(xí)慣,發(fā)現(xiàn)EBSNs上社交影響存在。并且用戶選擇參加活動(dòng)在一定程度上受朋友的影響,但僅僅使用關(guān)注構(gòu)建社交關(guān)系。Xu等[3]驗(yàn)證了EBSNs上朋友間的相互動(dòng)態(tài)影響力對(duì)活動(dòng)的參加有較大的作用,考慮到了用戶的偏好和基于朋友的社交關(guān)系。
Jamali等[4]使用社交矩陣分解技術(shù)MF(Matrix Factorization),提出了整合用戶—活動(dòng)參加結(jié)果和簡(jiǎn)單社交關(guān)系的SocialMF方法,社交影響力的計(jì)算僅考慮了用戶和活動(dòng)間的關(guān)系。
Li等[5]討論了社交活動(dòng)組織(SEO)問題,而不是活動(dòng)的檢測(cè),但其僅僅考慮了屬性間的相似度及用戶間的朋友關(guān)系兩個(gè)因素。
文獻(xiàn)[6-7]以豆瓣同城為例,研究了EBSNs的活動(dòng)參加預(yù)測(cè)問題,側(cè)重于邀請(qǐng)有影響力的關(guān)注者(followers)。Yu等[6]擴(kuò)展了信任分布模型識(shí)別最具影響力的被邀請(qǐng)者,考慮了用戶對(duì)活動(dòng)的偏好及社交影響最大化。Du等[7]提出了奇異值分解方法用于活動(dòng)參加的預(yù)測(cè),考慮到了活動(dòng)的內(nèi)容、上下文(時(shí)空)及社交影響。
Zhang等[8]研究EBSNs活動(dòng)參加預(yù)測(cè)問題的主要思想是: 如果一個(gè)用戶對(duì)一個(gè)主題的活動(dòng)感興趣,他可能參加與這個(gè)主題相關(guān)的新活動(dòng)。對(duì)用戶參加活動(dòng)的分析包括語(yǔ)義、時(shí)間和空間特征。
Li等[9]提出了混合協(xié)作過濾模型MF-EUN,融合了活動(dòng)和用戶的鄰居。為了解決社交影響矩陣的稀疏性,提出了基于附加信息的鄰居發(fā)現(xiàn)方法。其對(duì)EBSNs的用戶之間、用戶與活動(dòng)之間、活動(dòng)與舉辦方之間的建模不夠準(zhǔn)確,且未考慮時(shí)間要素對(duì)活動(dòng)推薦的影響。
Qiao等[10]提出了貝葉斯?jié)撛谝蛩啬P陀糜诨顒?dòng)推薦,該模型融合了異構(gòu)社交關(guān)系、地理特征和潛在排名。Zhang等[11]側(cè)重于EBSNs上的冷啟動(dòng)活動(dòng)的推薦研究。
Liu等[12]提出了上下文(靜態(tài)的和動(dòng)態(tài)的)感知推薦方法SoCo,使用隨機(jī)決策樹用于用戶-活動(dòng)分組,利用朋友關(guān)系推導(dǎo)出用戶的興趣偏好,但其構(gòu)建的社交網(wǎng)絡(luò)圖僅僅是用戶之間的。
Tong等[13]提出了瓶頸感知社交活動(dòng)安排模型(BSEA)用于EBSNs的全局推薦,使用貪婪、隨機(jī)貪婪和基于局部搜索的最優(yōu)化技術(shù)解決BSEA的NP問題。
Müngen等[14]將Meetup社交網(wǎng)絡(luò)形式化為二部圖,重點(diǎn)利用用戶和活動(dòng)的地點(diǎn)進(jìn)行活動(dòng)推薦。
Liu等[15]將豆瓣社交網(wǎng)絡(luò)形式化為9元組混合網(wǎng)絡(luò),包括用戶U、活動(dòng)E、群組G,發(fā)起者H和標(biāo)簽T。其中,活動(dòng)E包括活動(dòng)時(shí)間Em、地點(diǎn)El、成本Ec、類型Et。使用帶重啟的隨機(jī)游走算法預(yù)測(cè)用戶參與的活動(dòng),并考慮了用戶和活動(dòng)的相似性。
已有研究存在的不足及本文的創(chuàng)新點(diǎn): ①EBSNs的建模不夠準(zhǔn)確,多強(qiáng)調(diào)用戶與活動(dòng)之間的關(guān)系描述,例如,文獻(xiàn)[1,4,8],而忽略了用戶與主辦方、活動(dòng)與主辦方之間的關(guān)系。本文提出的ESU圖模型,更精準(zhǔn)的揭示了EBSNs的實(shí)體及其復(fù)雜社交關(guān)系,對(duì)面向EBSNs的后續(xù)研究有重要的參考價(jià)值; ②用戶是否參加活動(dòng)是受多個(gè)因素影響的,已有方法對(duì)這些因素利用的不夠,比如文獻(xiàn)[2-4,6-7,9]。本文提出的基于ESU圖融合了活動(dòng)對(duì)用戶的社交影響力、活動(dòng)內(nèi)容、地點(diǎn)和時(shí)間多因素的活動(dòng)推薦模型,能全面的捕捉EBSNs上活動(dòng)推薦的本質(zhì)特征; ③由于對(duì)EBSNs建模多側(cè)重用戶和活動(dòng)的關(guān)聯(lián),因此活動(dòng)與用戶之間的影響力計(jì)算多基于矩陣分解技術(shù),未能考慮到活動(dòng)主辦方的作用。例如,文獻(xiàn)[4,6,7,9]。本文根據(jù)ESU圖實(shí)體獨(dú)有的特點(diǎn),提出了基于雙向重啟隨機(jī)游走算法BD-RWR的實(shí)體重要度計(jì)算方法,能更好的利用ESU圖的整體結(jié)構(gòu),更合理地計(jì)算不同實(shí)體的影響力。
在EBSNs中,實(shí)體主要包括活動(dòng)、主辦方和用戶,這三者之間存在復(fù)雜的社交關(guān)系,每個(gè)實(shí)體又包含了多種屬性。全面地理清這些實(shí)體之間的關(guān)系及每個(gè)實(shí)體包含的屬性,是面向EBSNs開展后續(xù)研究工作的基礎(chǔ)。
本文在深入調(diào)研EBSNs特點(diǎn)的基礎(chǔ)上,提出的活動(dòng)—主辦方—用戶ESU(Event-Sponsor-User)圖模型,如圖1所示。
圖1 ESU圖模型
圖1所示的ESU圖模型中,節(jié)點(diǎn)e代表活動(dòng)(圖左),s代表活動(dòng)主辦方(圖中)和u代表用戶(圖右),圖下方是對(duì)每個(gè)實(shí)體的屬性描述。主辦方s會(huì)舉辦多個(gè)活動(dòng),與其舉辦的活動(dòng)是單向關(guān)聯(lián);主辦方s會(huì)包含多個(gè)用戶,與其包含的用戶是單向關(guān)聯(lián);用戶之間通過關(guān)注(follow)建立單向關(guān)聯(lián),兩者之間如果相互關(guān)注,則形成雙向關(guān)聯(lián),并且雙向的權(quán)重不同;用戶u可以感興趣/參加活動(dòng)e,用戶與活動(dòng)是單向關(guān)聯(lián)。ESU圖具有較高的稀疏性,體現(xiàn)在以下4點(diǎn): (1)活動(dòng)之間沒有連接關(guān)系; (2)主辦方之間沒有連接關(guān)系; (3)用戶之間雙向關(guān)系較少; (4)一些用戶可能不屬于任何的舉辦方,不參加任何活動(dòng)。
ESU圖模型的相關(guān)概念描述如下:
定義1 ESU圖,描述為一個(gè)二元組: ESU=(Entity,Relation)。其中,Entity代表實(shí)體,包括活動(dòng)集E、主辦方集S和用戶集U;Relation代表關(guān)系,有主辦方-活動(dòng)關(guān)系集SE、主辦方—用戶關(guān)系集SU、用戶-活動(dòng)關(guān)系集UE以及用戶之間關(guān)系集UU。
定義2 ESU圖活動(dòng)e,描述為一個(gè)九元組:e=(id,etype,es,ebd,ec,et,el,p,w)。其中,id為活動(dòng)唯一標(biāo)識(shí),etype是活動(dòng)類型標(biāo)簽,es為活動(dòng)發(fā)起人,ebd為活動(dòng)簡(jiǎn)述,類似于活動(dòng)名稱,ec為活動(dòng)詳情,et為活動(dòng)時(shí)間,el為活動(dòng)地點(diǎn),p為要參加活動(dòng)的用戶,w為對(duì)活動(dòng)感興趣的用戶。
定義3 ESU圖主辦方s,描述為一個(gè)五元組:s=(id,name,type,e,u)。其中,id為主辦方唯一標(biāo)識(shí),name為主辦方名稱,type為主辦方的活動(dòng)類型,e為舉辦的活動(dòng),u為關(guān)注主辦方的用戶。不同的EBSNs對(duì)活動(dòng)舉辦者的稱謂有所不同,常見的有社區(qū)、社群、組織者、舉辦方、主辦方等等,本文統(tǒng)一稱為主辦方。
定義4 ESU圖用戶u,描述為一個(gè)十元組:u=(id,name,s,l,ct,fu,bfu,fs,d,ph)。其中,id為用戶唯一標(biāo)識(shí),name為用戶名,s為用戶興趣簽名,l為用戶常居地,ct為賬號(hào)創(chuàng)建的時(shí)間,fu為他關(guān)注的用戶,bfu為關(guān)注他的用戶,fs為他關(guān)注的主辦方,d為用戶日記,ph為用戶相冊(cè)。
定義5 ESU圖主辦方—活動(dòng)關(guān)系集,描述為SE={se=(si,ej)∧si→ej|si∈S,ej∈E},主辦方si通過“舉辦”的方式與活動(dòng)ej建立單向關(guān)系。
定義6 ESU圖主辦方—用戶關(guān)系集,描述為SU={su=(si,uj)∧si→uj|si∈S,uj∈U},主辦方si通過“包含”的方式與用戶uj建立單向關(guān)系。
定義7 ESU圖用戶—用戶關(guān)系集,描述為UU={uu=(ui,uj)∧uiuj|ui∈U,uj∈U},用戶ui和uj通過“關(guān)注”的方式建立單向關(guān)系,如果相互關(guān)注,則建立雙向關(guān)系(好友關(guān)系)。
定義8 ESU圖用戶—活動(dòng)關(guān)系集,描述為UE={ue=(ui,ej)∧ui→ej|ui∈U,ej∈E},用戶ui通過“感興趣/參加”的方式與活動(dòng)ej建立單向關(guān)系。
基于ESU圖,在全面利用實(shí)體及其關(guān)系的基礎(chǔ)上,可以進(jìn)行重要活動(dòng)、主辦方及用戶的挖掘,用戶參加活動(dòng)傾向性的挖掘,活動(dòng)社群檢測(cè),信息流分析,活動(dòng)到用戶的推薦或預(yù)測(cè),用戶的活動(dòng)行為分析及主辦方舉辦活動(dòng)的行為分析等等系列研究。
定義9 用戶參加活動(dòng)推薦,描述為f(EF(ei),EF(uj))?YN(ei,uj),EF(·)為特征抽取函數(shù),f(·)為根據(jù)活動(dòng)ei和用戶uj的特征決策是否將活動(dòng)ei推薦給用戶uj,YN(ei,uj)為決策結(jié)果,其值為“是(Yes)”和“否(No)”。
在EBSNs上,用戶uj參加活動(dòng)受到多種因素的影響,比如用戶uj的好友參加了某個(gè)活動(dòng)ei,則用戶uj可能會(huì)參加活動(dòng)ei;用戶uj經(jīng)常參加主辦方sk的活動(dòng)。當(dāng)主辦方sk再次舉辦活動(dòng)時(shí),用戶uj可能參加sk舉辦的活動(dòng),這都體現(xiàn)為社交影響因素。當(dāng)一個(gè)新活動(dòng)ei到來(lái)時(shí),如果活動(dòng)ei與用戶uj曾經(jīng)參加過的活動(dòng)的相似度非常高,用戶uj可能參加活動(dòng)ei,這體現(xiàn)為活動(dòng)的內(nèi)容因素。但EBSNs上活動(dòng)的時(shí)間和地點(diǎn)與用戶參加活動(dòng)的時(shí)間和地點(diǎn)又有著密切關(guān)系。比如,用戶uj習(xí)慣周末參加聚會(huì)活動(dòng),即使活動(dòng)內(nèi)容非常接近,但時(shí)間不吻合,用戶uj也不一定有時(shí)間參加;又如用戶uj經(jīng)常參加某個(gè)地點(diǎn)的活動(dòng),即使活動(dòng)內(nèi)容非常接近但地點(diǎn)相距較遠(yuǎn),用戶uj也不一定愿意參加遠(yuǎn)距離的活動(dòng)。
基于EBSNs的ESU圖模型,本文提出活動(dòng)推薦多因素決策模型,如圖2所示。
圖2 基于ESU圖的活動(dòng)推薦多因素決策模型
圖2所示模型中,活動(dòng)ei通過ESU圖的活動(dòng)—主辦方—用戶關(guān)系對(duì)用戶uj產(chǎn)生的社交影響力記為si(ei,uj),ei的活動(dòng)內(nèi)容與用戶uj曾經(jīng)參加過的活動(dòng)內(nèi)容的相關(guān)性記為c(ei,uj),ei的活動(dòng)地點(diǎn)與用戶uj曾經(jīng)參加過的活動(dòng)地點(diǎn)的相關(guān)性記為l(ei,uj),ei的活動(dòng)時(shí)間與用戶uj曾經(jīng)參加過的活動(dòng)時(shí)間的相關(guān)性記為t(ei,uj),最終在四個(gè)因素的基礎(chǔ)上得到活動(dòng)ei對(duì)用戶uj的推薦結(jié)果為YN(ei,uj)。
下面詳細(xì)的介紹活動(dòng)推薦多因素決策模型中的四個(gè)因素的計(jì)算方法。
ESU圖包含活動(dòng)、主辦方和用戶三類實(shí)體,以及實(shí)體之間的各種關(guān)系,活動(dòng)對(duì)用戶的影響力受三類實(shí)體的共同作用。
對(duì)于構(gòu)建了活動(dòng)和用戶二者之間的關(guān)系模型,使用潛在因子模型可以直接挖掘活動(dòng)與用戶之間的潛在主題,包括矩陣分析、概率主題模型及LDA等技術(shù)。而對(duì)于包括了多個(gè)實(shí)體及其關(guān)系的ESU圖模型而言,隨機(jī)游走算法具有明顯的優(yōu)勢(shì)。隨機(jī)游走算法具有可解釋性強(qiáng)、緩解稀疏性、邏輯簡(jiǎn)潔、易于實(shí)現(xiàn)等優(yōu)點(diǎn),其在信息檢索和推薦系統(tǒng)中已得到了廣泛的應(yīng)用。
為了計(jì)算ESU圖上活動(dòng)對(duì)用戶的影響力,需要計(jì)算主辦方—活動(dòng)、主辦方—用戶、用戶—用戶以及用戶—活動(dòng)的關(guān)系權(quán)重,進(jìn)而選取合適的隨機(jī)游走算法計(jì)算活動(dòng)ei對(duì)不同用戶的影響力。
2.2.1 主辦方—活動(dòng)關(guān)系權(quán)重
令UN(sj)為主辦方sj包含的用戶數(shù)量,UN(ei)為sj中對(duì)活動(dòng)ei感興趣/參加的用戶數(shù)量。則主辦方sj-活動(dòng)ei的關(guān)系權(quán)重如式(1)所示。
(1)
式(1)利用了主辦方sj中參加活動(dòng)ei的用戶數(shù)量,及sj中所有的用戶數(shù)量度量主辦方對(duì)活動(dòng)的關(guān)系權(quán)重。se(sj,ei)值越大,說明主辦方sj中有越多的用戶參與sj舉辦的活動(dòng)。
2.2.2 主辦方—用戶關(guān)系權(quán)重
令SN(ui)為用戶ui加入的主辦方數(shù)量,EN(sj)為主辦方sj曾經(jīng)舉辦的活動(dòng)數(shù)量,SEN(ui)為用戶ui曾經(jīng)參加的主辦方sj的活動(dòng)數(shù)量,則主辦方sj-用戶ui的關(guān)系權(quán)重如式(2)所示。
(2)
式(2)前半部分說明用戶ui參加主辦方sj的活動(dòng)越多,主辦方sj對(duì)用戶ui的影響越大;式(2)后半部分考慮到了用戶ui加入的其他主辦方數(shù)量,直觀的來(lái)講,一個(gè)用戶參加的主辦方越多,主辦方sj對(duì)該用戶的影響力就越小。
2.2.3 用戶—用戶關(guān)系權(quán)重
令E(u)為用戶u參加的活動(dòng)集合,E(v)為用戶v參加的活動(dòng)集合,S(u)為用戶u加入的主辦方集合,S(v)為用戶v加入的主辦方集合,則用戶u-用戶v的關(guān)系權(quán)重如式(3)所示。
(3)
式(3)綜合的考慮了用戶u和用戶v參加的共同活動(dòng)和加入的共同主辦方的情況,α和β是平衡共同活動(dòng)和共同主辦方之間權(quán)重的參數(shù)。
需要注意的是,反過來(lái),用戶v對(duì)用戶u的權(quán)重是不同的,因?yàn)関和u可能對(duì)不同數(shù)量的主辦方感興趣,也可能參加不同數(shù)量的活動(dòng),但計(jì)算方法和式(3)類似。
2.2.4 用戶—活動(dòng)關(guān)系權(quán)重
令E(uj)為用戶uj參加過的活動(dòng)集合,sj為活動(dòng)ei所在的主辦方,ES(uj)為用戶uj參加過sj舉辦的活動(dòng)集合。則用戶uj-活動(dòng)ei的關(guān)系權(quán)重如式(4)所示。
(4)
式(4)說明用戶uj參加過活動(dòng)ei所在的主辦方的活動(dòng)越多,用戶uj對(duì)活動(dòng)ei的影響就越大。
2.2.5 基于雙向重啟隨機(jī)游走算法的節(jié)點(diǎn)影響力計(jì)算
基于隨機(jī)游走的PageRank算法通過網(wǎng)頁(yè)間的超鏈接分析,計(jì)算每個(gè)網(wǎng)頁(yè)的重要性。計(jì)算方法如式(5)所示。
(5)
其中,Rk為第k次迭代時(shí)頁(yè)面的重要度,W表示頁(yè)面之間的連接權(quán)重,d是一個(gè)阻尼系數(shù),取值范圍為0-1,通常取d=0.85,向量I=(1,1,…,1)T,N為網(wǎng)頁(yè)的數(shù)量。
重啟型隨機(jī)游走算法RWR[15]主要用于計(jì)算圖中任意兩個(gè)節(jié)點(diǎn)間的結(jié)構(gòu)相關(guān)性。計(jì)算圖中各個(gè)節(jié)點(diǎn)與節(jié)點(diǎn)j的結(jié)構(gòu)相關(guān)性方法如式(6)所示。
Rk=cWRk -1+(1-c)ej
(6)
其中,1-c為返回節(jié)點(diǎn)ej的概率,ej為第j維為1的單位向量,初始時(shí)R0=ej,Rk和W的含義和式(5)相同。
ESU圖為有向圖,三類實(shí)體的重要性體現(xiàn)方式不同。主辦方si的重要度取決于si舉辦的所有活動(dòng)及包含的所有用戶對(duì)其產(chǎn)生的影響,因此si的計(jì)算需要考慮其出度(Hubs),PageRank考慮的是頁(yè)面的入度?;顒?dòng)e節(jié)點(diǎn)的重要度取決于主辦方以及用戶對(duì)其產(chǎn)生的影響。用戶u節(jié)點(diǎn)的重要度取決于主辦方和關(guān)注他的用戶對(duì)其產(chǎn)生的影響。因此,ESU圖的活動(dòng)和用戶重要度的計(jì)算,應(yīng)該考慮其入度(Authorities)。
因此,在計(jì)算ESU各類節(jié)點(diǎn)的重要度時(shí),需要從出度和入度兩個(gè)角度出發(fā)進(jìn)行迭代計(jì)算。為此,我們提出了ESU圖上基于雙向重啟隨機(jī)游走算法(BD -RWR)的節(jié)點(diǎn)重要度計(jì)算方法。活動(dòng)主辦方的重要度、用戶和活動(dòng)的重要度迭代計(jì)算分別如式(7)~式(9)所示。
其中,sej、uej和eej分別為第j維為1的單位向量。1-c為返回節(jié)點(diǎn)sej、uej和eej的概率。WSE、WSU、WUU和WUE分別為主辦方—活動(dòng)、主辦方—用戶、用戶—用戶和用戶-活動(dòng)的關(guān)系權(quán)重。
經(jīng)過若干次迭代后,得到每個(gè)用戶ui的節(jié)點(diǎn)重要度。節(jié)點(diǎn)重要度越大,說明活動(dòng)ei在ESU圖上對(duì)用戶產(chǎn)生的社交影響力越大,用戶越有可能參加活動(dòng)ei。
為保證隨機(jī)游走算法迭代結(jié)果的收斂,不同算法采用了不同的策略。經(jīng)典的PageRank在計(jì)算節(jié)點(diǎn)重要度時(shí)引入阻尼系數(shù)d,確保迭代過程中不會(huì)出現(xiàn)節(jié)點(diǎn)重要度為0的情況,即認(rèn)為圖是強(qiáng)連通的,對(duì)應(yīng)的矩陣是不可約的。對(duì)于重啟型隨機(jī)游走算法RWR而言,通過添加返回起始節(jié)點(diǎn)的概率,同樣達(dá)到了迭代結(jié)果收斂的目的。
定理1雙向重啟隨機(jī)游走算法BD-RWR是收斂的。
證明: 在計(jì)算主辦方的重要度時(shí),考慮的是節(jié)點(diǎn)出度,添加了返回到自身節(jié)點(diǎn)概率(1-c)。式(7)的轉(zhuǎn)移概率矩陣WSE和WSU分別通過2.2.1節(jié)中的主辦方-活動(dòng)權(quán)重、2.2.2節(jié)中主辦方-用戶權(quán)重計(jì)算方法得到,在迭代過程中保持不變?;顒?dòng)節(jié)點(diǎn)初始權(quán)重E0=1/|E|,E是活動(dòng)集合,用戶節(jié)點(diǎn)初始權(quán)重U0=1/|U|,U是用戶集合。式(7)的主辦方重要度計(jì)算轉(zhuǎn)化為單向的重啟型隨機(jī)游走算法,只是與傳統(tǒng)的隨機(jī)游走算法的方向相反而已??梢?,基于出度的主辦方重要度計(jì)算的迭代過程是收斂的。
在計(jì)算活動(dòng)和用戶節(jié)點(diǎn)的重要度時(shí),考慮到節(jié)點(diǎn)入度,添加了返回到自身節(jié)點(diǎn)概率(1-c)。式(8)的轉(zhuǎn)移概率矩陣WSU和WUU分別通過2.2.2節(jié)中的主辦方-用戶權(quán)重、2.2.3節(jié)中的用戶—用戶權(quán)重計(jì)算方法得到。式(9)的轉(zhuǎn)移概率矩陣WSE和WUE分別通過2.2.1節(jié)中的主辦方—活動(dòng)權(quán)重、2.2.4節(jié)中的用戶-活動(dòng)權(quán)重計(jì)算方法得到。主辦方節(jié)點(diǎn)初始權(quán)重S0=1/|S|,S是主辦方集合。式(8)的用戶重要度計(jì)算和式(9)的活動(dòng)重要度計(jì)算轉(zhuǎn)化為單向重啟型隨機(jī)游走算法??梢姡谌攵鹊幕顒?dòng)和用戶重要度計(jì)算的迭代過程是收斂的。
由以上分析可見,雙向重啟隨機(jī)游走算法BD -RWR是收斂的。
給定一個(gè)特定活動(dòng)ei后,面向用戶推薦時(shí),需要考慮ei的活動(dòng)內(nèi)容與用戶uj曾經(jīng)參加過活動(dòng)的相似性。假設(shè)用戶uj曾經(jīng)參加過的活動(dòng)集合記為E(uj)。
已有方法在計(jì)算活動(dòng)ei與用戶參加過的活動(dòng)E(uj)的相似度時(shí),多是使用LDA模型從活動(dòng)中提取主題,進(jìn)而使用余弦相似度度量活動(dòng)的相似性。
但由于EBSNs活動(dòng)資料往往比較簡(jiǎn)練,這加重了文本資料的稀疏性,不容易從文本中準(zhǔn)確的提取出主題。而且把所有的活動(dòng)混在一起提取主題,容易把用戶參加量小的活動(dòng)淹沒。
對(duì)從豆瓣同城采集到的17 822個(gè)活動(dòng)(實(shí)驗(yàn)3.1節(jié))進(jìn)行統(tǒng)計(jì)發(fā)現(xiàn),其中85.7%的活動(dòng)都帶有標(biāo)簽,這為活動(dòng)的相似度計(jì)算提供了便利。
使用活動(dòng)的類型標(biāo)簽計(jì)算活動(dòng)的相似性,活動(dòng)ei與E(uj)的相似度計(jì)算方法,如式(10)所示。
(10)
其中,CF(ei)表示活動(dòng)ei的類型標(biāo)簽集合,CF(E(uj))表示用戶uj參加過活動(dòng)的類型標(biāo)簽集合。
使用活動(dòng)標(biāo)簽的方法計(jì)算活動(dòng)間的相似性不僅計(jì)算量小,而且效果也較好。實(shí)驗(yàn)3.6節(jié)的結(jié)果表明,從活動(dòng)內(nèi)容的角度出發(fā),使用LDA模型與使用活動(dòng)標(biāo)簽相比,F(xiàn)1-measure僅僅相差0.01。
活動(dòng)地點(diǎn)指活動(dòng)線下舉辦的真實(shí)地點(diǎn)。和傳統(tǒng)社交媒體不同的是,線下活動(dòng)的舉辦是EBSNs獨(dú)有的特點(diǎn)。因此,地點(diǎn)因素對(duì)決定是否向用戶推薦活動(dòng)有重要的作用。
基于位置的社交網(wǎng)絡(luò)(Location-based Social Networks,LBSNs)相關(guān)的研究[引用]已經(jīng)表明,隨著活動(dòng)地點(diǎn)與用戶地點(diǎn)距離的增加,用戶參加活動(dòng)的可能性會(huì)降低。通過對(duì)采集的豆瓣同城用戶參加活動(dòng)地點(diǎn)的統(tǒng)計(jì)發(fā)現(xiàn),用戶所在地點(diǎn)與活動(dòng)舉辦地點(diǎn)服從冪率分布。即大多數(shù)用戶參加的活動(dòng),其地點(diǎn)都是離用戶地點(diǎn)是比較近的,在對(duì)數(shù)坐標(biāo)下表現(xiàn)為一條直線。
圖3顯示了北京城市用戶參加活動(dòng)與用戶地點(diǎn)之間的關(guān)系(數(shù)據(jù)描述詳見實(shí)驗(yàn)3.1節(jié),對(duì)數(shù)坐標(biāo))。
圖3 用戶參加活動(dòng)的距離概率分布
活動(dòng)ei地點(diǎn)與用戶uj地點(diǎn)的相關(guān)性計(jì)算如式(11)所示。
(11)
式(11)中,lei表示活動(dòng)ei的地點(diǎn),luj表示用戶uj的地點(diǎn),dis(lei,luj)表示lei與luj的距離。地點(diǎn)都有一個(gè)經(jīng)度和維度的數(shù)值,容易計(jì)算兩個(gè)地點(diǎn)的距離。
有的EBSNs在用戶注冊(cè)時(shí),要求通過定位的方式輸入用戶的地點(diǎn)。例如,Meetup;有的EBSNs在用戶注冊(cè)時(shí),地點(diǎn)是用戶選取的,而且只是到了地市級(jí)別,不夠具體,比如豆瓣同城。而用戶在注冊(cè)時(shí)通過定位方式輸入的注冊(cè)地點(diǎn),并不一定就是用戶的工作或者居住地點(diǎn)。因此,我們使用用戶曾經(jīng)參加過的活動(dòng)地點(diǎn)估算用戶的具體地點(diǎn)。
EBSNs上舉辦的活動(dòng)地點(diǎn)一般都比較具體。例如“東城區(qū),東直門南大街14號(hào),保利劇院”,通過地圖定位容易確定活動(dòng)的經(jīng)緯度值。假設(shè)用戶參加過的活動(dòng)集合為uj.E={e1,e2,…,em}。每個(gè)活動(dòng)的地點(diǎn)用經(jīng)緯度表示,記為uj.ek=(lon,lat)(1≤k≤m),用戶參加過活動(dòng)的中心地點(diǎn)記為luj=(lon,lat)。uj.E包含活動(dòng)的緯度的最大和最小值計(jì)算分別如式(12)、式(13)所示。
uj.E包含活動(dòng)經(jīng)度的最大和最小值計(jì)算分別如式(14)、式(15)所示。
則中心地點(diǎn)luj=(lon,lat)的經(jīng)度和緯度的計(jì)算方法分別如式(16)、式(17)所示。
人們參加活動(dòng)受限于時(shí)間因素的影響,一般表現(xiàn)為天和周的周期性。例如,習(xí)慣每天下班后參加活動(dòng),或者每個(gè)周末參加活動(dòng)。因此,時(shí)間因素對(duì)用戶能否參加活動(dòng)有重要的影響。
將用戶曾經(jīng)參加過的與活動(dòng)ei同類型的活動(dòng)集合記為E(uj)(每個(gè)活動(dòng)都有類型標(biāo)簽),活動(dòng)ei的舉辦時(shí)間記為tei,用戶參加過的同類型活動(dòng)ek′∈E(uj)的舉辦時(shí)間記為tek,則活動(dòng)ei的時(shí)間與同類型活動(dòng)ek′的時(shí)間偏差如式(18)所示。
(18)
活動(dòng)ei與用戶uj的時(shí)間偏差計(jì)算方法如式(19)所示。
(19)
式(19)在計(jì)算活動(dòng)ei與用戶uj的時(shí)間偏差時(shí),一方面考慮活動(dòng)的類型,因?yàn)椴煌臅r(shí)間,用戶參加的活動(dòng)是不同的。例如,晚上參加聚會(huì),而周末參加旅游;另一方面,使用用戶uj參加過的活動(dòng)中與ei舉辦時(shí)間最靠近的活動(dòng)時(shí)間偏差作為度量標(biāo)準(zhǔn),可以避免求平均值帶來(lái)的偏差。
在計(jì)算活動(dòng)時(shí)間的偏差時(shí),不考慮年、月和日的差別,只考慮小時(shí)的偏差情況。例如,活動(dòng)ei的舉辦時(shí)間tei=“2017年7月1日15點(diǎn)”,活動(dòng)ek′的舉辦時(shí)間tek′=“2017年7月23日14點(diǎn)”,則(tei-tek′)2=(15-14)2=1。
本文選取豆瓣同城的數(shù)據(jù)作為實(shí)驗(yàn)語(yǔ)料。豆瓣同城擁有超過3千萬(wàn)用戶,且線下活動(dòng)的開展活躍度也很高。近期的不少研究成果也都使用豆瓣作為實(shí)驗(yàn)數(shù)據(jù)的來(lái)源,包括文獻(xiàn)[2,6,7,9,12]。
使用豆瓣提供的開放接口“API V2”獲取采集數(shù)據(jù)。例如,通過接口“https: //api.douban.com/v2/event/28684165”可以獲取一個(gè)活動(dòng)JSON格式的信息。在采集用于分析的數(shù)據(jù)的時(shí)間段上,Zhang等[8]實(shí)驗(yàn)結(jié)果表明,使用60天的數(shù)據(jù)進(jìn)行分析效果已經(jīng)足夠好。因此,我們采集了豆瓣同城北京市2017年3月1日—2017年4月30日,共計(jì)61天的數(shù)據(jù)。為了避免一些不活躍用戶或者活動(dòng)對(duì)總體實(shí)驗(yàn)結(jié)果的影響,刪除其中的一些非常不活躍的用戶及活動(dòng)。感興趣/參加活動(dòng)少于5個(gè)的用戶認(rèn)為是冷啟動(dòng)用戶,占所有用戶總數(shù)的9%;如果某個(gè)活動(dòng)感興趣/參加的人數(shù)少于8個(gè)就認(rèn)為是冷啟動(dòng)活動(dòng),占所有活動(dòng)總數(shù)的6%。經(jīng)過對(duì)2個(gè)月的數(shù)據(jù)進(jìn)行預(yù)處理之后,共得到8 663個(gè)用戶,17 822個(gè)活動(dòng),294個(gè)主辦方。
在EBSNs中,用戶對(duì)于某個(gè)活動(dòng)用參加或者不參加來(lái)表示,可以將活動(dòng)參加問題轉(zhuǎn)換為一個(gè)二分類問題。實(shí)驗(yàn)時(shí),隨機(jī)選取數(shù)據(jù)集中的80%用于訓(xùn)練,其他的20%用于測(cè)試。
實(shí)驗(yàn)方法通過WEKA平臺(tái)實(shí)現(xiàn),WEKA是一個(gè)基于JAVA公開的數(shù)據(jù)挖掘工作平臺(tái),集成了大量數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)算法,包括數(shù)據(jù)的預(yù)處理、分類、回歸、聚類、關(guān)聯(lián)規(guī)則和交互式界面上的可視化等等。
使用F1-measure=(2×P×R)/(P+R)作為評(píng)測(cè)指標(biāo),其中P是推薦用戶參加活動(dòng)的準(zhǔn)確率,R是推薦用戶參加活動(dòng)的召回率。
本文共選用了6種實(shí)驗(yàn)方法用于實(shí)驗(yàn)的分析和比較,分別介紹如下:
? 基本的矩陣分解方法,它只考慮用戶-活動(dòng)的參加結(jié)果,矩陣中元素的權(quán)值使用本文式(4)計(jì)算,簡(jiǎn)記為MF;
? 使用了矩陣分解相關(guān)的信任傳播,整合了用戶-活動(dòng)參加結(jié)果和簡(jiǎn)單社交關(guān)系,用戶社交關(guān)系的構(gòu)建使用本文提出的式(3),類似于文獻(xiàn)[4]提出的方法,簡(jiǎn)記為SocialMF,參數(shù)設(shè)置,λu=λv=0.1,λT=5;
? 文獻(xiàn)[9]提出的方法,簡(jiǎn)記為MF-EUN-ER,影響力的閾值設(shè)置為0.5,活動(dòng)的鄰居k1=50,用戶的鄰居k2=60,區(qū)域聚類個(gè)數(shù)t=20;
? 由于決策樹方法可讀性好,有助于人工分析,所以使用經(jīng)典的J48決策樹方法檢驗(yàn)本文所提4個(gè)因素的效果。四個(gè)因素的計(jì)算方法如第2節(jié)所述,其中用戶間關(guān)系權(quán)重參數(shù)α=β=0.5(經(jīng)過實(shí)驗(yàn)確定),簡(jiǎn)記為F4-DT-ER;
? 本文所提方法的變形,活動(dòng)內(nèi)容主題的提取使用LDA模型,其他因素計(jì)算方法不變,參考文獻(xiàn)[9],對(duì)LDA涉及的參數(shù)分別設(shè)置為α=50/k,β=0.01,k為主題的個(gè)數(shù),k=70,簡(jiǎn)記為F4-C-DT-ER;
? 本文所提方法的變形,社交影響力的計(jì)算使用經(jīng)典的PageRank方法,其他因素計(jì)算方法不變。類似于文獻(xiàn)[6-7]所提方法,簡(jiǎn)記為F4-SI-DT-ER。
對(duì)于用戶參加活動(dòng)的推薦總體結(jié)果,使用四種方法進(jìn)行比較,分別是MF、SocialMF、MF-EUN-ER和F4-DT-ER。四種方法獲取的結(jié)果如表1所示。
表1 四種方法獲取的總體推薦結(jié)果
由表1可見,本文提出的方法F4-DT-ER獲取的結(jié)果最為理想。F1-measure=0.86,其次是MF-EUN-ER方法,F(xiàn)1-measure=0.80。四種方法中,MF的效果最差,F(xiàn)1-measure=0.67。主要原因是其僅僅從用戶和活動(dòng)之間的關(guān)系出發(fā),忽略了EBSNs上的很多其他關(guān)系,類似于傳統(tǒng)用戶—項(xiàng)目之間的推薦方法,這也說明傳統(tǒng)的推薦方法用于EBSNs的用戶參加活動(dòng)推薦效果是比較差的。方法SocialMF的效果有所提升,F(xiàn)1-measure=0.72,原因是其考慮到了社交關(guān)系,考慮到了用戶間的信任傳播,但其僅僅是考慮了用戶之間的社交關(guān)系,對(duì)其他實(shí)體間的關(guān)系利用不夠。方法MF-EUN-ER根據(jù)EBSNs具有的特點(diǎn),考慮到了活動(dòng)內(nèi)容、活動(dòng)地點(diǎn)及社交關(guān)系,得到的結(jié)果有了很大程度的改善,F(xiàn)1-measure值比NMF提高了0.13,比SocialMF提高了0.08。本文所提方法F4-DT-ER深入的分析利用了EBSNs獨(dú)有的社交關(guān)系特點(diǎn),提出了ESU圖的用戶影響力計(jì)算方法,很好的利用了活動(dòng)的內(nèi)容、地點(diǎn)及時(shí)間因素,取得了最好的效果。
這說明,對(duì)EBSNs而言,需要抓住其獨(dú)有的特點(diǎn),綜合的考慮多個(gè)方面的因素,才能取得更好的用戶參加活動(dòng)推薦結(jié)果。而本文所提的ESU圖表示模型、社交影響力計(jì)算方法、活動(dòng)推薦多因素決策模型都是EBSNs所獨(dú)有的特點(diǎn)。
為了檢驗(yàn)4類因素對(duì)用戶參加活動(dòng)推薦結(jié)果的影響,使用經(jīng)典J48決策樹,對(duì)4類因素進(jìn)行考察。僅僅使用內(nèi)容因素C、空間因素L、時(shí)間因素T和社交影響因素SI的方法,分別記為C-DT-ER、L-DT-ER、T-DT-ER和SI-DT-ER。不考慮社交影響因素SI,只使用內(nèi)容因素C、空間因素L和時(shí)間因素T,該方法記為CLT-DT-ER。只使用社交影響因素,不考慮內(nèi)容因素C、空間因素L和時(shí)間因素T,該方法記為SI-DT-ER。共計(jì)使用6種方法進(jìn)行實(shí)驗(yàn)的對(duì)比和分析。
對(duì)每種方法,進(jìn)行4次交叉檢驗(yàn),最后取平均值。6種方法得到結(jié)果如表2所示。
表2 六種方法獲取的推薦結(jié)果
由表2可見,方法T-DT-ER、L-DT-ER、C-DT-ER和SI-DT-ER都使用單一的因素進(jìn)行用戶參加活動(dòng)推薦,效果最好的是SI-DT-ER,F(xiàn)1-measure為0.69。這說明在EBSNs上,有效的利用ESU圖的社交關(guān)系,進(jìn)行合理的影響力計(jì)算便可以取得較好的效果。單一的使用時(shí)間T效果最差,F(xiàn)1-measure為0.32。因?yàn)闀r(shí)間T雖然靠近,但活動(dòng)的內(nèi)容用戶不一定感興趣,地點(diǎn)可能離用戶較遠(yuǎn),不方便參加。單一的使用地點(diǎn)L效果也很差,F(xiàn)1-measure為0.33。因?yàn)榈攸c(diǎn)L雖然靠近,但活動(dòng)的內(nèi)容用戶不一定感興趣,用戶不一定有時(shí)間參加。單一的使用內(nèi)容C效果有所提升,F(xiàn)1-measure為0.55,這說明內(nèi)容因素發(fā)揮的作用較大。方法CLT-DT-ER使用了內(nèi)容C、地點(diǎn)L和時(shí)間T因素,F(xiàn)1-measure為0.72,效果已經(jīng)較好。方法F4-DT-ER有效的利用了EBSNs上的四類因素,取得了最好的效果。
本文在EBSNs上,根據(jù)ESU圖實(shí)體獨(dú)有的入度和出度的特點(diǎn),分實(shí)體類型使用雙向重啟隨機(jī)游走算法迭代計(jì)算節(jié)點(diǎn)的重要度。為了檢驗(yàn)本文所提社交影響力計(jì)算方法的有效性,使用兩種方法進(jìn)行實(shí)驗(yàn)分析和比較,分別是F4-DT-ER和F4-SI-DT-ER。
對(duì)每種方法,進(jìn)行四次交叉檢驗(yàn),最后取平均值。方法F4-DT-ER和F4-SI-DT-ER得到的推薦結(jié)果如表3所示。
表3 方法F4-DT-ER和F4-SI-DT-ER獲取的推薦結(jié)果
由表3可見,方法F4-SI-DT-ER的效果也比較理想,F(xiàn)1-measure為0.75。PageRank方法強(qiáng)調(diào)節(jié)點(diǎn)的入度,在ESU圖上,對(duì)活動(dòng)、用戶兩類實(shí)體計(jì)算是合理的。但對(duì)主辦方而言,其實(shí)體影響力的計(jì)算應(yīng)該使用其出度。方法F4-DT-ER在計(jì)算節(jié)點(diǎn)影響力時(shí),采用分而治之的策略,對(duì)不同實(shí)體采用不同的計(jì)算方法,體現(xiàn)出了ESU圖獨(dú)有的社交特性,因此取得的效果最好。
活動(dòng)內(nèi)容主題的提取,對(duì)基于內(nèi)容進(jìn)行活動(dòng)推薦有重要的影響。已有的方法多是使用LDA模型提取活動(dòng)主題,本文根據(jù)EBSNs上的活動(dòng)標(biāo)簽描述比較豐富(約85.7%的活動(dòng)有標(biāo)簽)的特點(diǎn),使用標(biāo)簽計(jì)算活動(dòng)之間的相似性。為了檢驗(yàn)所提方法的有效性,使用兩種方法F4-DT-ER和F4-C-DT-ER進(jìn)行實(shí)驗(yàn)比較。對(duì)采集到的17 822個(gè)活動(dòng),刪除沒有標(biāo)簽的活動(dòng),還剩下15 273個(gè)活動(dòng)。對(duì)這些活動(dòng),同樣是隨機(jī)選取80%進(jìn)行訓(xùn)練,20%進(jìn)行測(cè)試。
對(duì)每種方法,進(jìn)行四次交叉檢驗(yàn),最后取平均值。方法F4-DT-ER和F4-C-DT-ER得到的推薦結(jié)果如表4所示。
表4 方法F4-DT-ER和F4-C-DT-ER獲取的推薦結(jié)果
由表4可見,方法F4-C-DT-ER的效果非常理想,F(xiàn)1-measure為0.85。這說明使用LDA模型提取活動(dòng)的主題是能夠獲取較好的效果,相比方法F4-DT-ER使用活動(dòng)的標(biāo)簽僅相差0.01。但基于LDA模型的活動(dòng)內(nèi)容相關(guān)度計(jì)算的復(fù)雜度遠(yuǎn)遠(yuǎn)高于基于活動(dòng)標(biāo)簽的方法。因此,對(duì)EBSNs而言,使用活動(dòng)標(biāo)簽計(jì)算內(nèi)容相似度,不但計(jì)算工作量小,而且能夠獲取較好的效果。
本文以活動(dòng)社交網(wǎng)絡(luò)EBSNs的用戶參與新活動(dòng)推薦為出發(fā)點(diǎn),在總結(jié)已有研究方法的優(yōu)點(diǎn)及不足的基礎(chǔ)上,提出了EBSNs的活動(dòng)—主辦方—用戶(ESU)圖表示模型,揭示了EBSNs上的實(shí)體及其復(fù)雜的關(guān)聯(lián)關(guān)系。由于用戶參加活動(dòng)受多方面因素的影響,在ESU圖的基礎(chǔ)上,提出了活動(dòng)推薦多因素決策模型。進(jìn)而,根據(jù)ESU圖的特點(diǎn),提出了分實(shí)體類型的基于雙向重啟隨機(jī)游走算法的節(jié)點(diǎn)重要度計(jì)算方法。選取豆瓣同城進(jìn)行了數(shù)據(jù)的采集、推薦模型、各個(gè)因素計(jì)算方法的對(duì)比分析。
雖然本文在EBSNs的用戶參加活動(dòng)推薦方向取得了一定的進(jìn)展,但針對(duì)如下問題還需要進(jìn)一步提升: ①本文的活動(dòng)推薦面向的主要是EBSNs的活躍用戶,冷啟動(dòng)用戶參與活動(dòng)的推薦需要借鑒已有的方法并結(jié)合EBSNs獨(dú)有的特點(diǎn)加以解決; ②EBSNs活動(dòng)內(nèi)容的描述體現(xiàn)在活動(dòng)名稱(活動(dòng)概述)、活動(dòng)詳情、活動(dòng)標(biāo)簽、活動(dòng)類型等等方面,如何全面的衡量活動(dòng)之間的相似度需要進(jìn)一步研究; ③用戶在EBSNs上,除了有與活動(dòng)相關(guān)的信息外,還有用戶喜歡、用戶日記、用戶相冊(cè)、用戶評(píng)論等等信息。這些信息對(duì)用戶參加活動(dòng)的推薦作用如何,需要進(jìn)一步研究; ④面向EBSNs,除了進(jìn)行用戶參加活動(dòng)的推薦研究之外,其他內(nèi)容也需要深入研究。含主辦方和用戶行為分析,社區(qū)檢測(cè)(含重疊社區(qū)),社區(qū)及用戶的傾向性分析等等。
致謝
感謝江蘇金鴿網(wǎng)絡(luò)科技有限公司為本研究提供的實(shí)驗(yàn)數(shù)據(jù)集。