APP下载

基于事件社会网络推荐系统综述*

2021-03-06廖国琼蓝天明黄晓梅万常选刘德喜刘喜平

软件学报 2021年2期
关键词:群组因子用户

廖国琼 ,蓝天明 ,黄晓梅 ,陈 辉 ,万常选 ,刘德喜 ,刘喜平

1(江西财经大学 信息管理学院,江西 南昌 330013)

2(江西省高校数据与知识工程重点实验室(江西财经大学),江西 南昌 330013)

3(武夷学院,福建 南平 354300)

4(江西财经大学 软件与物联网工程学院,江西 南昌 330013)

近年来,随着信息技术的发展,基于事件社会网络(event-based social network,简称EBSN)[1],如 Douban Events、Meetup、Plancast 等,为人们在线上与线下同时交互提供了便捷方式.通过这些平台,用户既可以根据个人爱好加入不同线上兴趣组,也可以发布并主持和参加感兴趣的各种事件(如音乐会、体育活动、聚会、学术会议等).不同于其他社会网络,ESBN 包含两种互动方式:线上互动和线下互动.线上互动是指用户可以通过线上网络进行沟通;线下互动是用户在特定时间和地点参加线下事件,进行面对面交流.因此,EBSN 充当了虚拟世界和现实世界之间的桥梁,有效地增强了用户的互动交流.

EBSN 每天都会产生大量新事件和新兴趣组,目前已拥有大量用户且在快速增长.例如,截至2019 年11 月,Meetup 已有超过4 000 万用户和32 万兴趣组,每月举办的事件超过300 万.对于事件组织者而言,其希望参与事件的人数越多越好,而对于用户而言,他们希望认识更多的朋友、增强事件体验.然而,面对EBSN 中的海量信息,用户越来越难以发现他们喜好的事件和兴趣组,因此,研究EBSN 推荐系统具有重要研究意义和应用前景.

国内外许多重要研究机构与高校的研究者们对EBSN 进行了研究,获得了许多研究成果,发表在多个重要领域的国际学术会议和期刊.本文根据最近研究对EBSN 推荐系统进行了综述:第1 节概述EBSN 的定义、结构、属性和特征.第2 节介绍EBSN 推荐系统的基本框架,以及与其他推荐系统的区别.第3 节对EBSN 推荐系统的推荐方法和内容进行总结和对比分析.第4 节分析EBSN 推荐系统的研究难点及发展趋势.第5 节总结全文工作.

1 EBSN 概述

Liu 等人[1]最早提出EBSN 的概念,其形式化描述为:EBSN 是一个异构网络G=〈U,Aon,Aoff〉,其中,U表示具有n个用户的集合,Aon表示线上社交关系的集合,Aoff表示线下社交关系的集合.EBSN 可分为线上社交网络Gon=〈U,Aon〉和线下社交网络Goff=〈U,Aoff〉两部分.

图1 为常见的EBSN 网络结构.EBSN 中存在多种社会关系,包括用户参与兴趣组关系、用户参与事件关系、事件与举办地点关系等.用户加入线上兴趣组形成了线上网络(online network),用户参加事件则形成了线下网络(offline network).

Fig.1 EBSN network structure图1 EBSN 网络结构

EBSN 中的实体主要有用户、标签、兴趣组、事件、位置、事件组织者等.与其他社会网络(social network)如Facebook、Twitter 等相比,EBSN 具有以下独特特征.

(1) 显式偏好缺失.在EBSN 中,通常未提供显式用户偏好信息,但会提供用户表达参与意愿的选项.如Meetup 中,用户通过回复RSVP(一种选择机制)表明是否将会参与一个事件.由于选择“正”的用户比选择“负”或未回答的用户更有可能参加事件,故已有研究大多用RSVP 回复“正”的用户代表其参与了事件.Macedo 等人[2]分析了Meetup 中事件的RSVP 分布情况,统计数据显示:超过45%的事件最多有1 个RSVP,大约90%的事件最多有10 个RSVP.因此,回复了“RSVP”的用户数量不多,这使大多数传统推荐算法不适用于EBSN 推荐.

(2) 事件和兴趣组参与呈重尾分布.Liu 等人[1]通过对2011 年10 月~2012 年1 月Meetup 中的数据分析,发现用户参与事件和兴趣组都呈现重尾分布.这说明大多数事件只有少数参与者,但也存在具有大量参与者的事件.同样,尽管大多数兴趣组规模较小,但在Meetup 数据集中也存在大型兴趣组.

(3) 事件发生呈现时空规律性.Liu 等人[1]通过数据分析发现,社会事件发生表现出规律的时空模式.例如:通常在工作日的下午14 点左右会举办相对较多数量的事件,到晚上8 点发生的事件数达到一天的最大值;周末的事件在全天分布相对均匀;事件主要发生在城市地区等等.

(4) 事件参与地理依赖性.Macedo 等人[2]描绘了Meetup 中用户家庭位置与事件发生位置之间的距离分布,发现大约50%的用户为距离其家庭位置10km 范围内的事件提供了正RSVP,但未向距离其家庭位置100km 以外的事件提供RSVP.Liu 等人[1]观察到,用户参与的事件中有81.93%发生在其家庭位置10 英里范围内,表明用户倾向于参加其家庭位置附近的事件而不是更远的事件.

(5) 事件生命周期短.事件的生命周期为事件创建到其结束之间的时间段.事件推荐仅在事件创建之后到事件开始之前有效.Macedo 等人[2]发现,大多数事件的生命周期为5~100 天.这意味着虽然一小部分事件的生命周期非常短(1 天),但大多数事件的发生时间足以让用户发现或引起他们的注意.

(6) 用户表达参与意愿呈现时间规律性.在事件的生命周期中,用户表达参与意愿呈现时间规律性.越接近事件的发生时间,则该事件接收的用户参与意愿越多.Macedo 等人[2]发现:在生命时间超过100 天的事件中,在事件最后的20%生命阶段中,所有正RSVP 的提供超过80%,即大多数RSVP 的提供时间接近事件的发生时间.

(7) 线上网络结构密集.Liu 等人[1]发现:EBSN 的线上网络比线下网络更为密集,具体表现为线上网络具有较大的强连通分量、较高的聚类系数和较低的平均分离度.其原因是,用户参与线上网络的人数多于实际参与社会事件的人数.

这些特征给EBSN 推荐系统带来了一些挑战,主要有:

