仲兆满,戴红伟,管 燕
(1. 淮海工学院 计算机工程学院,江苏 连云港 222005;2. 江苏金鸽网络科技有限公司 大数据事业部, 江苏 连云港 222005)
近几年,活动社交网络(Event-based Social Networks,EBSNs)引起了研究者的关注。这主要是因为其通过在线方式为用户提供组织、参加以及分享社交活动的平台,且用户还可以参加真实的线下活动。比如,Meetup,Plancast,Facebook Event以及豆瓣同城等等。面对EBSNs上,在不同时间和地点举办的诸多活动,用户需要花费大量时间才能寻找到自己感兴趣的活动。在EBSNs上,实现活动自动向用户精准推荐,进而让用户丰富业余生活、拓展社交关系和享受团队娱乐具有重要的现实意义。
与以往的社交网络不同的是,EBSNs有其独有的特点: ①活动多由主办方举办。主要包含活动类型、活动内容、活动时间、活动地点以及对活动感兴趣/参加的人等等信息,活动内涵更加丰富;②EBSNs上有大量实体。包含活动、用户和主办方等,且这些实体之间构建了特有的复杂社交关系; ③用户参加活动不仅受活动内容的吸引,而且受社交关系、活动的时间和地点等因素的影响。
已有的EBSNs用户参加活动推荐的研究主要是围绕EBSNs上的活动及用户的属性展开。根据研究成果利用EBSNs上的实体及其关系深度的不同,现将已有工作总结如下:
2012年,Liu等[1]第一次定义了活动社交网络EBSNs的概念,认为其连接了线上和线下的社交世界,是一种新型的社交媒体。在EBSNs的社群检测时,侧重于用户和活动之间的关联分析。
文献[2-3]利用了EBSNs上朋友间的关系进行活动参加预测。Chin等[2]调研了用户参加线下活动的行为习惯,发现EBSNs上社交影响存在。并且用户选择参加活动在一定程度上受朋友的影响,但仅仅使用关注构建社交关系。Xu等[3]验证了EBSNs上朋友间的相互动态影响力对活动的参加有较大的作用,考虑到了用户的偏好和基于朋友的社交关系。
Jamali等[4]使用社交矩阵分解技术MF(Matrix Factorization),提出了整合用户—活动参加结果和简单社交关系的SocialMF方法,社交影响力的计算仅考虑了用户和活动间的关系。
Li等[5]讨论了社交活动组织(SEO)问题,而不是活动的检测,但其仅仅考虑了属性间的相似度及用户间的朋友关系两个因素。
文献[6-7]以豆瓣同城为例,研究了EBSNs的活动参加预测问题,侧重于邀请有影响力的关注者(followers)。Yu等[6]扩展了信任分布模型识别最具影响力的被邀请者,考虑了用户对活动的偏好及社交影响最大化。Du等[7]提出了奇异值分解方法用于活动参加的预测,考虑到了活动的内容、上下文(时空)及社交影响。
Zhang等[8]研究EBSNs活动参加预测问题的主要思想是: 如果一个用户对一个主题的活动感兴趣,他可能参加与这个主题相关的新活动。对用户参加活动的分析包括语义、时间和空间特征。
Li等[9]提出了混合协作过滤模型MF-EUN,融合了活动和用户的邻居。为了解决社交影响矩阵的稀疏性,提出了基于附加信息的邻居发现方法。其对EBSNs的用户之间、用户与活动之间、活动与举办方之间的建模不够准确,且未考虑时间要素对活动推荐的影响。
Qiao等[10]提出了贝叶斯潜在因素模型用于活动推荐,该模型融合了异构社交关系、地理特征和潜在排名。Zhang等[11]侧重于EBSNs上的冷启动活动的推荐研究。
Liu等[12]提出了上下文(静态的和动态的)感知推荐方法SoCo,使用随机决策树用于用户-活动分组,利用朋友关系推导出用户的兴趣偏好,但其构建的社交网络图仅仅是用户之间的。
Tong等[13]提出了瓶颈感知社交活动安排模型(BSEA)用于EBSNs的全局推荐,使用贪婪、随机贪婪和基于局部搜索的最优化技术解决BSEA的NP问题。
Müngen等[14]将Meetup社交网络形式化为二部图,重点利用用户和活动的地点进行活动推荐。
Liu等[15]将豆瓣社交网络形式化为9元组混合网络,包括用户U、活动E、群组G,发起者H和标签T。其中,活动E包括活动时间Em、地点El、成本Ec、类型Et。使用带重启的随机游走算法预测用户参与的活动,并考虑了用户和活动的相似性。
已有研究存在的不足及本文的创新点: ①EBSNs的建模不够准确,多强调用户与活动之间的关系描述,例如,文献[1,4,8],而忽略了用户与主办方、活动与主办方之间的关系。本文提出的ESU图模型,更精准的揭示了EBSNs的实体及其复杂社交关系,对面向EBSNs的后续研究有重要的参考价值; ②用户是否参加活动是受多个因素影响的,已有方法对这些因素利用的不够,比如文献[2-4,6-7,9]。本文提出的基于ESU图融合了活动对用户的社交影响力、活动内容、地点和时间多因素的活动推荐模型,能全面的捕捉EBSNs上活动推荐的本质特征; ③由于对EBSNs建模多侧重用户和活动的关联,因此活动与用户之间的影响力计算多基于矩阵分解技术,未能考虑到活动主办方的作用。例如,文献[4,6,7,9]。本文根据ESU图实体独有的特点,提出了基于双向重启随机游走算法BD-RWR的实体重要度计算方法,能更好的利用ESU图的整体结构,更合理地计算不同实体的影响力。
在EBSNs中,实体主要包括活动、主办方和用户,这三者之间存在复杂的社交关系,每个实体又包含了多种属性。全面地理清这些实体之间的关系及每个实体包含的属性,是面向EBSNs开展后续研究工作的基础。
本文在深入调研EBSNs特点的基础上,提出的活动—主办方—用户ESU(Event-Sponsor-User)图模型,如图1所示。
图1 ESU图模型
图1所示的ESU图模型中,节点e代表活动(图左),s代表活动主办方(图中)和u代表用户(图右),图下方是对每个实体的属性描述。主办方s会举办多个活动,与其举办的活动是单向关联;主办方s会包含多个用户,与其包含的用户是单向关联;用户之间通过关注(follow)建立单向关联,两者之间如果相互关注,则形成双向关联,并且双向的权重不同;用户u可以感兴趣/参加活动e,用户与活动是单向关联。ESU图具有较高的稀疏性,体现在以下4点: (1)活动之间没有连接关系; (2)主办方之间没有连接关系; (3)用户之间双向关系较少; (4)一些用户可能不属于任何的举办方,不参加任何活动。
ESU图模型的相关概念描述如下:
定义1 ESU图,描述为一个二元组: ESU=(Entity,Relation)。其中,Entity代表实体,包括活动集E、主办方集S和用户集U;Relation代表关系,有主办方-活动关系集SE、主办方—用户关系集SU、用户-活动关系集UE以及用户之间关系集UU。
定义2 ESU图活动e,描述为一个九元组:e=(id,etype,es,ebd,ec,et,el,p,w)。其中,id为活动唯一标识,etype是活动类型标签,es为活动发起人,ebd为活动简述,类似于活动名称,ec为活动详情,et为活动时间,el为活动地点,p为要参加活动的用户,w为对活动感兴趣的用户。
定义3 ESU图主办方s,描述为一个五元组:s=(id,name,type,e,u)。其中,id为主办方唯一标识,name为主办方名称,type为主办方的活动类型,e为举办的活动,u为关注主办方的用户。不同的EBSNs对活动举办者的称谓有所不同,常见的有社区、社群、组织者、举办方、主办方等等,本文统一称为主办方。
定义4 ESU图用户u,描述为一个十元组:u=(id,name,s,l,ct,fu,bfu,fs,d,ph)。其中,id为用户唯一标识,name为用户名,s为用户兴趣签名,l为用户常居地,ct为账号创建的时间,fu为他关注的用户,bfu为关注他的用户,fs为他关注的主办方,d为用户日记,ph为用户相册。
定义5 ESU图主办方—活动关系集,描述为SE={se=(si,ej)∧si→ej|si∈S,ej∈E},主办方si通过“举办”的方式与活动ej建立单向关系。
定义6 ESU图主办方—用户关系集,描述为SU={su=(si,uj)∧si→uj|si∈S,uj∈U},主办方si通过“包含”的方式与用户uj建立单向关系。
定义7 ESU图用户—用户关系集,描述为UU={uu=(ui,uj)∧uiuj|ui∈U,uj∈U},用户ui和uj通过“关注”的方式建立单向关系,如果相互关注,则建立双向关系(好友关系)。
定义8 ESU图用户—活动关系集,描述为UE={ue=(ui,ej)∧ui→ej|ui∈U,ej∈E},用户ui通过“感兴趣/参加”的方式与活动ej建立单向关系。
基于ESU图,在全面利用实体及其关系的基础上,可以进行重要活动、主办方及用户的挖掘,用户参加活动倾向性的挖掘,活动社群检测,信息流分析,活动到用户的推荐或预测,用户的活动行为分析及主办方举办活动的行为分析等等系列研究。
定义9 用户参加活动推荐,描述为f(EF(ei),EF(uj))⟹YN(ei,uj),EF(·)为特征抽取函数,f(·)为根据活动ei和用户uj的特征决策是否将活动ei推荐给用户uj,YN(ei,uj)为决策结果,其值为“是(Yes)”和“否(No)”。
在EBSNs上,用户uj参加活动受到多种因素的影响,比如用户uj的好友参加了某个活动ei,则用户uj可能会参加活动ei;用户uj经常参加主办方sk的活动。当主办方sk再次举办活动时,用户uj可能参加sk举办的活动,这都体现为社交影响因素。当一个新活动ei到来时,如果活动ei与用户uj曾经参加过的活动的相似度非常高,用户uj可能参加活动ei,这体现为活动的内容因素。但EBSNs上活动的时间和地点与用户参加活动的时间和地点又有着密切关系。比如,用户uj习惯周末参加聚会活动,即使活动内容非常接近,但时间不吻合,用户uj也不一定有时间参加;又如用户uj经常参加某个地点的活动,即使活动内容非常接近但地点相距较远,用户uj也不一定愿意参加远距离的活动。
基于EBSNs的ESU图模型,本文提出活动推荐多因素决策模型,如图2所示。
图2 基于ESU图的活动推荐多因素决策模型
图2所示模型中,活动ei通过ESU图的活动—主办方—用户关系对用户uj产生的社交影响力记为si(ei,uj),ei的活动内容与用户uj曾经参加过的活动内容的相关性记为c(ei,uj),ei的活动地点与用户uj曾经参加过的活动地点的相关性记为l(ei,uj),ei的活动时间与用户uj曾经参加过的活动时间的相关性记为t(ei,uj),最终在四个因素的基础上得到活动ei对用户uj的推荐结果为YN(ei,uj)。
下面详细的介绍活动推荐多因素决策模型中的四个因素的计算方法。
ESU图包含活动、主办方和用户三类实体,以及实体之间的各种关系,活动对用户的影响力受三类实体的共同作用。
对于构建了活动和用户二者之间的关系模型,使用潜在因子模型可以直接挖掘活动与用户之间的潜在主题,包括矩阵分析、概率主题模型及LDA等技术。而对于包括了多个实体及其关系的ESU图模型而言,随机游走算法具有明显的优势。随机游走算法具有可解释性强、缓解稀疏性、逻辑简洁、易于实现等优点,其在信息检索和推荐系统中已得到了广泛的应用。
为了计算ESU图上活动对用户的影响力,需要计算主办方—活动、主办方—用户、用户—用户以及用户—活动的关系权重,进而选取合适的随机游走算法计算活动ei对不同用户的影响力。
2.2.1 主办方—活动关系权重
令UN(sj)为主办方sj包含的用户数量,UN(ei)为sj中对活动ei感兴趣/参加的用户数量。则主办方sj-活动ei的关系权重如式(1)所示。
(1)
式(1)利用了主办方sj中参加活动ei的用户数量,及sj中所有的用户数量度量主办方对活动的关系权重。se(sj,ei)值越大,说明主办方sj中有越多的用户参与sj举办的活动。
2.2.2 主办方—用户关系权重
令SN(ui)为用户ui加入的主办方数量,EN(sj)为主办方sj曾经举办的活动数量,SEN(ui)为用户ui曾经参加的主办方sj的活动数量,则主办方sj-用户ui的关系权重如式(2)所示。
(2)
式(2)前半部分说明用户ui参加主办方sj的活动越多,主办方sj对用户ui的影响越大;式(2)后半部分考虑到了用户ui加入的其他主办方数量,直观的来讲,一个用户参加的主办方越多,主办方sj对该用户的影响力就越小。
2.2.3 用户—用户关系权重
令E(u)为用户u参加的活动集合,E(v)为用户v参加的活动集合,S(u)为用户u加入的主办方集合,S(v)为用户v加入的主办方集合,则用户u-用户v的关系权重如式(3)所示。
(3)
式(3)综合的考虑了用户u和用户v参加的共同活动和加入的共同主办方的情况,α和β是平衡共同活动和共同主办方之间权重的参数。
需要注意的是,反过来,用户v对用户u的权重是不同的,因为v和u可能对不同数量的主办方感兴趣,也可能参加不同数量的活动,但计算方法和式(3)类似。
2.2.4 用户—活动关系权重
令E(uj)为用户uj参加过的活动集合,sj为活动ei所在的主办方,ES(uj)为用户uj参加过sj举办的活动集合。则用户uj-活动ei的关系权重如式(4)所示。
(4)
式(4)说明用户uj参加过活动ei所在的主办方的活动越多,用户uj对活动ei的影响就越大。
2.2.5 基于双向重启随机游走算法的节点影响力计算
基于随机游走的PageRank算法通过网页间的超链接分析,计算每个网页的重要性。计算方法如式(5)所示。
(5)
其中,Rk为第k次迭代时页面的重要度,W表示页面之间的连接权重,d是一个阻尼系数,取值范围为0-1,通常取d=0.85,向量I=(1,1,…,1)T,N为网页的数量。
重启型随机游走算法RWR[15]主要用于计算图中任意两个节点间的结构相关性。计算图中各个节点与节点j的结构相关性方法如式(6)所示。
Rk=cWRk -1+(1-c)ej
(6)
其中,1-c为返回节点ej的概率,ej为第j维为1的单位向量,初始时R0=ej,Rk和W的含义和式(5)相同。
ESU图为有向图,三类实体的重要性体现方式不同。主办方si的重要度取决于si举办的所有活动及包含的所有用户对其产生的影响,因此si的计算需要考虑其出度(Hubs),PageRank考虑的是页面的入度。活动e节点的重要度取决于主办方以及用户对其产生的影响。用户u节点的重要度取决于主办方和关注他的用户对其产生的影响。因此,ESU图的活动和用户重要度的计算,应该考虑其入度(Authorities)。
因此,在计算ESU各类节点的重要度时,需要从出度和入度两个角度出发进行迭代计算。为此,我们提出了ESU图上基于双向重启随机游走算法(BD -RWR)的节点重要度计算方法。活动主办方的重要度、用户和活动的重要度迭代计算分别如式(7)~式(9)所示。
其中,sej、uej和eej分别为第j维为1的单位向量。1-c为返回节点sej、uej和eej的概率。WSE、WSU、WUU和WUE分别为主办方—活动、主办方—用户、用户—用户和用户-活动的关系权重。
经过若干次迭代后,得到每个用户ui的节点重要度。节点重要度越大,说明活动ei在ESU图上对用户产生的社交影响力越大,用户越有可能参加活动ei。
为保证随机游走算法迭代结果的收敛,不同算法采用了不同的策略。经典的PageRank在计算节点重要度时引入阻尼系数d,确保迭代过程中不会出现节点重要度为0的情况,即认为图是强连通的,对应的矩阵是不可约的。对于重启型随机游走算法RWR而言,通过添加返回起始节点的概率,同样达到了迭代结果收敛的目的。
定理1双向重启随机游走算法BD-RWR是收敛的。
证明: 在计算主办方的重要度时,考虑的是节点出度,添加了返回到自身节点概率(1-c)。式(7)的转移概率矩阵WSE和WSU分别通过2.2.1节中的主办方-活动权重、2.2.2节中主办方-用户权重计算方法得到,在迭代过程中保持不变。活动节点初始权重E0=1/|E|,E是活动集合,用户节点初始权重U0=1/|U|,U是用户集合。式(7)的主办方重要度计算转化为单向的重启型随机游走算法,只是与传统的随机游走算法的方向相反而已。可见,基于出度的主办方重要度计算的迭代过程是收敛的。
在计算活动和用户节点的重要度时,考虑到节点入度,添加了返回到自身节点概率(1-c)。式(8)的转移概率矩阵WSU和WUU分别通过2.2.2节中的主办方-用户权重、2.2.3节中的用户—用户权重计算方法得到。式(9)的转移概率矩阵WSE和WUE分别通过2.2.1节中的主办方—活动权重、2.2.4节中的用户-活动权重计算方法得到。主办方节点初始权重S0=1/|S|,S是主办方集合。式(8)的用户重要度计算和式(9)的活动重要度计算转化为单向重启型随机游走算法。可见,基于入度的活动和用户重要度计算的迭代过程是收敛的。
由以上分析可见,双向重启随机游走算法BD -RWR是收敛的。
给定一个特定活动ei后,面向用户推荐时,需要考虑ei的活动内容与用户uj曾经参加过活动的相似性。假设用户uj曾经参加过的活动集合记为E(uj)。
已有方法在计算活动ei与用户参加过的活动E(uj)的相似度时,多是使用LDA模型从活动中提取主题,进而使用余弦相似度度量活动的相似性。
但由于EBSNs活动资料往往比较简练,这加重了文本资料的稀疏性,不容易从文本中准确的提取出主题。而且把所有的活动混在一起提取主题,容易把用户参加量小的活动淹没。
对从豆瓣同城采集到的17 822个活动(实验3.1节)进行统计发现,其中85.7%的活动都带有标签,这为活动的相似度计算提供了便利。
使用活动的类型标签计算活动的相似性,活动ei与E(uj)的相似度计算方法,如式(10)所示。
(10)
其中,CF(ei)表示活动ei的类型标签集合,CF(E(uj))表示用户uj参加过活动的类型标签集合。
使用活动标签的方法计算活动间的相似性不仅计算量小,而且效果也较好。实验3.6节的结果表明,从活动内容的角度出发,使用LDA模型与使用活动标签相比,F1-measure仅仅相差0.01。
活动地点指活动线下举办的真实地点。和传统社交媒体不同的是,线下活动的举办是EBSNs独有的特点。因此,地点因素对决定是否向用户推荐活动有重要的作用。
基于位置的社交网络(Location-based Social Networks,LBSNs)相关的研究[引用]已经表明,随着活动地点与用户地点距离的增加,用户参加活动的可能性会降低。通过对采集的豆瓣同城用户参加活动地点的统计发现,用户所在地点与活动举办地点服从幂率分布。即大多数用户参加的活动,其地点都是离用户地点是比较近的,在对数坐标下表现为一条直线。
图3显示了北京城市用户参加活动与用户地点之间的关系(数据描述详见实验3.1节,对数坐标)。
图3 用户参加活动的距离概率分布
活动ei地点与用户uj地点的相关性计算如式(11)所示。
(11)
式(11)中,lei表示活动ei的地点,luj表示用户uj的地点,dis(lei,luj)表示lei与luj的距离。地点都有一个经度和维度的数值,容易计算两个地点的距离。
有的EBSNs在用户注册时,要求通过定位的方式输入用户的地点。例如,Meetup;有的EBSNs在用户注册时,地点是用户选取的,而且只是到了地市级别,不够具体,比如豆瓣同城。而用户在注册时通过定位方式输入的注册地点,并不一定就是用户的工作或者居住地点。因此,我们使用用户曾经参加过的活动地点估算用户的具体地点。
EBSNs上举办的活动地点一般都比较具体。例如“东城区,东直门南大街14号,保利剧院”,通过地图定位容易确定活动的经纬度值。假设用户参加过的活动集合为uj.E={e1,e2,…,em}。每个活动的地点用经纬度表示,记为uj.ek=(lon,lat)(1≤k≤m),用户参加过活动的中心地点记为luj=(lon,lat)。uj.E包含活动的纬度的最大和最小值计算分别如式(12)、式(13)所示。
uj.E包含活动经度的最大和最小值计算分别如式(14)、式(15)所示。
则中心地点luj=(lon,lat)的经度和纬度的计算方法分别如式(16)、式(17)所示。
人们参加活动受限于时间因素的影响,一般表现为天和周的周期性。例如,习惯每天下班后参加活动,或者每个周末参加活动。因此,时间因素对用户能否参加活动有重要的影响。
将用户曾经参加过的与活动ei同类型的活动集合记为E(uj)(每个活动都有类型标签),活动ei的举办时间记为tei,用户参加过的同类型活动ek′∈E(uj)的举办时间记为tek,则活动ei的时间与同类型活动ek′的时间偏差如式(18)所示。
(18)
活动ei与用户uj的时间偏差计算方法如式(19)所示。
(19)
式(19)在计算活动ei与用户uj的时间偏差时,一方面考虑活动的类型,因为不同的时间,用户参加的活动是不同的。例如,晚上参加聚会,而周末参加旅游;另一方面,使用用户uj参加过的活动中与ei举办时间最靠近的活动时间偏差作为度量标准,可以避免求平均值带来的偏差。
在计算活动时间的偏差时,不考虑年、月和日的差别,只考虑小时的偏差情况。例如,活动ei的举办时间tei=“2017年7月1日15点”,活动ek′的举办时间tek′=“2017年7月23日14点”,则(tei-tek′)2=(15-14)2=1。
本文选取豆瓣同城的数据作为实验语料。豆瓣同城拥有超过3千万用户,且线下活动的开展活跃度也很高。近期的不少研究成果也都使用豆瓣作为实验数据的来源,包括文献[2,6,7,9,12]。
使用豆瓣提供的开放接口“API V2”获取采集数据。例如,通过接口“https: //api.douban.com/v2/event/28684165”可以获取一个活动JSON格式的信息。在采集用于分析的数据的时间段上,Zhang等[8]实验结果表明,使用60天的数据进行分析效果已经足够好。因此,我们采集了豆瓣同城北京市2017年3月1日—2017年4月30日,共计61天的数据。为了避免一些不活跃用户或者活动对总体实验结果的影响,删除其中的一些非常不活跃的用户及活动。感兴趣/参加活动少于5个的用户认为是冷启动用户,占所有用户总数的9%;如果某个活动感兴趣/参加的人数少于8个就认为是冷启动活动,占所有活动总数的6%。经过对2个月的数据进行预处理之后,共得到8 663个用户,17 822个活动,294个主办方。
在EBSNs中,用户对于某个活动用参加或者不参加来表示,可以将活动参加问题转换为一个二分类问题。实验时,随机选取数据集中的80%用于训练,其他的20%用于测试。
实验方法通过WEKA平台实现,WEKA是一个基于JAVA公开的数据挖掘工作平台,集成了大量数据挖掘和机器学习算法,包括数据的预处理、分类、回归、聚类、关联规则和交互式界面上的可视化等等。
使用F1-measure=(2×P×R)/(P+R)作为评测指标,其中P是推荐用户参加活动的准确率,R是推荐用户参加活动的召回率。
本文共选用了6种实验方法用于实验的分析和比较,分别介绍如下:
• 基本的矩阵分解方法,它只考虑用户-活动的参加结果,矩阵中元素的权值使用本文式(4)计算,简记为MF;
• 使用了矩阵分解相关的信任传播,整合了用户-活动参加结果和简单社交关系,用户社交关系的构建使用本文提出的式(3),类似于文献[4]提出的方法,简记为SocialMF,参数设置,λu=λv=0.1,λT=5;
• 文献[9]提出的方法,简记为MF-EUN-ER,影响力的阈值设置为0.5,活动的邻居k1=50,用户的邻居k2=60,区域聚类个数t=20;
• 由于决策树方法可读性好,有助于人工分析,所以使用经典的J48决策树方法检验本文所提4个因素的效果。四个因素的计算方法如第2节所述,其中用户间关系权重参数α=β=0.5(经过实验确定),简记为F4-DT-ER;
• 本文所提方法的变形,活动内容主题的提取使用LDA模型,其他因素计算方法不变,参考文献[9],对LDA涉及的参数分别设置为α=50/k,β=0.01,k为主题的个数,k=70,简记为F4-C-DT-ER;
• 本文所提方法的变形,社交影响力的计算使用经典的PageRank方法,其他因素计算方法不变。类似于文献[6-7]所提方法,简记为F4-SI-DT-ER。
对于用户参加活动的推荐总体结果,使用四种方法进行比较,分别是MF、SocialMF、MF-EUN-ER和F4-DT-ER。四种方法获取的结果如表1所示。
表1 四种方法获取的总体推荐结果
由表1可见,本文提出的方法F4-DT-ER获取的结果最为理想。F1-measure=0.86,其次是MF-EUN-ER方法,F1-measure=0.80。四种方法中,MF的效果最差,F1-measure=0.67。主要原因是其仅仅从用户和活动之间的关系出发,忽略了EBSNs上的很多其他关系,类似于传统用户—项目之间的推荐方法,这也说明传统的推荐方法用于EBSNs的用户参加活动推荐效果是比较差的。方法SocialMF的效果有所提升,F1-measure=0.72,原因是其考虑到了社交关系,考虑到了用户间的信任传播,但其仅仅是考虑了用户之间的社交关系,对其他实体间的关系利用不够。方法MF-EUN-ER根据EBSNs具有的特点,考虑到了活动内容、活动地点及社交关系,得到的结果有了很大程度的改善,F1-measure值比NMF提高了0.13,比SocialMF提高了0.08。本文所提方法F4-DT-ER深入的分析利用了EBSNs独有的社交关系特点,提出了ESU图的用户影响力计算方法,很好的利用了活动的内容、地点及时间因素,取得了最好的效果。
这说明,对EBSNs而言,需要抓住其独有的特点,综合的考虑多个方面的因素,才能取得更好的用户参加活动推荐结果。而本文所提的ESU图表示模型、社交影响力计算方法、活动推荐多因素决策模型都是EBSNs所独有的特点。
为了检验4类因素对用户参加活动推荐结果的影响,使用经典J48决策树,对4类因素进行考察。仅仅使用内容因素C、空间因素L、时间因素T和社交影响因素SI的方法,分别记为C-DT-ER、L-DT-ER、T-DT-ER和SI-DT-ER。不考虑社交影响因素SI,只使用内容因素C、空间因素L和时间因素T,该方法记为CLT-DT-ER。只使用社交影响因素,不考虑内容因素C、空间因素L和时间因素T,该方法记为SI-DT-ER。共计使用6种方法进行实验的对比和分析。
对每种方法,进行4次交叉检验,最后取平均值。6种方法得到结果如表2所示。
表2 六种方法获取的推荐结果
由表2可见,方法T-DT-ER、L-DT-ER、C-DT-ER和SI-DT-ER都使用单一的因素进行用户参加活动推荐,效果最好的是SI-DT-ER,F1-measure为0.69。这说明在EBSNs上,有效的利用ESU图的社交关系,进行合理的影响力计算便可以取得较好的效果。单一的使用时间T效果最差,F1-measure为0.32。因为时间T虽然靠近,但活动的内容用户不一定感兴趣,地点可能离用户较远,不方便参加。单一的使用地点L效果也很差,F1-measure为0.33。因为地点L虽然靠近,但活动的内容用户不一定感兴趣,用户不一定有时间参加。单一的使用内容C效果有所提升,F1-measure为0.55,这说明内容因素发挥的作用较大。方法CLT-DT-ER使用了内容C、地点L和时间T因素,F1-measure为0.72,效果已经较好。方法F4-DT-ER有效的利用了EBSNs上的四类因素,取得了最好的效果。
本文在EBSNs上,根据ESU图实体独有的入度和出度的特点,分实体类型使用双向重启随机游走算法迭代计算节点的重要度。为了检验本文所提社交影响力计算方法的有效性,使用两种方法进行实验分析和比较,分别是F4-DT-ER和F4-SI-DT-ER。
对每种方法,进行四次交叉检验,最后取平均值。方法F4-DT-ER和F4-SI-DT-ER得到的推荐结果如表3所示。
表3 方法F4-DT-ER和F4-SI-DT-ER获取的推荐结果
由表3可见,方法F4-SI-DT-ER的效果也比较理想,F1-measure为0.75。PageRank方法强调节点的入度,在ESU图上,对活动、用户两类实体计算是合理的。但对主办方而言,其实体影响力的计算应该使用其出度。方法F4-DT-ER在计算节点影响力时,采用分而治之的策略,对不同实体采用不同的计算方法,体现出了ESU图独有的社交特性,因此取得的效果最好。
活动内容主题的提取,对基于内容进行活动推荐有重要的影响。已有的方法多是使用LDA模型提取活动主题,本文根据EBSNs上的活动标签描述比较丰富(约85.7%的活动有标签)的特点,使用标签计算活动之间的相似性。为了检验所提方法的有效性,使用两种方法F4-DT-ER和F4-C-DT-ER进行实验比较。对采集到的17 822个活动,删除没有标签的活动,还剩下15 273个活动。对这些活动,同样是随机选取80%进行训练,20%进行测试。
对每种方法,进行四次交叉检验,最后取平均值。方法F4-DT-ER和F4-C-DT-ER得到的推荐结果如表4所示。
表4 方法F4-DT-ER和F4-C-DT-ER获取的推荐结果
由表4可见,方法F4-C-DT-ER的效果非常理想,F1-measure为0.85。这说明使用LDA模型提取活动的主题是能够获取较好的效果,相比方法F4-DT-ER使用活动的标签仅相差0.01。但基于LDA模型的活动内容相关度计算的复杂度远远高于基于活动标签的方法。因此,对EBSNs而言,使用活动标签计算内容相似度,不但计算工作量小,而且能够获取较好的效果。
本文以活动社交网络EBSNs的用户参与新活动推荐为出发点,在总结已有研究方法的优点及不足的基础上,提出了EBSNs的活动—主办方—用户(ESU)图表示模型,揭示了EBSNs上的实体及其复杂的关联关系。由于用户参加活动受多方面因素的影响,在ESU图的基础上,提出了活动推荐多因素决策模型。进而,根据ESU图的特点,提出了分实体类型的基于双向重启随机游走算法的节点重要度计算方法。选取豆瓣同城进行了数据的采集、推荐模型、各个因素计算方法的对比分析。
虽然本文在EBSNs的用户参加活动推荐方向取得了一定的进展,但针对如下问题还需要进一步提升: ①本文的活动推荐面向的主要是EBSNs的活跃用户,冷启动用户参与活动的推荐需要借鉴已有的方法并结合EBSNs独有的特点加以解决; ②EBSNs活动内容的描述体现在活动名称(活动概述)、活动详情、活动标签、活动类型等等方面,如何全面的衡量活动之间的相似度需要进一步研究; ③用户在EBSNs上,除了有与活动相关的信息外,还有用户喜欢、用户日记、用户相册、用户评论等等信息。这些信息对用户参加活动的推荐作用如何,需要进一步研究; ④面向EBSNs,除了进行用户参加活动的推荐研究之外,其他内容也需要深入研究。含主办方和用户行为分析,社区检测(含重叠社区),社区及用户的倾向性分析等等。
致谢
感谢江苏金鸽网络科技有限公司为本研究提供的实验数据集。