本發(fā)明屬于社交網(wǎng)站好友推薦技術(shù)領(lǐng)域,具體涉及一種基于線上線下雙重社交關(guān)系的活動推薦系統(tǒng)及方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)和移動定位設(shè)備發(fā)展,出現(xiàn)了一種新型社交網(wǎng)絡(luò)應(yīng)用——基于事件社交網(wǎng)EBSN(Event based on Social Networks);借助該應(yīng)用平臺,用戶可以創(chuàng)建、發(fā)布和組織社交事件,比如組織學(xué)術(shù)會議、舉行正式聚會、募集抗災(zāi)基金、以及分發(fā)商品優(yōu)惠券等。由于EBSN不僅包含傳統(tǒng)社交網(wǎng)的線上交互(online interactions)操作,而且還包含頗具價(jià)值的線下交互(offline interactions)操作,因此使得虛擬與物理雙重的社交交互變得易于融合。目前,EBSN的典型代表有:Meetup、Google+Events、Groupon和豆瓣等。下面以Meetup應(yīng)用為例,說明通過活動所能體現(xiàn)出的EBSN特點(diǎn);
Meetup中的活動主要包含以下若干屬性。
●時(shí)間(time):事件的開始時(shí)間和結(jié)束時(shí)間,時(shí)間一般由活動的組織者(organizer)決定。
●位置(venue):事件的舉辦地點(diǎn),通常和事件屬性、事件時(shí)間等因素相關(guān)。
●已報(bào)名參加人數(shù)(went):包括已經(jīng)報(bào)名參加事件的人以及參加人數(shù)。
●事件名稱(name):活動的名稱,通常是活動的主題描述。
●事件組名稱(group):發(fā)起該事件的組織。
●描述(description):事件的具體描述。
從上述活動特點(diǎn)可以看出,Meetup用戶之間存在著線上同組關(guān)系和線下同活動關(guān)系,而這種雙重社交關(guān)系主要由以下兩個(gè)屬性來體現(xiàn)。
●組:在Meetup中有不同主題的組,組由組內(nèi)用戶構(gòu)成。組有自己的主題、組織者等,用戶和組是多對一的關(guān)系。對于參加了同一個(gè)組的用戶而言,他們具有線上同組關(guān)系。
●活動:活動與用戶是多對多關(guān)系,即同一活動可以有不同用戶參加,同一用戶也可以參加不同活動。當(dāng)不同用戶參加同一活動時(shí),那么他們就具有線下同活動關(guān)系。
在傳統(tǒng)社交活動推薦算法中,比如基于用戶偏好或線上好友關(guān)系的活動推薦算法,除了考慮活動和用戶基本屬性(如活動主題、活動時(shí)間、活動地點(diǎn)、用戶偏好、活動代價(jià)等)外,大都基于好友關(guān)系進(jìn)行活動推薦。但前已述及,在EBSN中,有些應(yīng)用的用戶之間不存在明確好友關(guān)系,比如典型的Meetup應(yīng)用,因此基于用戶偏好或者好友關(guān)系的傳統(tǒng)活動推薦算法就不能直接用于EBSN活動推薦。但幸運(yùn)地是,EBSN具有線上同組、線下同活動雙重社交關(guān)系,而該雙重社交關(guān)系又在某種程度上間接體現(xiàn)了一種潛在的社交好友關(guān)系,如果該關(guān)系能得以充分利用,就可以有效解決EBSN因缺乏好友關(guān)系所導(dǎo)致的活動推薦可用關(guān)鍵因素不足問題。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種基于線上線下雙重社交關(guān)系的活動推薦系統(tǒng)及方法,將線上同組、線下同活動綜合納入活動推薦的評分確定中,并得到了最優(yōu)推薦參數(shù),從而提高了目標(biāo)社交網(wǎng)站活動推薦的準(zhǔn)確度,本發(fā)明創(chuàng)新性地提出了潛在好友關(guān)系概念,并在發(fā)現(xiàn)用戶好友基礎(chǔ)上,輔以用戶歷史活動等屬性來對綜合計(jì)算和評價(jià)活動分值,從而選出更合適的活動推薦給目標(biāo)用戶,旨在提高EBSN活動推薦準(zhǔn)確率。
一種基于線上線下雙重社交關(guān)系的活動推薦系統(tǒng),該系統(tǒng)包括:數(shù)據(jù)采集清洗模塊、活動統(tǒng)計(jì)分析模塊、活動相似度獲取模塊、雙重社交關(guān)系影響因子獲取模塊、用戶潛在好友發(fā)現(xiàn)模塊和用戶感興趣活動推薦模塊,其中,
數(shù)據(jù)采集清洗模塊:用于采用數(shù)據(jù)采集清洗模塊獲取目標(biāo)社交網(wǎng)站的活動數(shù)據(jù)集,并將活動數(shù)據(jù)集進(jìn)行數(shù)據(jù)清洗操作后存儲;所述的活動數(shù)據(jù)集,包括:事件活動名稱、事件活動開始時(shí)間、事件活動結(jié)束時(shí)間、事件活動舉辦地點(diǎn)、事件活動組名稱、事件活動報(bào)名人數(shù)和事件活動描述;
活動統(tǒng)計(jì)分析模塊:用于根據(jù)數(shù)據(jù)采集清洗模塊中存儲的數(shù)據(jù),對目標(biāo)城市的用戶及其所參加的活動進(jìn)行數(shù)據(jù)分類匯總,并進(jìn)行可視化結(jié)果展示;
活動相似度獲取模塊:用于確定目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況,具體包括:將目標(biāo)用戶的地理經(jīng)度和緯度轉(zhuǎn)換成平面距離,根據(jù)平面距離計(jì)算目標(biāo)用戶所在地與社交網(wǎng)站舉辦活動所在地點(diǎn)間物理位置的相似度;獲取目標(biāo)用戶標(biāo)簽與社交網(wǎng)站活動庫中每項(xiàng)活動標(biāo)簽的相似度;獲取目標(biāo)用戶已參加的組與社交網(wǎng)站舉辦活動所屬組之間的相似度;
雙重社交關(guān)系影響因子獲取模塊:用于結(jié)合線下活動確定目標(biāo)用戶與其他任意一個(gè)用戶間的雙重社交關(guān)系影響因子值,具體包括:獲取目標(biāo)用戶與其他任意一個(gè)用戶間的標(biāo)簽相似度、獲取目標(biāo)用戶與其他任意一個(gè)用戶間的活動所在組的相似度、獲取目標(biāo)用戶與其他任意一個(gè)用戶間的歷史線下活動相似度,通過設(shè)定權(quán)重值的方式,根據(jù)用戶對間的標(biāo)簽相似度、活動所在組的相似度和歷史線下活動相似度,確定該對用戶間雙重社交關(guān)系影響因子值;
用戶潛在好友發(fā)現(xiàn)模塊:用于根據(jù)用戶間雙重社交關(guān)系影響因子值獲取目標(biāo)用戶的潛在好友集合;
用戶感興趣活動推薦模塊:用于結(jié)合潛在好友集合中好友社交影響得分和目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況,向目標(biāo)用戶推薦令其感興趣的活動,具體包括;獲取當(dāng)社交網(wǎng)站舉辦活動時(shí),潛在好友集合中任一好友對目標(biāo)用戶的雙重社交影響得分,進(jìn)而獲取目標(biāo)用戶的全部潛在好友對其的社交影響得分;通過設(shè)定權(quán)重值的方式,結(jié)合獲取的目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況,確定目標(biāo)用戶潛在好友向目標(biāo)用戶推薦感興趣活動的綜合影響分值;按從大到小順序?qū)C合影響分值進(jìn)行排序;取前所需個(gè)數(shù)結(jié)果作為令目標(biāo)用戶感興趣的活動向其推薦。
采用基于線上線下雙重社交關(guān)系的活動推薦系統(tǒng)進(jìn)行的推薦方法,包括以下步驟:
步驟1、在樣本采集時(shí)間范圍和地點(diǎn)范圍內(nèi),采用數(shù)據(jù)采集清洗模塊獲取目標(biāo)社交網(wǎng)站的活動數(shù)據(jù)集,并將活動數(shù)據(jù)集進(jìn)行數(shù)據(jù)清洗操作后存儲;
所述的活動數(shù)據(jù)集,包括:事件活動名稱、事件活動開始時(shí)間、事件活動結(jié)束時(shí)間、事件活動舉辦地點(diǎn)、事件活動組名稱、事件活動報(bào)名人數(shù)和事件活動描述;
步驟2、采用活動統(tǒng)計(jì)分析模塊,對目標(biāo)城市的用戶及其所參加的活動進(jìn)行數(shù)據(jù)分類匯總,并進(jìn)行可視化結(jié)果展示;
步驟3、采用活動相似度獲取模塊,確定目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況;具體步驟如下:
步驟3-1、將目標(biāo)用戶的地理經(jīng)度和緯度轉(zhuǎn)換成平面距離,根據(jù)平面距離計(jì)算目標(biāo)用戶所在地與社交網(wǎng)站舉辦活動所在地間物理位置的相似度;
步驟3-2、獲取目標(biāo)用戶標(biāo)簽與社交網(wǎng)站活動庫中每項(xiàng)活動標(biāo)簽的相似度;
步驟3-3、獲取目標(biāo)用戶已參加的組與社交網(wǎng)站舉辦活動所屬組之間的相似度;
步驟4、采用雙重社交關(guān)系影響因子獲取模塊,結(jié)合線下活動確定目標(biāo)用戶與其他任意一個(gè)用戶間的雙重社交關(guān)系影響因子值,具體步驟如下:
步驟4-1、獲取目標(biāo)用戶與其他任意一個(gè)用戶間的標(biāo)簽相似度;
步驟4-2、獲取目標(biāo)用戶與其他任意一個(gè)用戶間的活動所在組的相似度;
步驟4-3、獲取目標(biāo)用戶與其他任意一個(gè)用戶間的歷史線下活動相似度;
步驟4-4、通過設(shè)定權(quán)重值的方式,根據(jù)用戶對間的標(biāo)簽相似度、活動所在組的相似度和歷史線下活動相似度,確定該對用戶間雙重社交關(guān)系影響因子值;
步驟5、采用用戶潛在好友發(fā)現(xiàn)模塊,根據(jù)用戶間雙重社交關(guān)系影響因子值獲取目標(biāo)用戶的潛在好友集合;
步驟6、采用用戶感興趣活動推薦模塊,結(jié)合潛在好友集合中好友社交影響得分和目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況,向目標(biāo)用戶推薦令其感興趣的活動,具體步驟如下;
步驟6-1、獲取當(dāng)社交網(wǎng)站舉辦活動時(shí),潛在好友集合中任一好友對目標(biāo)用戶的雙重社交影響得分;
步驟6-2、反復(fù)執(zhí)行步驟6-1,獲取目標(biāo)用戶的全部潛在好友對其的社交影響得分;
步驟6-3、通過設(shè)定權(quán)重值的方式,結(jié)合步驟3中獲取的目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況,確定目標(biāo)用戶潛在好友向目標(biāo)用戶推薦感興趣活動的綜合影響分值;
步驟6-5、按從大到小順序?qū)C合影響分值進(jìn)行排序;
步驟6-6、取前所需個(gè)數(shù)結(jié)果作為令目標(biāo)用戶感興趣的活動向其推薦。
步驟4-2所述的獲取目標(biāo)用戶與其他任意一個(gè)用戶間的活動所在組的相似度,具體公式如下:
Sg(ui,uj)=(G(ui)∩G(uj))/(G(ui)∪G(uj)) (1)
其中,(G(ui)∩G(uj))表示一對用戶ui和uj間活動所在組集合的交集,即相同活動組集合;(G(ui)∪G(uj))表示ui和uj間活動所在組集合的并集,即二者間所有的活動組集合;Sg(ui,uj)表示用戶ui和用戶uj間的活動組相似度。
步驟4-3所述的獲取目標(biāo)用戶與其他任意一個(gè)用戶間的歷史線下活動相似度,具體公式如下:
Sh(ui,uj)=(H(ui)∩H(uj))/(H(ui)∪H(uj)) (2)
其中,(H(ui)∩H(uj))表示一對用戶ui和uj間歷史活動集合的交集,即相同歷史活動集合;(H(ui)∪H(uj))表示ui和uj間歷史活動集合的并集,即二者間所有的歷史活動集合;Sh(ui,uj)表示用戶ui和用戶uj間的歷史活動相似度。
步驟5所述的采用用戶潛在好友發(fā)現(xiàn)模塊,根據(jù)用戶間雙重社交關(guān)系影響因子值獲取目標(biāo)用戶的潛在好友集合,具體步驟如下;
步驟5-1、按從大到小順序?qū)τ脩魧﹂g雙重社交關(guān)系影響因子值進(jìn)行排序;
步驟5-2、取前所需個(gè)數(shù)結(jié)果作為目標(biāo)用戶的潛在好友集合。
步驟6-1所述的獲取當(dāng)社交網(wǎng)站舉辦活動時(shí),潛在好友集合中任一好友對目標(biāo)用戶的雙重社交影響得分;
具體公式如下:
其中,表示潛在好友集合中任一好友對目標(biāo)用戶ui的雙重社交影響得分,az表示社交網(wǎng)站舉辦的活動,表示好友已參加的活動。
步驟6-2所述的獲取目標(biāo)用戶的全部潛在好友對其的社交影響得分;
具體公式如下:
其中,Ss(ui,(LF(ui),az))表示目標(biāo)用戶的全部潛在好友對其的社交影響得分,LF(ui)表示目標(biāo)用戶ui的潛在好友集合,az表示社交網(wǎng)站舉辦的活動,表示好友已參加的活動。
步驟6-3所述的通過設(shè)定權(quán)重值的方式,結(jié)合步驟3中獲取的目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況,確定目標(biāo)用戶潛在好友向目標(biāo)用戶推薦感興趣活動的綜合影響分值;
具體公式如下:
S(ui,az)=m·Sd(ui,az)+q·St(ui,az)+n·Sg(ui,az)+p·Ss(ui,(LF(ui),az)) (5)
其中,S(ui,az)表示目標(biāo)用戶潛在好友向目標(biāo)用戶推薦感興趣活動的綜合影響分值,m、n、p和q分別為權(quán)重調(diào)整系數(shù),Sd(ui,az)表示用戶ui所在地和活動az舉辦地的距離相似度,St(ui,az)表示目標(biāo)用戶ui和活動az的標(biāo)簽相似度,Sg(ui,az)表示目標(biāo)用戶ui所在組和活動az所在組相似度,Ss(ui,(LF(ui),az))表示目標(biāo)用戶的全部潛在好友對其的社交影響得分,az表示社交網(wǎng)站舉辦的活動。
本發(fā)明優(yōu)點(diǎn):
在社交網(wǎng)活動推薦系統(tǒng)中,用戶好友的偏好對向目標(biāo)用戶推薦令其感興趣的活動有非常重要的借鑒作用,但EBSN中卻不存在明確的好友關(guān)系,因此傳統(tǒng)的活動推薦算法對EBSN典型應(yīng)用之一的Meetup應(yīng)用來說就不再適用了。為此,本發(fā)明提出一種基于online-offline雙重社交關(guān)系的活動推薦系統(tǒng)及方法,旨在將虛擬社交關(guān)系與物理社交活動相融合,從而提高推薦服務(wù)質(zhì)量,同時(shí)也在一定程度上彌補(bǔ)了EBSN活動推薦中好友關(guān)系不足的缺陷。具體而言,優(yōu)點(diǎn)如下:
首先,針對EBSN好友關(guān)系不夠明確的問題,本發(fā)明利用線上同組、線下同活動雙重社交關(guān)系,實(shí)現(xiàn)了目標(biāo)用戶潛在好友發(fā)現(xiàn)策略,提供了將傳統(tǒng)活動推薦算法移植到EBSN推薦系統(tǒng)的可用性實(shí)施手段;
其次,基于本發(fā)明發(fā)現(xiàn)的目標(biāo)用戶其潛在好友的活動偏好等,可以比較準(zhǔn)確地向目標(biāo)用戶推薦令其感興趣的活動,提高了EBSN推薦系統(tǒng)的服務(wù)質(zhì)量;
此外,本發(fā)明還提供用戶社交活動統(tǒng)計(jì)分析功能,可根據(jù)用戶選擇的區(qū)域,以可視化友好界面形式展現(xiàn)該地區(qū)社交活動統(tǒng)計(jì)分析結(jié)果,為其他應(yīng)用提供有參考價(jià)值的信息支撐。
附圖說明
圖1為本發(fā)明一種實(shí)施例的基于線上線下雙重社交關(guān)系的活動推薦系統(tǒng)結(jié)構(gòu)圖;
圖2為本發(fā)明一種實(shí)施例的基于線上線下雙重社交關(guān)系的活動推薦方法流程圖;
圖3本發(fā)明一種實(shí)施例的針對美國舊金山地區(qū)的活動分布圖;
圖4本發(fā)明一種實(shí)施例的Meetup應(yīng)用中參加活動人數(shù)統(tǒng)計(jì)分析圖;
圖5本發(fā)明一種實(shí)施例的不同參數(shù)下推薦活動準(zhǔn)確率測試圖,其中,圖(a)為參數(shù)m取不同值的測試結(jié)果示意圖,圖(b)參數(shù)n取不同值的測試結(jié)果示意圖,圖(c)為參數(shù)p取不同值的測試結(jié)果示意圖,圖(d)為參數(shù)q取不同值的測試結(jié)果示意圖;
圖6本發(fā)明一種實(shí)施例的不同參數(shù)下推薦活動召回率測試圖,其中,圖(a)為參數(shù)m取不同值的測試結(jié)果示意圖,圖(b)參數(shù)n取不同值的測試結(jié)果示意圖,圖(c)為參數(shù)p取不同值的測試結(jié)果示意圖,圖(d)為參數(shù)q取不同值的測試結(jié)果示意圖;
圖7本發(fā)明一種實(shí)施例的單個(gè)因素對活動推薦影響的測試圖;
圖8本發(fā)明一種實(shí)施例在最優(yōu)參數(shù)下的活動推薦準(zhǔn)確率測試圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明一種實(shí)施例做進(jìn)一步說明。
本發(fā)明實(shí)施例中,如圖1所示,基于線上線下雙重社交關(guān)系的活動推薦系統(tǒng),該系統(tǒng)包括:數(shù)據(jù)采集清洗模塊、活動統(tǒng)計(jì)分析模塊、活動相似度獲取模塊、雙重社交關(guān)系影響因子獲取模塊、用戶潛在好友發(fā)現(xiàn)模塊和用戶感興趣活動推薦模塊;
本發(fā)明實(shí)施例中,數(shù)據(jù)采集清洗模塊用于采用數(shù)據(jù)采集清洗模塊獲取目標(biāo)社交網(wǎng)站的活動數(shù)據(jù)集,并將活動數(shù)據(jù)集進(jìn)行數(shù)據(jù)清洗操作后存儲;所述的活動數(shù)據(jù)集,包括:事件活動名稱、事件活動開始時(shí)間、事件活動結(jié)束時(shí)間、事件活動舉辦地點(diǎn)、事件活動組名稱、事件活動報(bào)名人數(shù)和事件活動描述;
本發(fā)明實(shí)施例中,活動統(tǒng)計(jì)分析模塊用于根據(jù)數(shù)據(jù)采集清洗模塊中存儲的數(shù)據(jù),對目標(biāo)城市的用戶及其所參加的活動進(jìn)行數(shù)據(jù)分類匯總,并進(jìn)行可視化結(jié)果展示;
本發(fā)明實(shí)施例中,調(diào)用Google Map API函數(shù)進(jìn)行統(tǒng)計(jì)分析結(jié)果的可視化顯示。首先,選擇感興趣的城市;其次,根據(jù)Meetup舉辦某項(xiàng)活動所處位置確定坐標(biāo)點(diǎn);接下來,統(tǒng)計(jì)在該地點(diǎn)參與該項(xiàng)活動的用戶數(shù),并調(diào)用circle函數(shù)畫圓。其中,圓半徑大小和所著顏色要根據(jù)用戶參與活動的數(shù)量來決,比如,可用[1-10)、[10-100)、[100-1000)代表三個(gè)數(shù)量范圍,而每個(gè)范圍分別著不同顏色;最后,在每種度量范圍下,數(shù)據(jù)個(gè)數(shù)越多,圓的半徑就越大。
本發(fā)明實(shí)施例中,活動相似度獲取模塊用于確定目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況,具體包括:將目標(biāo)用戶的地理經(jīng)度和緯度轉(zhuǎn)換成平面距離,根據(jù)平面距離計(jì)算目標(biāo)用戶所在地與社交網(wǎng)站舉辦活動所在地點(diǎn)間物理位置的相似度;獲取目標(biāo)用戶標(biāo)簽與社交網(wǎng)站活動庫中每項(xiàng)活動標(biāo)簽的相似度;獲取目標(biāo)用戶已參加的組與社交網(wǎng)站舉辦活動所屬組之間的相似度;
本發(fā)明實(shí)施例中,雙重社交關(guān)系影響因子獲取模塊用于結(jié)合線下活動確定目標(biāo)用戶與其他任意一個(gè)用戶間的雙重社交關(guān)系影響因子值,具體包括:獲取目標(biāo)用戶與其他任意一個(gè)用戶間的標(biāo)簽相似度、獲取目標(biāo)用戶與其他任意一個(gè)用戶間的活動所在組的相似度、獲取目標(biāo)用戶與其他任意一個(gè)用戶間的歷史線下活動相似度,通過設(shè)定權(quán)重值的方式,根據(jù)用戶對間的標(biāo)簽相似度、活動所在組的相似度和歷史線下活動相似度,確定該對用戶間雙重社交關(guān)系影響因子值;
本發(fā)明實(shí)施例中,用戶潛在好友發(fā)現(xiàn)模塊用于根據(jù)用戶間雙重社交關(guān)系影響因子值獲取目標(biāo)用戶的潛在好友集合;
本發(fā)明實(shí)施例中,用戶感興趣活動推薦模塊用于結(jié)合潛在好友集合中好友社交影響得分和目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況,向目標(biāo)用戶推薦令其感興趣的活動,具體包括;獲取當(dāng)社交網(wǎng)站舉辦活動時(shí),潛在好友集合中任一好友對目標(biāo)用戶的雙重社交影響得分,進(jìn)而獲取目標(biāo)用戶的全部潛在好友對其的社交影響得分;通過設(shè)定權(quán)重值的方式,結(jié)合獲取的目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況,確定目標(biāo)用戶潛在好友向目標(biāo)用戶推薦感興趣活動的綜合影響分值;按從大到小順序?qū)C合影響分值進(jìn)行排序;取前所需個(gè)數(shù)結(jié)果作為令目標(biāo)用戶感興趣的活動向其推薦。
本發(fā)明實(shí)施例中,采用基于線上線下雙重社交關(guān)系的活動推薦系統(tǒng)進(jìn)行的推薦方法,方法流程圖如圖2所示,包括以下步驟:
步驟1、在樣本采集時(shí)間范圍和地點(diǎn)范圍內(nèi),采用數(shù)據(jù)采集清洗模塊獲取Meetup社交網(wǎng)的活動數(shù)據(jù)集,并將活動數(shù)據(jù)集進(jìn)行數(shù)據(jù)清洗操作后存儲;所述的活動數(shù)據(jù)集,包括:事件活動名稱、事件活動開始時(shí)間、事件活動結(jié)束時(shí)間、事件活動舉辦地點(diǎn)、事件活動組名稱、事件活動報(bào)名人數(shù)和事件活動描述;
本發(fā)明實(shí)施例中,數(shù)據(jù)采集的是Meetup社交網(wǎng)中美國舊金山附近的用戶及其相關(guān)活動數(shù)據(jù),時(shí)間范圍從2006年8月31日到2016年2月21日;實(shí)驗(yàn)數(shù)據(jù)采集的Meetup空間范圍是一個(gè)從(36.1,-120)到(38.0,-123)的矩形范圍;該范圍可用數(shù)據(jù)包含了347,685個(gè)用戶個(gè)數(shù),68,371個(gè)線上組,1,176,010個(gè)線下活動。原始數(shù)據(jù)包含用戶數(shù)據(jù)和活動數(shù)據(jù)兩類數(shù)據(jù),其中用戶數(shù)據(jù)主要有用戶位置、偏好標(biāo)簽、組標(biāo)簽、組成員、參加過的活動等屬性;活動數(shù)據(jù)主要有活動位置、活動舉辦時(shí)間、活動描述、活動標(biāo)簽、舉辦活動的組、已經(jīng)報(bào)名參加活動人數(shù)等屬性。
本發(fā)明實(shí)施例中,假定Meetup有3個(gè)用戶存在,即u1、u2和u3,他們各自相關(guān)信息如表1所示。令u1是本專利要推薦活動的目標(biāo)用戶,其參加歷史活動相關(guān)信息如表2所示,Meetup舉辦活動相關(guān)信息如表3所示,現(xiàn)在需要為目標(biāo)用戶u1推薦令其感興趣的活動;
表1 Meetup相關(guān)用戶信息
表2用戶歷史活動信息
表3 Meetup將要舉辦活動信息
步驟2、采用活動統(tǒng)計(jì)分析模塊,對目標(biāo)城市的用戶及其所參加的活動進(jìn)行數(shù)據(jù)分類匯總,并進(jìn)行可視化結(jié)果展示;
本發(fā)明實(shí)施例中,圖3給出了美國舊金山地區(qū)用戶活動隨地點(diǎn)變化的分布情況;在圖3中,圓的面積大小代表該地區(qū)舉辦活動的頻繁度,通過標(biāo)注圓不同顏色的方式表示不同活動種類,從圖3中可以發(fā)現(xiàn),活動的舉辦是有地區(qū)性的;比如,水上活動的舉辦地大部分處于沿海地區(qū);而旅行活動則更頻繁地選擇在郊區(qū)舉辦,等等。這也充分表明活動舉辦地與活動偏好是有直接關(guān)系的;
本發(fā)明實(shí)施例中,圖4展示了Meetup中參加活動人數(shù)分布情況;從圖4可以看出,大部分活動只有少數(shù)人參加,能吸引很多人參加的大型活動相對較少,因此參加活動人數(shù)與活動數(shù)之間呈現(xiàn)明顯的重尾分布;
步驟3、采用活動相似度獲取模塊,確定目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況;具體步驟如下:
步驟3-1、將目標(biāo)用戶的地理經(jīng)度和緯度轉(zhuǎn)換成平面距離,根據(jù)平面距離計(jì)算目標(biāo)用戶所在地與Meetup網(wǎng)站舉辦活動所在地間物理位置的相似度;
本發(fā)明實(shí)施例中,平面距離計(jì)算公式如下:
其中,Dis tan ce(L(ui),L(az))表示用戶ui和活動az間的平面距離,表示用戶ui的弧度值,λ表示經(jīng)度差,β表示緯度差,γ表示地球半徑(γ=6378.137公里);
本發(fā)明實(shí)施例中,目標(biāo)用戶所在地與社交網(wǎng)站舉辦活動所在地間物理位置的相似度,計(jì)算公式如下:
Sd(ui,az)=1/(Dis tan ce(L(ui),L(az))+1) (7)
其中,ui表示第i個(gè)目標(biāo)用戶;az表示Meetup活動庫Am中第z個(gè)活動,即az∈AM;Sd(ui,az)表示用戶ui所在地和活動az舉辦地的距離相似度;
本發(fā)明實(shí)施例中,將用戶所在位置和活動舉辦地點(diǎn)所在位置的經(jīng)緯度帶入公式(6),求得L(ui)和L(az)間的平面距離分別為:D(L(ui),L(aD))=0,D(L(ui),L(aE))=0.638,D(L(ui),L(aF))=0.87;其中z=D、E、F分別表示“聯(lián)誼會”、“學(xué)生教育問題討論”和“英語讀書會”等活動;
本發(fā)明實(shí)施例中,將平面距離帶入計(jì)算公式(7),求得目標(biāo)用戶u1與Meetup所舉辦的任意一項(xiàng)活動間的物理位置相似度為:
步驟3-2、獲取目標(biāo)用戶標(biāo)簽(Tag)與Meetup網(wǎng)站活動庫中每項(xiàng)活動標(biāo)簽的相似度;
計(jì)算公式如下:
St(ui,az)=(T(ui)∩T(az))/(T(ui)∪T(az)) (8)
其中,T(ui)表示ui的標(biāo)簽集合,T(az)表示活動庫第z項(xiàng)活動的標(biāo)簽集合,(T(ui)∩T(az))表示ui標(biāo)簽集合與第z項(xiàng)活動的標(biāo)簽集合的交集,即相同標(biāo)簽。(T(ui)∪T(az))表示ui標(biāo)簽集合與第z項(xiàng)活動的活動類別標(biāo)簽集合的并集,即用戶ui和活動az具有的全部標(biāo)簽集合;St(ui,az)表示ui和az的標(biāo)簽相似度;
本發(fā)明實(shí)施例中,由于Am={D,E,F(xiàn)},a1=D,a2=E,a3=F,T(u1)={教育,閱讀,英語},T(a1)={社交,交友},T(a2)={學(xué)生,教育},T(a3)={閱讀,英語},則根據(jù)公式(8)可計(jì)算出目標(biāo)用戶u1與az的標(biāo)簽相似度為:St(u1,a1)=(T(u1)∩T(a1))/(T(u1)∪T(a1))=0/5=0,St(u1,a2)=(T(u1)∩T(a2))/(T(u1)∪T(a2))=1/4=0.25,St(u1,a3)=(T(u1)∩T(a3))/(T(u1)∪T(a3))=2/3=0.67;
步驟3-3、獲取目標(biāo)用戶ui已參加的組與Meetup網(wǎng)站舉辦活動所屬組之間的相似度;
計(jì)算公式如下:
其中,表示ui已參加的活動組集合,G(az)表示Meetup舉辦第z項(xiàng)活動所屬的組;如果G(az)是的子集,即Meetup舉辦的活動所屬組包含在用戶已參加的活動組集合中,則二者之間的相似度為1,即否則,二者之間的相似度為0,即
本發(fā)明實(shí)施例中,由于目標(biāo)用戶u1已參加的組集合而Meetup舉辦活動所屬組集合G(az)={G1,G2},滿足因此根據(jù)公式(9)可計(jì)算出組相似度為:
步驟4、采用雙重社交關(guān)系影響因子獲取模塊,結(jié)合線下活動確定目標(biāo)用戶與其他任意一個(gè)用戶間的雙重社交關(guān)系影響因子值,具體步驟如下:
步驟4-1、獲取目標(biāo)用戶與其他任意一個(gè)用戶間的標(biāo)簽相似度;
計(jì)算公式如下:
St(ui,uj)=(T(ui)∩T(uj))/(T(ui)∪T(uj)) (10)
其中,(T(ui)∩T(uj))表示一對用戶ui和uj間的標(biāo)簽集合的交集,即相同標(biāo)簽集合;(T(ui)∪T(uj))表示ui和uj間的標(biāo)簽集合的并集,即二者間的所有標(biāo)簽集合;St(ui,uj)表示ui和uj的標(biāo)簽相似度;
本發(fā)明實(shí)施例中,由于T(u1)={教育,閱讀,英語},T(u2)={教育,思維,數(shù)學(xué),學(xué)生},T(u3)={閱讀,跑步,游泳},則根據(jù)公式(10)可計(jì)算出任意一對用戶間的標(biāo)簽相似度為:St(u1,u2)=(T(u1)∩T(u2))/(T(u1)∪T(u2))=1/6=0.167,St(u1,u3)=(T(u1)∩T(u3))/(T(u1)∪T(u3))=1/5=0.25;
步驟4-2、獲取目標(biāo)用戶與其他任意一個(gè)用戶間的活動所在組的相似度,具體公式如下:
Sg(ui,uj)=(G(ui)∩G(uj))/(G(ui)∪G(uj)) (1)
其中,(G(ui)∩G(uj))表示一對用戶ui和uj間活動所在組集合的交集,即相同活動組集合;(G(ui)∪G(uj))表示ui和uj間活動所在組集合的并集,即二者間所有的活動組集合;Sg(ui,uj)表示用戶ui和用戶uj間的活動組相似度;
本發(fā)明實(shí)施例中,由于G(u1)={G1,G2},G(u2)={G1},G(u3)={G2},則根據(jù)公式(1)可計(jì)算出目標(biāo)用戶u1與任意一個(gè)用戶間的組相似度為:Sg(u1,u2)=(G(u1)∩G(u2))/(G(u1)∪G(u2))=1/2=0.5,Sg(u1,u3)=(G(u1)∩G(u3))/(G(u1)∪G(u3))=1/2=0.5;
步驟4-3、獲取目標(biāo)用戶與其他任意一個(gè)用戶間的歷史線下活動相似度;
具體公式如下:
Sh(ui,uj)=(H(ui)∩H(uj))/(H(ui)∪H(uj)) (2)
其中,(H(ui)∩H(uj))表示一對用戶ui和uj間歷史活動集合的交集,即相同歷史活動集合;(H(ui)∪H(uj))表示ui和uj間歷史活動集合的并集,即二者間所有的歷史活動集合;Sh(ui,uj)表示用戶ui和用戶uj間的歷史活動相似度;
本發(fā)明實(shí)施例中,由于H(u1)={A,B},H(u2)={A,C},H(u3)={B},則根據(jù)公式(2)可計(jì)算出目標(biāo)用戶u1與任意一個(gè)用戶間的歷史活動相似度為Sh(u1,u2)=(H(u1)∩H(u2))/(H(u1)∪H(u2))=1/3=0.33,Sh(u1,u3)=(H(u1)∩H(u3))/(H(u1)∪H(u3))=1/2=0.5;
步驟4-4、通過設(shè)定權(quán)重值的方式,根據(jù)用戶對間的標(biāo)簽相似度、活動所在組的相似度和歷史線下活動相似度,確定該對用戶間雙重社交關(guān)系影響因子值;
計(jì)算公式如下:
SF(ui,uj)=αSt(ui,uj)+βSg(ui,uj)+(1-α-β)Sh(ui,uj) (11)
其中,SF(ui,uj)表示一對用戶ui和uj間的雙重社交關(guān)系影響因子值;參數(shù)α和β分別表示權(quán)重系數(shù);
本發(fā)明實(shí)施例中,不同應(yīng)用需求根據(jù)公式(11),可以設(shè)置不同權(quán)重調(diào)節(jié)系數(shù)α和β的取值范圍,假定口=0.3,β=0.3,則一對用戶間雙重社交關(guān)系影響因子值計(jì)算結(jié)果如下:
SF(u1,u2)=0.3*St(u1,u2)+0.3*Sg(u1,u2)+(1-0.3-0.3)*Sh(u1,u2)
=0.3*0.167+0.3*0.5+0.4*0.33
=0.0511+0.15+0.132
=0.33711
SF(u1,u3)=0.3*St(u1,u3)+0.3*Sg(u1,u3)+(1-0.3-0.3)*Sh(u1,u3)
=0.3*0.25+0.3*0.5+0.3*0.5
=0.075+0.15+0.15
=0.375
步驟5、采用用戶潛在好友發(fā)現(xiàn)模塊,根據(jù)用戶間雙重社交關(guān)系影響因子值獲取目標(biāo)用戶ui的潛在好友集合LF(ui),具體步驟如下;
步驟5-1、按從大到小順序?qū)τ脩魧﹂g雙重社交關(guān)系影響因子值SF(ui,uj)進(jìn)行排序;
步驟5-2、取前所需k′個(gè)結(jié)果作為目標(biāo)用戶ui的潛在好友集合LF(ui);
本發(fā)明實(shí)施例中,假設(shè)選取k′=2,則目標(biāo)用戶u1的潛在好友集合LF(u1)={u2,u3};
步驟6、采用用戶感興趣活動推薦模塊,結(jié)合潛在好友集合中好友社交影響得分和目標(biāo)用戶與社交網(wǎng)站線上任意一項(xiàng)活動的相似情況,向目標(biāo)用戶推薦令其感興趣的活動,具體步驟如下;
步驟6-1、獲取當(dāng)Meetup網(wǎng)站舉辦活動時(shí),潛在好友集合LF(ui)中任一好友對目標(biāo)用戶ui的雙重社交影響得分;
具體公式如下:
其中,表示潛在好友集合中任一好友對目標(biāo)用戶ui的雙重社交影響得分,az表示社交網(wǎng)站舉辦的活動,表示好友已參加的活動;
本發(fā)明實(shí)施例中,目標(biāo)用戶u1的潛在好友集合LF(u1)={u2,u3},Am={D,E,F(xiàn)},a1=D,a2=E,a3=F,則有存在。于是,根據(jù)公式(3)可分別計(jì)算出u2對Meetup所舉辦活動的雙重社交影響分?jǐn)?shù)為:
步驟6-2、反復(fù)執(zhí)行步驟6-1,獲取目標(biāo)用戶的全部潛在好友對其的社交影響得分;
具體公式如下:
其中,Ss(ui,(LF(ui),az))表示目標(biāo)用戶的全部潛在好友對其的社交影響得分,LF(ui)表示目標(biāo)用戶ui的潛在好友集合,az表示社交網(wǎng)站舉辦的活動,表示好友已參加的活動;
本發(fā)明實(shí)施例中,由于則有于是,可計(jì)算出u3對Meetup所舉辦活動的雙重社交影響分?jǐn)?shù)為:
本發(fā)明實(shí)施例中,由于LF(u1)={u2,u3},a1=D,a2=E,a3=F,則根據(jù)公式(4),可計(jì)算出目標(biāo)用戶u1的全部潛在好友LF(u1)對其社交影響得分如下:
步驟6-3、通過設(shè)定權(quán)重值的方式,結(jié)合步驟3中獲取的目標(biāo)用戶與Meetup網(wǎng)站線上任意一項(xiàng)活動的相似情況,確定目標(biāo)用戶潛在好友向目標(biāo)用戶推薦感興趣活動的綜合影響分值;
具體公式如下:
S(ui,az)=m·Sd(ui,az)+q·St(ui,az)+n·Sg(ui,az)+p·Ss(ui,(LF′(ui),az)) (5)
其中,S(ui,az)表示目標(biāo)用戶潛在好友向目標(biāo)用戶推薦感興趣活動的綜合影響分值,m、n、p和q分別為權(quán)重調(diào)整系數(shù),Sd(ui,az)表示用戶ui所在地和活動az舉辦地的距離相似度,St(ui,az)表示目標(biāo)用戶ui和活動az的標(biāo)簽相似度,Sg(ui,az)表示目標(biāo)用戶ui所在組和活動az所在組相似度,Ss(ui,(LF(ui),az))表示目標(biāo)用戶的全部潛在好友對其的社交影響得分,az表示社交網(wǎng)站舉辦的活動;
本發(fā)明實(shí)施例中,由于Am={D,E,F(xiàn)},a1=D,a2=E,a3=F,LF(u1)={u2,u3},此處本專利設(shè)置權(quán)重調(diào)整系數(shù)m=0.3,n=0.6,p=0.2,q=0.1,則根據(jù)公式(5),可計(jì)算出az及LF(u1)向u1推薦感興趣活動的綜合影響分值如下:
S(u1,a1)=mSd(u1,a1)+nSg(u1,a1)+pSs(u1,(LF(u1),a1))+qSt(u1,a1)
=0.3*1+0.6*0+0.2*1+0.1*0
=0.9
S(u1,a2)=mSd(u1,a2)+nSg(u1,a2)+pSs(u1,(LF(u1),a2))+qSt(u1,a2)
=0.3*0.94+0.6*0.25+0.2*1+0.1*1
=1.107
S(u1,a3)=mSd(u1,a3)+nSg(u1,a3)+pSs(u1,(LF(u1),a3))+qSt(u1,a3)
=0.3*0.92+0.6*0.67+0.2*1+0.1*0
=0.943
步驟6-5、按從大到小順序?qū)C合影響分值S(ui,az)進(jìn)行排序;
本發(fā)明實(shí)施例中,由于S(u1,a1)=0.9,S(u1,a2)=1.107,S(u1,a3)=0.943,因此按從大到小順序?qū)(u1,az)進(jìn)行排序,可得到:S(u1,a2)>S(u1,a3)>S(u1,a1);
步驟6-6、取前所需k個(gè)結(jié)果作為令目標(biāo)用戶感興趣的活動向其推薦。
本發(fā)明實(shí)施例中,取k=1,則將活動E,即Meetup將要舉辦的“學(xué)生教育問題討論”活動推薦給目標(biāo)用戶u1;
本發(fā)明實(shí)施例中,通過實(shí)驗(yàn)驗(yàn)證了所提的基于online-offline雙重社交關(guān)系的活動推薦系統(tǒng)的有效性和可行性;
本發(fā)明實(shí)施例中,通過四個(gè)實(shí)驗(yàn)對該系統(tǒng)進(jìn)行性能驗(yàn)證。首先,令公式(3)中4個(gè)參數(shù)中的3個(gè)固定不變,調(diào)節(jié)第4個(gè)參數(shù),測試推薦活動準(zhǔn)確率和召回率,實(shí)驗(yàn)結(jié)果分別如圖5和圖6所示。其次,為找出哪個(gè)參數(shù)對推薦結(jié)果有更大影響,單獨(dú)測試了在一個(gè)參數(shù)下活動推薦的準(zhǔn)確率和召回率,結(jié)果如圖7所示;最后,在綜合考慮四個(gè)參數(shù)條件下獲取最佳推薦結(jié)果,如圖8所示;
圖5中圖(a)給出了當(dāng)n、p和q分別等于0.5時(shí),m從0.1變化到0.9過程中,隨著活動推薦個(gè)數(shù)的增加活動推薦的準(zhǔn)確率變化情況;從圖5中圖(a)可以看出,隨著距離權(quán)重調(diào)整參數(shù)m增加,活動推薦準(zhǔn)確率有所降低,這說明m較小時(shí),推薦準(zhǔn)確率較高。實(shí)際情況也是如此,m較小,意味著距離相似度所占權(quán)重較小,那么遠(yuǎn)距離的活動,人們也傾向于參加,這源于有便利交通工具可選,距離在推薦活動中就不再是主要影響因素;
圖5中圖(b)給出了當(dāng)m、p和q分別等于0.5時(shí),n從0.1變化到0.9過程中,隨著活動推薦個(gè)數(shù)的增加活動推薦的準(zhǔn)確率變化情況。從圖5中圖(b)中可以看出,隨著組權(quán)重調(diào)整參數(shù)n增加,活動推薦準(zhǔn)確率有所提高,這說明n較大時(shí),推薦準(zhǔn)確率較高。實(shí)際情況也是如此,n較大,意味著組相似度所占比重較高,人們更傾向于參加自己所在組所組織的活動;
圖5中圖(c)給出了當(dāng)m、n和q分別等于0.5時(shí),p從0.1變化到0.9過程中,隨著活動推薦個(gè)數(shù)的增加活動推薦的準(zhǔn)確率變化情況。從圖5中圖(c)中可以看出,隨著社交影響權(quán)重調(diào)整參數(shù)p增加,活動推薦準(zhǔn)確率有所提高,這說明p較大時(shí),活動推薦準(zhǔn)確率較高。實(shí)際情況也是如此,p較大,意味著社交影響越大,人們更傾向于和自己好友一起參加活動;
圖5中圖(d)給出了當(dāng)m、n和p分別等于0.5時(shí),q從0.1變化到0.9過程中,隨著活動推薦個(gè)數(shù)的增加活動推薦的準(zhǔn)確率變化情況。從圖5(d)中可以看出,隨著用戶偏好標(biāo)簽和活動標(biāo)簽相似度權(quán)重q增加,活動推薦準(zhǔn)確率有所減低,這說明q較小時(shí),活動推薦準(zhǔn)確率較高。這可能是因?yàn)橛脩羝脴?biāo)簽不完整或者用戶可能有嘗試新類型活動的愿望所致;
圖6中展現(xiàn)的是各參數(shù)對推薦活動召回率的影響,隨著活動推薦個(gè)數(shù)的增加,推薦活動的召回率明顯降低。在推薦1個(gè)活動時(shí),很難保證推薦的那個(gè)活動正是用戶所需要的活動,所以造成準(zhǔn)確率低,相應(yīng)地,召回率就較高。而隨著推薦活動個(gè)數(shù)的增加,推薦活動越來越有可能是用戶需要的,因此使得準(zhǔn)確率增加,召回率降低,這符合一般推薦規(guī)律;
圖7展示了只考慮一個(gè)因素對推薦活動的準(zhǔn)確率。從圖7中可以看出,參數(shù)n對活動推薦影響最大,也就是舉辦活動的組對于用戶影響力最大。而q對推薦活動影響最小,也就是活動的主題對于用戶參加活動的影響較小,這可能因?yàn)橛脩羝脴?biāo)簽和個(gè)人實(shí)際偏好有所差異,或者人們愿意嘗試不同的新活動;
圖8中展示了m=0.3,n=0.6,p=0.2,q=0.1時(shí)的活動推薦準(zhǔn)確率。從圖8中可以看出,當(dāng)參數(shù)m=0.3,n=0.6,p=0.2,q=0.1時(shí),取得了最優(yōu)推薦結(jié)果。