(1) 冷启动问题.冷启动问题是推荐系统面临的一个挑战.推荐系统需要根据用户的历史信息预测用户未来的行为,因此需要用户的大量历史数据.而对新用户和新项目来说,没有相应的历史评分数据,这导致用户与用户、项目与项目之间无法计算相似性,从而无法预测评分,无法获取新用户、新项目的推荐结果.由于EBSN 中显式偏好缺失,用户几乎不对参与过的事件评分;而且ESBN 推荐的事件是在未来时间发生,在事件发生前没有任何用户参与及评价信息.同时,EBSN 中用户表达参与意愿的发生呈现时间规律性,即大多数用户的参与意愿提供时间接近事件的发生时间,这使得EBSN 推荐系统难以使用这部分信息.因此,EBSN 推荐系统面临的冷启动问题尤为严重.

(2) 数据稀疏问题.数据稀疏是推荐系统面临的另一个重大挑战,指用户的评分数量在评分矩阵中所占的比例过小,这会导致非常差的推荐质量.EBSN 中,事件和兴趣组参与呈重尾分布,即大多数事件和兴趣组只有少数参与者;同时,EBSN 中表达了参与意愿的用户数量非常少.因此,EBSN 推荐系统面临的数据稀疏问题更突出.

(3) 准确获取用户偏好问题.EBSN 中包含丰富的上下文信息,这些信息从不同侧面、不同角度直接或间接反映及影响用户偏好,因此它们是获取用户偏好和推荐生成的基础.同时,这些信息表现形式复杂多元,如事件描述信息、EBSN 网络结构、用户评论、数值、地理坐标、图片等.利用向量表示这些信息时,通常具有较高维数.如何融合这些信息以准确获取用户偏好,是EBSN 推荐系统面临的又一重大挑战.

因此,有必要为EBSN 推荐系统研究新的方法和策略,以满足不同需要.

2 EBSN 推荐系统概述

2.1 EBSN推荐系统的框架

EBSN 推荐系统的框架主要包括3 层:数据采集层、数据处理层和推荐生成层.如图2 所示.

1)数据采集层.数据采集层获取被推荐对象的各种相关信息,为EBSN 推荐系统提供数据来源.采集的信息主要包括用户信息、事件信息、兴趣组信息、用户参与事件信息和用户参与兴趣组信息等.

2)数据处理层.数据处理层负责对采集到的数据进行预处理,主要包括上下文信息提取与融合、显式与隐式反馈数据获取、用户偏好获取、群组识别和群组偏好获取等,为推荐生成层提供依据和支撑.

3)推荐生成层.推荐生成层利用不同的推荐生成算法得到推荐结果.EBSN 推荐系统中常用的推荐生成方法有基于内容的推荐生成方法、上下文感知推荐生成方法、基于因子分解的推荐生成方法、基于图模型的推荐生成方法、基于概率模型的推荐生成方法、基于深度学习的推荐生成方法、基于启发式算法推荐生成方法和混合推荐生成方法.

Fig.2 Framework of the EBSN recommendation system图2 EBSN 推荐系统的框架

2.2 EBSN推荐系统与其他推荐系统的区别

推荐系统目前已经在各个领域中被用于解决信息过载问题,通常需要结合用户的历史偏好信息向用户推荐其可能喜欢的项目.推荐方法是推荐系统中最核心、最关键的部分,在很大程度上决定了推荐系统的性能.

(1) 传统推荐系统

Jannach 等人[3]将传统推荐系统分为基于协同过滤的推荐系统、基于内容的推荐系统、基于知识的推荐系统和混合推荐系统.

· 基于协同过滤的推荐系统找出与被推荐用户具有相似偏好的其他用户喜好的项目,或找出与被推荐用户喜好的项目相似的项目并推荐.

· 基于内容的推荐系统在推荐过程中首先需要定义项目的相关内容特征,然后基于被推荐用户喜好的项目特征提取用户的偏好特征,并推荐与用户偏好特征相似的项目.

· 基于知识的推荐系统需要和用户进行多轮会话,从每一轮会话中直接获取用户需求,在互动过程中,结合用户需求筛选出候选项中用户感兴趣的项目.

· 混合推荐系统在推荐过程中采用了多种算法,通过结合不同算法的长处,避免或克服其短处,获得更高效的推荐结果.

(2) 社会化推荐系统

近年来,结合社会化信息的推荐系统引起了更多研究者的注意.社会化推荐系统通过挖掘社交关系获取社会化信息[4],结合社会化信息与用户基本信息,将社会化信息作为一种辅助信息提高推荐效果[5].由于添加了多种社会化信息的特性,能获取到更准确的用户偏好,因此,社会化推荐能更高效的解决推荐系统中的常见难题,如冷启动、数据稀疏等.

(3) 基于位置的社会网络推荐系统

基于位置的社会网络(location-based social network,简称LBSN)是一个具有3 层结构的异构网络,包括地理位置层、社会关系层和媒体内容层[6].LBSN 中有丰富的信息,如用户、位置、时间、用户签到和社会关系、评价等信息.推荐系统利用LBSN 中丰富的信息,有针对性地向用户推荐其感兴趣的地点、朋友、路径和社会活动等,以提高用户的使用体验和活跃性.LBSN 推荐系统通常包括位置推荐、路径推荐、朋友推荐、社会活动推荐、链接预测等功能[7].

(4) 与其他推荐系统的区别

EBSN 推荐系统是目前主动为用户提供各种服务信息的技术之一,它需要满足用户的事件推荐、群组推荐和朋友推荐等服务的基本需求,具有社会化推荐系统的基本特点,与LBSN 推荐系统有相似的异构社会网络关系等.表1 列出了基于事件社会网络推荐系统与其他推荐系统在原始数据收集、用户偏好获取、推荐生成、推荐目标和被推荐对象等方面的异同点.

Table 1 Comparison of the EBSN recommendation system with other recommendation systems表1 EBSN 推荐系统与其他推荐系统的对比

3 EBSN 推荐系统的推荐方法和推荐内容

EBSN 推荐系统中,推荐目标与被推荐对象之间存在复杂的关系.借助于事件的描述内容、用户的社会关系等上下文信息,EBSN 推荐系统可以获取更准确的用户偏好,从而获得更准确的推荐结果.本文总结现有EBSN推荐系统的推荐方法主要包括8 种:基于内容的推荐方法、上下文感知推荐方法、基于因子分解的推荐方法、基于图模型的推荐方法、基于概率模型的推荐方法、基于深度学习的推荐方法、基于启发式算法的推荐方法和混合推荐方法.与传统推荐系统相比,EBSN 推荐系统具有更多推荐内容.本文依据推荐内容将EBSN 推荐系统分为事件推荐、群组推荐、事件安排、参与者预测、联合推荐、朋友推荐、场地推荐这7 种.

3.1 基于内容的推荐方法

在EBSN 推荐系统中,基于内容的推荐方法通过事件描述建立事件特征,通过分析用户参与事件的描述信息获得用户偏好特征,通过计算事件描述特征和用户偏好特征的相似度获得用户感兴趣的事件进行推荐.

Yin 等人[8]将用户、事件、位置、时间和文本内容之间的关系嵌入到共享的低维向量中,获得用户和事件在相同的低维空间中的特征向量.根据特征向量计算目标用户对推荐事件的偏好、合作伙伴对事件的偏好,同时结合目标用户与推荐合作伙伴之间的社交关系亲密度,向用户推荐事件-合作伙伴对.目标用户对合作伙伴事件对的偏好计算公式如下:

其中,u,u′,e分别是目标用户、被推荐合作伙伴和被推荐事件,其特征向量分别是是偏差.

Zhang 等人[9]使用Latent Dirichlet Allocation(LDA)[10]提取每个事件的主题分布,根据用户的历史参与信息提取用户的主题分布,然后计算事件和用户的主题分布的相似性,从中选择具有高相似度的事件进行推荐.

Wang 等人[11]采用前馈神经网络将事件的内容描述、发生地点和发生时间嵌入到低维向量中,以表示事件的潜在特征,然后根据用户的历史行为学习用户的偏好特征向量,最后计算用户的偏好特征向量和事件特征向量的相似度,推荐相似度最高的前n个事件.

基于内容的推荐方法结合事件的内容描述、地点位置、时间等提取事件的特征,通过用户的历史参与信息获取用户的偏好特征,能获取更准确的用户偏好.推荐结果根据被推荐用户的兴趣偏好产生,因此,不会因为数据稀疏无法产生推荐结果,能解决新事件的冷启动问题.但是推荐结果只根据用户的历史喜好产生,推荐结果基本与用户历史偏好相似.因为新用户没有历史喜好,所以该方法无法为新用户产生推荐结果.

3.2 上下文感知推荐方法

EBSN 推荐系统中,要推荐的事件都是即将发生的,不含任何用户的参与信息,故存在事件冷启动问题.通过引入上下文信息,可有效解决该问题.EBSN 中虽然缺乏用户的显式反馈信息,但包含多种上下文信息,如事件主题、内容描述、举办时间、举办场地、用户社会关系等.上下文感知推荐方法首先结合这些上下文信息从用户参加的历史事件集合中提取用户对事件的偏好,如用户的事件主题偏好、用户的事件描述内容偏好、用户的事件举办时间偏好和用户的事件举办场地偏好等,获得这些偏好后,直接融合或使用矩阵分解等方法融合,得到用户偏好,然后依据用户偏好获取被推荐对象,最后对被推荐对象排序或使用BPR[12]等方法优化排序获取推荐列表.由于结合上下文信息能从多个角度获得用户更全面准确的偏好,因此可以帮助用户从海量资源中获取满足其自身需要的信息.上下文感知推荐方法是应用于EBSN 推荐系统中的一种高效的推荐方法.

在传统推荐系统中,用户对项目的评分模型可以表示如下:

上下文感知推荐方法将其扩展为包含多种上下文信息的多维评分模型,如:

或者,

其中,D1,D2,…,Dn代表维度,用户对项目的评分函数被定义为空间D1×…×Dn上的函数.

在EBSN 推荐系统中,结合上下文进行推荐已有大量的研究,如文献[13-24]等.

Macedo 等人[13]利用了上下文信息T,S,C,V:T为时间信息,计算用户的时间偏好和事件发生时间的余弦相似度作为在上下文T中用户对事件的评分;S为用户的社会关系信息,计算用户所在群组成员共同参与事件的频率作为在上下文S中用户对事件的评分;C为事件描述内容的信息,计算事件描述内容和用户的内容偏好之间的相似度作为用户在上下文C中用户对事件的评分;V为地理位置信息,计算事件发生地点和用户的地点偏好之间的距离作为在上下文V中用户对事件的评分.将这些评分结合起来学习进行事件推荐,评分公式如下:

给定目标用户u∈U和上下文信息t∈T,s∈S,c∈C,v∈V,使用列表学习方法Coordinate Ascent 学习获取前n个事件推荐,获取公式如下:

其中,n表示要推荐的事件数,Eu表示用户过去参加过的事件集.

Wang 等人[18]在推荐中结合了其他社交网络的信息,该信息表示事件组织者的社会影响,同时考虑了群组成员之间的互动.作者结合时间、位置、内容、事件组织者影响和群组成员影响等5 种上下文信息获取用户对事件的评分,并使用如下融合模型来计算用户-事件对(u,e)的总体推荐得分:

其中,S′=[St(u,e),Sv(u,e),Sc(u,e),Sh(u,e),Sm(u,e)].公式(7)中,5 个评分分别对应用户考虑时间、位置、内容、事件组织者影响和群组成员影响时对事件的评分,W=[wt,wv,wc,wh,wm]是5 个评分的权重向量.

文献[14-17,19-24]分别结合了不同的上下文信息(如网络拓扑结构、事件组织者、事件描述内容)、时空信息、用户的社会关系和社交媒体中用户的帖子内容等,获取用户对事件的偏好.Trinh 等人[25]结合了事件内容、时空信息和用户偏好,向关键用户的活跃朋友推荐事件.Ding 等人[26]结合了用户社会关系、时间偏好、位置偏好、用户活跃程度预测新事件中的参与用户.

上下文感知推荐方法结合丰富的上下文信息获得更准确的用户偏好,因此能提高推荐准确率.引入上下文信息能从多方面补充用户与事件信息,在一定程度上弥补了数据稀疏的不足;同时,由于新用户和新事件都有基本的信息,这些信息能作为上下文信息,因此可以避免冷启动问题.但是上下文获取的难度大,对其建模与计算的复杂度高.

3.3 基于因子分解的推荐方法

基于因子分解的推荐方法利用EBSN 中的显式和隐式反馈信息提取部分用户的偏好,结合因子分解生成所有用户的偏好,然后采用BPR、排序学习等方法学习得到推荐列表.常见的因子分解模型有矩阵分解(MF)[27]、概率矩阵分解(PMF)[28]、集体矩阵分解(CMF)[29]、SVD[30]、SVD++[30]、张量分解[31]等.

EBSN 中存在丰富的隐式反馈信息和上下文信息.各种上下文、用户、事件、群组之间形成了多种多样的关系,因子分解模型可以发现构成这些关系各实体的潜在因子.EBSN 推荐系统中,基于因子分解的推荐方法首先获得与推荐目标和被推荐对象相关的关系,如用户与朋友的关系、事件与事件发生地点的关系等.然后结合这些关系,使用因子分解方法确定推荐目标和被推荐对象的潜在因子,获得推荐目标和被推荐对象之间的评分矩阵,最后采用随机梯度下降、BPR、坐标上升法等优化算法学习被推荐对象的排名.

已有研究利用因子分解方法产生推荐,不同的参考文献采用了不同的因子分解模型.

Zhang 等人[32]提出了一个集体贝叶斯泊松分解(CBPF)模型来解决EBSN 中冷启动本地事件推荐问题.CBPF 模型的评分矩阵为为用户潜在因子,θe为事件潜在因子.作者认为:用户u和他的朋友f存在潜在因子相似矩阵Suf,事件潜在因子包含事件组织者潜在因子θo、事件位置潜在因子θl、事件描述内容潜在因子θc和单词潜在因子βv.模型通过标准集体矩阵分解模型的思想,联合这些因子预测用户对事件的评分,并采用有效的坐标上升算法学习事件排名.

Qiao 等人[33]结合用户的线上和线下社会关系、事件的地理位置特征和潜在的用户事件评分,对用户进行事件推荐.其扩展评分矩阵如下:

其中,α为融合参数.使用潜在因子分解方法得到近似用户评分矩阵,公式如下:

用户对事件发生的区域偏好评分矩阵定义如下:

其中,是关于用户ui的潜在因子,是一个低维行向量;Mt是关于区域mt的潜在因子,是一个低维列向量;Pjt表示事件ej在区域mt发生的概率.

Du 等人[34]结合发现的k个用户最相似事件的影响因子预测事件参与率.作者提出了事件描述内容因子、事件发生时间因子、事件发生地点因子和用户的社交关系因子,通过邻域集将这些因子融合,模型组合如下:

其中,表示用户u的平均评分;N(u,e;k)表示和用户u参加的事件e最相似的k个事件集合,是由相似性度量Simu(e;ei)确定的,其整合了所有提取的因子;wei是和矩阵分解模型参数一起学习的自由参数;Uu和Ee分别代表用户u的特征向量和事件e的特征向量.在计算过程中,只需要存储和更新每个事件的k-最近邻居的参数,而不是所有事件对.

Li 等人[35]提出一种称为集体矩阵分解与事件-用户邻居(CMF-EUN)模型来推荐事件.CMF-EUN 由3 部分组成:集体矩阵分解、事件邻域发现和用户邻域发现.模型考虑了相似用户的影响因子和相似事件的影响因子.整体模型如下所示:

第1 部分中,Uu和Ee分别代表用户u的特征向量和事件e的特征向量;第2 部分表示相似用户的影响,其中,表示用户u的平均得分,Nk1(u,e)表示与事件e相似的事件;第3 部分表示相似事件的影响,其中,表示事件e的平均得分,Nk2(e,u)表示与用户u相似的用户集合.k1 和k2 分别表示事件邻域和用户邻域的数量.最后,使用随机梯度下降算法进行优化.

文献[36-47]提出了多种因子分解模型,以计算用户之间的影响、进行事件推荐、朋友推荐、跟随者推荐、参与者预测、获取参与者影响力等.

因子分解编程容易实现,实现复杂度低,预测效果好,具有良好的可扩展性.通过获取EBSN 中多种多样的关系,因子分解方法能有效获取用户偏好,从不同角度对相同数据解释,相当于增加了数据量,因此弥补了数据稀疏的不足;同时,由于获取了用户与事件的多种关系,也在一定程度上解决了冷启动问题.但存在的缺点有:需要花费大量时间训练模型,获得的推荐结果不具有很好的可解释性等.

3.4 基于图模型的推荐方法

基于图模型的推荐方法将EBSN 中的用户、群组和事件等实体构建成图,并度量图中节点的相似度,获取推荐列表.Meng 等人[48]将基于图模型的社会化推荐方法分为两种:一是基于图结构的推荐方法,二是链接预测方法.EBSN 推荐系统主要采用了链接预测方法.链接预测方法能把原始的输入数据表示成特征向量,通过获取隐式和显式反馈信息,计算用户和事件的相似度产生推荐.

基于图模型的推荐主要有两个方面:一是构图,二是对被推荐对象排序.EBSN 中通常包括用户、群组、事件、社会关系、标签、位置、时间、事件组织者等实体信息,使用这些信息可以构建多部图.然后使用随机游走[49]、重启随机游走[50]、马尔可夫模型等方法度量图中节点的相似度,来对图的节点排序.

随机游走类似于PageRank[51],是在一维或多维空间上的随机过程,它能用来表示不规则的变动形式.重启随机游走是一种特殊的随机游走,在每一步游走时,随机游走者以一定概率跳到邻居节点或回到起点.通过以下公式计算一次迭代向量→.

其中,为随机游走向量,表示转移概率矩阵,1-c为重启概率,是随机游走重启向量.

EBSN 中有许多研究基于图模型推荐,文献[52,53]采用随机游走方法,文献[54-58]采用重启随机游走方法.

Pham 等人[53]提出一个基于图的通用模型称为HeteRS,其所提出的图有6 种节点类型,包括用户U、事件E、群组G、标签L、位置V和会话D,这些节点之间存在用户参与事件关系〈U,E〉、群组组织事件关系〈E,G〉、事件拥有发生地点关系〈E,V〉、用户参与群组关系〈U,G〉、用户拥有标签关系〈U,L〉、群组拥有标签关系〈G,L〉、事件拥有发生时间关系〈E,D〉.这些关系构成了图的边.在图上采用随机游走解决向用户推荐群组、向群组推荐标签以及向用户推荐事件这3 个推荐问题.随机游走过程如下:

其中,u(t),e(t),g(t),l(t),d(t),v(t)是分布概率向量,分别表示在时间t访问用户、事件、群组、标签、会话和位置的概率;αMN({〈M,N〉,〈N,M〉})∩R′≠∅,αMN>0 且表示从节点类型M到节点类型N的转移权重;PMN为转移矩阵;qu为查询向量,如果i=u时,qu等于1,其他情况等于0.最后,在构造的图上,针对候选用户运行该算法,以获得用户的推荐事件.

Liao 等人[58]将群组参加无经验事件的决策过程分为征询组外朋友意见阶段和组内成员协商阶段,在两个阶段分别采用随机游走和重启随机游走获取用户和群组偏好.Li 等人[54]提出了反向重启随机游走算法,在构造的图上,针对每个候选事件运行,以获得每个用户的推荐事件.Liu 等人[52]构造了由不同类型的节点,包括用户U、事件E、群组G、事件主办者H和主题Z组成的混合图.在图上执行随机游走,获得具有高收敛概率的候选事件.并在文献[55]中,应用重启随机游走(RWR)算法来计算用户事件相似性得分.在文献[56]中提出了一种基于演化图的连续推荐(EGSR)算法.在演化图上执行重启随机游走,为用户推荐事件.

Zhang 等人[57]提出了一个基于群组的事件参与预测框架,该框架在混合EGU(事件E-群组G-用户U)网络上使用个性化重启随机游走,以捕获群组内在的社交关系.Lu 等人[59]提出一种双层局部随机游走(DLRW)方法来提取用户的社交特征,并基于GBDT 算法构建了事件参与预测模型.

Boutsis 等人[60]考虑用户的历史参与行为特征和地理位置偏好,将用户组织成群组,利用混合马尔可夫模型来提取群组中用户的行为模式,进行个性化事件推荐.

基于图模型的推荐具有高灵活性和可扩展性,能在数据量不足的情况下做出相对高质量的推荐,能解决数据不足的问题和事件冷启动问题.但该方法的训练过程中需要大量的训练数据,耗费时间过长,推荐结果受限于历史数据,而且对新用户和新群组难以产生好的推荐.

3.5 基于概率模型的推荐方法

基于概率模型的推荐方法使用统计学习方法从样本数据中学习概率分布模型[48],学习到概率分布模型后,利用该模型生成被推荐对象的概率得到推荐列表,也称为概率生成方法.概率生成方法的核心在于学习并获取概率分布函数的参数,其具体的步骤包括构造似然函数、从已有的数据中学习到参数,使得似然函数的值最大.常见被使用的概率生成模型有高斯混合模型、朴素贝叶斯模型、隐马尔可夫模型等.一种应用于推荐系统的简单概率模型[61]在形式上表示如下[48].

假设存在用户集合U和项目集合I以及一个潜在的主题集合Z,项目集合中的每一个项目都有一个相应的潜在主题,用户与主题之间存在一个概率分布,项目与主题之间也有概率分布.

用户u、项目i和主题z之间的联合概率计算公式如下:

用户u和项目i之间的联合概率为

优化目标函数如下:

用户u选择项目i的概率为

EBSN 中存在多种多样的概率分布,如用户事件概率分布、用户主题概率分布、事件主题概率分布、用户群组概率分布、用户社会关系概率分布等等.这些概率分布模型中的随机变量通常是相互独立的,因此可以将不同的因素作为随机变量计算它们的联合概率.EBSN 推荐系统中,首先通过采样统计学习各种概率分布模型的参数,然后考虑推荐模型中涉及的各种随机变量之间的关系,计算这些随机变量的联合概率,得到最终的推荐目标与被推荐对象之间的概率.

EBSN 推荐系统中,使用概率生成模型进行推荐的研究有文献[62-69]等;在推荐过程中,结合概率方法的有文献[32,36,64,70]等.

Yin 等人[62]使用基于贝叶斯网络的概率生成模型来解决EBSN 中的社区检测问题.可以对检测到的社区进行更有效的事件推荐或群组推荐,模型如下:

Yuan 等人[63]提出一个概率生成模型来模拟群组偏好的生成过程,其用户u在给定主题z以及开关量x的条件下,对事件e的概率为

Du 等人[69]提出一个内容场所感知主题模型(CVTM),该模型从内容和场地两个角度捕捉群组对事件的兴趣.其群组对事件的评分计算如下:

Jeong 等人[68]提出一种考虑群体凝聚力(GGC)的群体推荐模型,其用户u在给定主题z以及开关量x,o的条件下,对事件e的概率为

文献[32,36,64,65,67,70]提出了不同的概率生成模型,用于计算群组参与事件的概率、用户参与事件的概率、两个用户在事件、群组和地理位置上影响概率、用户对其好友的影响概率与用户对事件的喜好概率等.

概率生成模型从统计的角度表示数据的分布情况,学习收敛速度快.当学习的样本数量足够时,能快速收敛到真实模型.因其学习到的是数据的概率分布,这能够反映出同类数据的相似度,因此可以解决事件冷启动问题.但概率生成模型复杂性较高,需要较长的学习时间,不能向新用户和新群组推荐.

3.6 基于深度学习的推荐方法

深度学习能够自动学习到数据的隐式特征表示,发现数据的潜在特征,并能通过在低层特征上变换形成高层的抽象特征.基于深度学习的推荐方法[71]建立深度学习模型捕获输入的用户和项目的相关信息,寻找发现数据中存在的错综复杂的关系,然后学习到用户和项目之间的非线性关系,挖掘用户与项目的潜在特征,最后,融合用户与项目的特征表示获取推荐列表.已知的应用于推荐系统的深度学习模型有许多,如一些经典的模型包括多层感知机、自编码器、卷积神经网络、循环神经网络等[71].

基于深度学习的EBSN 推荐系统结合EBSN 的特点与深度学习的优点,利用用户、群组和事件的信息、显式反馈与隐式反馈信息、上下文信息与社交关系信息等,通过获取被推荐对象相关的各种原始数据,如用户信息、事件信息、显式反馈信息与隐式反馈信息与其他信息,将需要的信息处理成合适的数据作为深度学习模型的输入.通过建立的各种深度学习模型,学习生成推荐列表并进行推荐.已有部分研究在EBSN 上结合深度学习模型产生推荐[11,46,72-76].

Wu 等人[72]提出了一个端到端的深度事件参与预测(DEAP)框架,这是一个三级分层LSTM 架构,可以明确地模拟用户的多维和不断变化的偏好,目的在于解决用户事件参与的可预测性.

Jhamb 等人[73]利用降噪自动编码器作为所提出的ACDA 模型的主要构建块,模型使用注意机制将上下文信息编码为用户偏好的隐藏表示,利用降噪自动编码器预测用户的偏好以进行个性化事件推荐.Li 等人[77]采用极限学习机(ELM)对EBSN 中提取的空间特征、时间特征、语义特征、社会关系特征和历史特征学习,将事件推荐问题转为分类问题.

有部分研究在推荐过程中结合了深度学习方法,融合EBSN 中的多种信息获取更准确的用户偏好.Wang 等人[46]利用带有字嵌入的卷积神经网络(CNN)来深度捕获用户感兴趣的事件的上下文信息,并为每个用户建立用户潜在模型.然后,将用户潜在模型合并到概率矩阵分解(PMF)模型中,以提高推荐准确性.Luceri 等人[74]引入了一个深度神经网络(DNN)框架,该框架能够模拟社会影响和预测人类行为.Wang 等人[11]使用前馈神经网络将事件的特征嵌入到低维向量中.Pramanik 等人[75]提出了一个基于深度神经网络的框架DeepVenue,用于推荐举办Meetup 事件的场所.

EBSN 中有大量各种类型的上下文信息,包括文本、图像、音频甚至视频等,其他推荐方法难以完全利用上这些信息.但深度学习模型中无需用户手工设计特征,它能自动从输入数据中有效学习潜在的有用特征表示,能够对数据进行非线性建模,捕获关系错综复杂的用户与事件特征.深度学习模型通过大量数据的训练,能获取更为准确的用户偏好,缓解冷启动问题.深度神经网络具有广泛的适用性和高度的灵活性,能轻松快速地构建出推荐模型.但是深度学习中参数太多,难以解释其具体作用,因此可解释性较差.同时,深度学习需要大量数据才能完成其模型训练,若数据量太小,学习到的模型推荐效果可能会很差.深度学习模型有时可能需要进行大量超参数调整.

3.7 基于启发式算法的推荐方法

EBSN 中,有的用户会在一段时间内参与多个事件,因此这些用户希望能合理地安排参与自己喜欢的事件.事件的组织者希望自己组织的事件有更多感兴趣的用户来参与,也会希望有合理的事件安排,这通常被称为事件安排问题.用户参与事件具有许多约束条件,例如事件冲突约束、事件容量约束、用户预算约束等,为用户提供满意的事件安排需要尽量满足这些约束.然而,这些约束有时相互矛盾,需要综合考虑提出目标函数,使得目标函数获得最优值,目标函数代表了用户或组织的满意度.事件安排问题通常是NP 难问题,启发式算法是解决NP 难问题的常用方法,因此,我们称其为基于启发式算法的推荐方法.

Tong 等人[78]提出了瓶颈感知社会事件安排(BSEA)问题,设计了两种基于贪心的启发式算法解决BSEA 问题.该问题考虑了3 个影响因素:活动与用户之间的位置影响、活动与用户之间属性的相似性以及用户之间的社会关系.

事件安排需要满足最大化平均效用的最小值,同时满足事件容量和用户社会关系的约束.效用函数为

其中,D(lu,le)表示用户位置与事件发生位置的距离,sim(tu,te)表示用户与事件的相似度.

平均效用表示为

其中,M(e)表示事件安排M中安排给事件e的用户集合.

She 等人[79]定义了效用感知社会事件参与者计划(USEP)问题,该问题同时考虑了时空冲突和旅行支出约束,并需要最大程度地提高事件参与者的整体满意度.其效用函数为

其中,μ(u,e)表示用户对事件的偏好.She 等人在文献[80]中提出了带事件冲突和事件容量限制的全局事件安排(GEACC)问题,该问题的目的是找出满足事件冲突和事件容量限制的事件安排,对所有安排的事件和用户,最大化用户对事件的偏好总和.She 等人还在文献[81]中提出了反馈感知事件安排(FASEA)问题.在给用户安排事件时,考虑用户接受或拒绝安排事件的反馈,从而使用户接受的事件总数最大化.

Liang 等人[82]提出的事件安排问题,其目标是最小化用户与事件的空间距离和用户社会关系紧密度的总和,以使事件安排多样化.其效用函数为

其中,第1 项是事件安排的每个用户与事件之间距离的总和,第2 项是用户社交关系的紧密程度.Liang 还在文献[83]中提出了三维匹配事件安排(EATDM)问题,其提出的效用评分同时考虑了用户、事件组织者和事件.

Kou 等人[84]提出了交互感知全局事件参与者安排(IGEPA)问题.它在全局范围内优化事件和参与者之间的安排,避免了事件之间的冲突.作者提出的效用函数考虑了用户偏好和用户之间的潜在交互程度.其效用函数表示如下:

文献[85-88]分别考虑了不同的约束条件,如差旅预算、事件参与上限和下限、用户的空闲时间、用户的平均移动速度、用户的整体偏好等,以满足最大化全局效用分数,最大程度增加事件参与者人数,确保每个用户都可以按时参加活动等目标函数进行事件安排.Li 等人[89]定义了增量双边偏好稳定安排(IBPSP)问题,旨在动态制定使用户和事件组织者都满意的安排.

基于启发式算法的推荐考虑了更多条件,因此能有更精确的推荐结果.但其考虑的问题和解决过程比较复杂,因此难以建模.此外,EBSN 平台上爬取的数据集通常没有包含一些必要的约束信息,因此需要复杂的数据处理过程.

3.8 混合推荐方法

上述各种推荐方法与传统的推荐方法都各有优缺点.混合推荐方法是指同时使用多种推荐技术产生推荐,从而结合不同方法的优点、弥补缺点、获得更好的推荐效果.Burke 等人[90]提出了混合推荐方法的7 种混合策略,Jannach 等人[3]将其划分成3 种:整体式混合设计、并行式混合设计和流水线式混合设计,其中,整体式混合设计策略是EBSN 推荐系统中采用最多的混合推荐策略.

上下文感知推荐方法中,EBSN 推荐系统通常需要结合上下文信息从多个角度获取用户偏好.Wang 等人[18]采用多种上下文信息的特征组合作为获取用户偏好的输入数据.基于因子分解的推荐方法中,也需要从多角度获取用户偏好,而且通常需要优化才能得到因子分解的结果.Gu 等人[40]采用的因子分解模型分别考虑了用户和事件隐因子特征以及用户和事件之间的多个上下文特征来捕获用户的偏好.在基于图模型的推荐方法中,EBSN 推荐系统也需要采用不同的数据来源获取用户偏好.Liu 等人[52]同时考虑了采用随机游走获得的用户参与事件收敛概率与根据用户历史事件参与信息获得的偏好计算用户偏好.

基于概率模型的推荐方法、基于深度学习的推荐方法和基于内容的推荐方法在获取推荐系统的输入数据时,同样可以结合多种方法获取.由此可知,EBSN 推荐系统中大多数时候采用是混合推荐方法.

3.9 推荐方法比较

每种推荐方法都有优点和不足,表2 对比了本文列出的8 种EBSN 推荐系统的推荐方法的优点和缺点.

Table 2 Comparison of recommended methods for the EBSN recommendation system表2 EBSN 推荐系统推荐方法的对比

3.10 EBSN推荐系统的推荐内容

从推荐内容的角度,EBSN 推荐系统可以分为事件推荐、群组推荐、事件安排、参与者预测、联合推荐、朋友推荐、场地推荐.

· 事件推荐的目标是向用户推荐事件,根据用户的历史参与记录信息和用户的社会关系,采用上下文感知、因子分解、概率生成、随机游走、深度学习等方法获取用户对事件内容、举办时间、举办地点和组织者等的偏好,然后采用BPR、学习排序方法等对被推荐事件排序获取事件列表.

· 群组推荐的目标是向群组推荐事件,通过获取用户对事件的偏好以及用户在群组中的影响力权重,融合群组成员偏好得到群组偏好,或使用概率生成、随机游走等方法得到群组对事件的偏好.然后对被推荐事件排序获得群组成员相对满意的事件列表.

· 事件安排为用户推荐安排多个事件,在约束条件的限制下,使用一个目标函数,该目标函数通常综合考虑了多种情况.在目标函数达到最优值获得的事件序列即为推荐安排的事件序列,目标函数的最优解通常使用启发式算法获取.

· 参与者预测指预测事件的参与者,能向事件组织者推荐事件的参与者.通常,参与者预测需要根据事件的上下文信息,计算用户偏好与该事件的相似程度,获取用户列表.

· 联合推荐指同时向用户推荐多个对象,如同时向用户推荐事件和伙伴,根据用户偏好、伙伴偏好、用户与伙伴的社交关系亲密度、事件的上下文信息等计算用户对事件-伙伴对的评分,找出并推荐评分最高的多个事件-伙伴对.

· 朋友推荐指向用户推荐朋友,根据用户的历史参与事件记录、用户的社交关系等找出与目标用户最相似的用户并推荐;

· 场地推荐指向事件组织者推荐事件举办场地,通过计算场地相似度、事件相似度和兴趣组相似度,采用深度学习方法获取用于举办目标事件的场地排名列表.

EBSN 推荐系统按推荐内容的分类对比见表3.

Table 3 Comparison of classification of the EBSN recommendationsystem表3 EBSN 推荐系统的分类对比

4 EBSN 推荐系统的难点与发展趋势

综上所述,近年来,EBSN 推荐系统已取得了较多研究和应用进展.但在未来的研究与应用中,以下方面仍然值得重点关注和研究.

(1) 冷启动问题

EBSN 中每天都有大量新用户加入,他们没有历史事件评价信息及朋友信息.事件的组织者或兴趣组的组织者邀请这些用户参加事件、兴趣组将会非常困难.EBSN 中每天会发布大量新事件,这些事件都是未来即将发生的,这意味着事件在开始时没有历史参与者,在事件发生前没有任何用户参与评价的信息.即使事件从发布到开始前这段时间内可能会有少量的用户表示愿意参加信息,但是该信息非常稀疏,且不能代表用户真正参加了事件.另外,经典推荐系统通常使用的用户反馈信息(例如评分或评论)在EBSN 中变得无用,因为当事件参与者在他们参加事件之后给出评分和评论时,事件已经结束无需推荐.EBSN 中每天会有大量的新兴趣组成立,向用户推荐这些兴趣组也将变得十分困难.因此,EBSN 推荐系统中向新用户、新兴趣组推荐事件,向用户、兴趣组推荐新事件变得非常困难,存在严重冷启动问题.

解决冷启动问题的直接方法是采用基于内容的推荐技术,通常可以利用空间、时间、内容和社会关系信息等来缓解EBSN 推荐系统中的冷启动问题.文献[36,67]从新事件的文本描述集合中推断出潜在的主题处理事件冷启动问题.Zhang 等人[32]将事件内容、组织者、位置和用户社交关系整合在一起,能够在统一模型中推断冷启动事件.Wang 等人[18]将EBSN 和其他社交网络的信息结合起来,用以解决冷启动问题.Li 等人[15]将用户兴趣、组织者影响力和地理偏好整合到新事件推荐中.Jhamb 等人[37]利用群组的潜在因素解决冷启动问题.Du 等人[21]使用用户和组织者之间的社交关系来缓解事件推荐中的冷启动问题.Du 等人[69]利用事件组织者与事件描述之间的相关性以及事件描述与事件举办地点之间的相关性解决群组事件推荐冷启动问题.Liu 等人[55]利用EBSN中的不同关系和异步反馈来处理新事件冷启动问题.虽然已有的研究在一定程度上缓解了冷启动问题,但仍需寻找更有效的技术和方法,这是EBSN 推荐系统中一项非常重要的研究内容.

(2) 群组推荐

EBSN 推荐系统中的群组推荐指向群组推荐事件.在群组推荐中,群组内各成员具有不同的兴趣偏好,需要协调各个群组成员的偏好,使其形成相对一致的意见后进行推荐.群组推荐的主要任务通常包括获取群组成员的偏好、群组发现和偏好融合等.群组成员在形成对事件的偏好时,会受到用户个性化、信任关系和用户重要性等社会因素的影响.因此,如何引入社会因素帮助推荐,以获得准确的用户偏好,是值得关注的研究方向之一.群组发现是寻找具有相似特征的用户构成的群组.EBSN 中存在成员数量少、用户偏好相似且沟通较频繁等特征的群组,但EBSN 通常没有显式存在这样的群组信息,因此,在群组发现时,除可考虑成员的偏好相似性之外,还可考虑成员之间线上和线下交互.如何利用多种异构信息发现群组,是群组推荐领域值得研究的问题.偏好融合指融合群组成员的偏好,得到群组的偏好.在进行偏好融合时,既可考虑用户的影响力、群组成员角色等多种因素计算用户权重,也可考虑用户的满意度、公平性等性能要求,还可考虑群组成员的互动.群组决策过程实际上是群组成员之间相互交流、相互影响和相互妥协,最终达到一致意见的过程.因此,如何有效刻画这种过程,是群组推荐面临的难点.

目前,EBSN 群组推荐系统的研究还很少,随着越来越多国内外研究单位的关注,EBSN 群组推荐也将成为研究热点之一.

(3) 结合深度学习推荐

第3.6 节已介绍了基于深度学习的推荐方法:一是直接通过深度学习模型获取用户偏好,二是通过深度学习模型融合多种信息获取用户偏好的部分特征.与传统的推荐方法相比,深度学习是一个有效的特征提取工具,可以更好地理解用户的需求、事件特征以及它们之间的交互.因而,相比于传统的推荐方法,结合深度学习的推荐方法可获得更好的性能和推荐结果.近几年,EBSN 推荐系统应用深度学习方法进行推荐已得到关注,但相关研究仍然不多.未来可从两个方面研究基于深度学习的EBSN 推荐系统.

· 随着深度学习的发展,不断出现新的深度学习模型,采用新的深度学习模型进一步提高EBSN 推荐系统性能值得深入研究.

· EBSN 拥有丰富的上下文信息,如何用深度学习方法的融合更多这些上下文信息,以获取更为准确的用户偏好特征,也是值得研究的方向之一.

(4) 信息安全与隐私保护

EBSN 推荐系统能帮用户在社交网络中快速找到自己感兴趣的群组、事件和朋友,使用户能有更好的体验,给用户提供了极大的方便;但同时,让用户受信息与隐私被泄露的威胁.EBSN 推荐系统进行高效推荐的前提是掌握大量准确的用户个性化信息,如用户的偏好、用户的社交关系等.从EBSN 网络收集到的用户个人信息,包括用户的个人隐私或生活细节,无论是自愿还是无意,都可能被泄露.例如:由于EBSN 中的事件具有主题、举办地点和举办时间,事件推荐通常需要“准确的”和“详细的”用户个人信息,如用户的位置,还可以通过分析用户和他/她的团队信息来推断用户的个人兴趣.因此,了解EBSN 中的潜在信息安全与隐私保护,可以设计更安全的EBSN 平台以保护用户的个人隐私,解决EBSN 推荐系统中的信息安全和隐私保护问题,有利于推荐系统的发展与应用.

用户的信息安全研究长期以来都是社会网络领域的研究热点.但是在EBSN 中,相关研究还很少.Chung 等人[94]尝试调查Meetup 中的隐私泄漏,作者从网站的公开数据中发现并推断出私人信息的内容.Dong 等人[95]通过连接用户的线上和线下社交活动,使用几种简单而有效的隐私推理模型,可以高精度地推断用户的线上群组成员隐私和线下事件参与情况,隐私威胁程度非常严重.用户需要准确快速的推荐服务,推荐系统需要先获取准确的用户个性化信息,然后才能提供准确的各种推荐服务,这就意味着用户的个人信息会被共享,但是用户的个人信息共享就表示个人信息和隐私的泄露.因此在实现EBSN 推荐服务的过程中,如何保护用户的信息安全,减少用户的个人隐私泄漏,是一项极具挑战的工作.

(5) EBSN 推荐系统评价

推荐系统评价通常用于评估推荐系统是否具有良好性能,它能帮助推荐系统开发者发现系统存在的问题,从而帮助改善推荐性能.推荐系统评价已被众多研究者关注,并提出了较多研究成果.Herlocker 等人[96]对协同过滤推荐系统的评价策略进行了回顾.Gunawardana 等人[97]根据评价上下文属性概述了大量评价指标.Meng 等人[98]从数据集、评价方法、评价指标这3 个方面对基于位置的移动推荐系统的评价进行了综述,并提出一种基于位置的移动推荐系统的评价体系.传统推荐系统正逐渐形成成熟的评价体系,拥有较为完善的评价方法、大量评价指标和许多公开可用的数据集.

然而,目前针对EBSN 推荐系统评价的研究相对较少,未形成标准的评价体系.EBSN 推荐系统常用离线评价方法进行评价,常用的评价指标包括NDCG、AUC、MAP、Precision、Recall、ROC、F1、HitRate 等.在事件安排推荐系统中,将运行时间、内存消耗和自定义目标函数作为评价指标.

此外,EBSN 推荐系统中常用的数据集是从Meetup,Plancast 和Douban Event 等平台爬取.

总的来看,EBSN 推荐系统尚未形成统一的评价标准和评价方法,且缺乏标准数据集.因此,结合EBSN 领域特征研究新颖的评价方法,以及根据EBSN 推荐系统的特点寻找专用评价指标,如覆盖率、多样性、新颖性等,都是未来具有潜力的研究方向.

5 总结

近年来,基于事件社会网络的发展十分迅速,产生了丰富的事件和群组信息,给用户选择造成极大困难.将推荐系统引入EBSN,可有效提高用户的使用体验和平台满意程度.本文在分析EBSN 网络特征和推荐面临的挑战性问题基础上,对EBSN 推荐系统进行了较为全面的综述.文中介绍和分析了EBSN 推荐系统的框架,包括数据采集层、数据处理层和推荐生成层;对EBSN 推荐系统目前采用的推荐方法进行了归纳和分类,包括基于内容的推荐方法、上下文感知推荐方法、基于因子分解推荐方法、基于图模型推荐方法、基于概率模型的推荐方法、基于深度学习的推荐方法、基于启发式算法的推荐方法以及混合推荐方法等8 类方法,并对它们的优缺点进行了对比与分析;根据推荐内容将EBSN 推荐系统分为事件推荐、群组推荐、事件安排、参与者预测、联合推荐、朋友推荐、场地推荐;指出EBSN 未来需重点关注的研究方向,包括冷启动、群组推荐、结合深度学习推荐、信息安全与隐私保护和EBSN 推荐系统评价等.

猜你喜欢

群组因子用户
因子von Neumann代数上的非线性ξ-Jordan*-三重可导映射
一些关于无穷多个素因子的问题
影响因子
Boids算法在Unity3D开发平台中模拟生物群组行为中的应用研究
我的健康和长寿因子
关注用户
关注用户
关注用户
如何获取一亿海外用户
群组聊天业务在IMS客户端的设计与实现