基于用户动态简档信息的群组推荐算法研究
2018-11-01曹洪江
曹洪江,李 雪
(武汉理工大学 经济学院,湖北 武汉 430070)
如今,越来越多的人习惯了通过社交网络来分享和获取各种信息[1-2]。各种论坛、微博等早已成为人们生活中不可或缺的一部分。随着社交网络中用户生成的信息日益增多,以共同兴趣或话题为联结纽带的网络群组也大量涌现。利用这些社交网络上的群组信息向某个用户推荐符合其感兴趣的群组或是向某群组的全体成员进行商品推荐已成为一种常用的推荐方法[3-4]。目前,这类推荐在社交媒体讨论组、电影、音乐、影像、电视和电子商务等领域中都得到了具体的应用[5-6]。而如何充分且有效地利用社交网络信息中所蕴含的用户偏好信息来进行推荐成为群组推荐领域的研究热点[7-8]。
在社交网络的群组推荐方法中,常通过用户注册时生成的简档信息来获取用户的偏好。根据获取的用户偏好信息向用户进行群组或者其他内容的推荐。但这种方法存在着一个明显的弊端:静态的简档信息无法准确反映动态的用户偏好,以此为基础的推荐会导致推荐系统的准确性和可靠性不高。针对这一问题,笔者提出一种基于用户动态简档信息的群组信息推荐方法: GRBUDP (group recommendation based on user dynamic profile information)。该方法以用户动态简档信息为推荐基础,为解决群组的推荐过程中用户简档信息静态性无法反映用户偏好动态性这一问题提供了一条解决思路,通过对实验结果的分析,证明了该方法的有效性。
1 相关工作
目前,对群组推荐的理论、方法及应用研究工作已经广泛展开并取得了一定的成果,诸多群组推荐方案基本可以归纳为基于协同过滤的推荐方案和基于社交的推荐方案两种类型。基于协同过滤的推荐是通过用户及其使用的物品之间的关联关系向特定用户推荐物品或是可能感兴趣的群组。SONG等[9]利用协同过滤算法对未评分的电影进行预测评分,然后根据群组成员的偏好参数进行电影推荐。GHAZARIAN等[10]提出了一种基于内存的协同过滤向群组成员推荐音乐的方法,该方法能解决推荐过程中常见的数据稀疏性问题,并使用向量机学习模型来计算项目之间的相似性。
基于社交的群组推荐方案则是通过分析用户的社会行为确定用户间的关系和影响,进而向用户推荐群组。ARISE(architecture for recommendations including social elements)推荐系统为了改善群组推荐效果,在推荐过程中首次将群组中成员的个人偏好及其所在群组的特征信息进行了整合[11]。GARTRELL等[12]通过考虑群体成员之间的关系,以及各成员的专业知识和偏好,提出了从社交网络中提取用户的社交关系用于推荐的方法。该方法考虑了从社交网络成员间的交互行为信息中直接提取所需要的信息。
另外,近年的一些研究表明,如果推荐系统中考虑专家知识,则能够提高推荐的正确性和可靠性,如BOZZON等[13]所提出的群组推荐方法中,利用用户在群组中的活动信息来确定其中的专家用户。SONG等[14]通过利用专家信息来向群组中的成员进行推荐,证明了专家意见和推荐系统的性能之间存在着一定的关联性。笔者提出的群组推荐算法属于一种综合考虑多种影响推荐结果因素的群组推荐算法,同以往的算法相比,笔者方法的独特性在于系统地考虑了用户兴趣变化的动态性、专家知识、社会关系这3个因素在推荐中所起的作用。
2 GRBUDP方法
2.1 方法特点
针对群组推荐中用户静态简档信息无法准确反映用户当前偏好的问题,提出了通过搜集用户在群组内的活动信息生成动态用户档案来适应用户偏好变化的方法。GRBUDP方法首先对用户近期群组内的活动信息进行分析,用以生成用户的动态简档。该方法的优点是能够及时反映用户的最近偏好,使得用户偏好变化能在推荐过程中及时得到反映。另外,在进行协同过滤推荐的过程中,纳入了群组中“相似偏好用户”和“专家信息”,使得推荐结果在多样性和准确性上有了明显的提高。
GRBUDP方法分为以下5个步骤:①搜集用户近期在社交网络中的各个群组内的活动信息。②分析用户的活动信息,生成能够组成用户简档信息的关键词集合。③根据用户简档信息和用户的活动信息,确定与目标用户具有相似偏好的用户,并从中选定出“专家”用户。④利用相似用户的简档信息,通过协同过滤方法对目标用户进行基于偏好的关键词推荐。⑤将推荐出的关键词集合和各个信息群组的关键词集合进行匹配,匹配度高的群组即为推荐群组。
2.2 动态简档信息
用户的动态简档建立在用户在群组内的活动信息基础上,并随着用户在群组内活动信息的变化而自动变化,因此具有动态性。当一个注册用户刚进入社交网络时,其初始注册简档信息只能反映用户当时的偏好情况。随着用户在群组内参与的活动越来越多,动态的简档信息更能反映用户的当前偏好。在用户动态简档信息的更新过程中,首先要收集相同类别内用户的群组活动信息用以创建用户偏好信息。例如,一个社交网络中存在“音乐”和“体育”这两个群组的类别,用户参与了与“音乐 ”和“运动”相关的两个群组。通过总结用户在音乐相关群组中的活动信息来更新动态简档中的音乐相关偏好。类似地,通过总结用户在运动相关群组中的活动信息来更新其动态简档信息。假设用户参与了多个网络群组Group1~Group8,这些群组从类别上可以分为4类:音乐、游戏、运动、语言学习。其中Group1和Group2均与音乐相关,因此可以归为音乐类, Group3和Group4为运动类,Group5和Group6同属于游戏类,Group7和Group8为语言学习类。这些包含用户活动信息的群组就是动态简档生成的数据源。在这些群组中要排除那些用户参与度不高的群组,是否排除主要依据用户在群组中的活动量值。该值的计算通过收集用户在群组内诸如发帖、评论或用户签到这类活动的数量来得到的。用户活动量的计算方法如式(1)所示。
(1)
用户活动量的计算过程如表1~表4所示(表中数值均为提前假设的数值)。
表1 用户在某群组内的活动信息(Nij)
表2 活动权重(αij)
表3 时间权重(k)
表4 用户活动量
根据式(1),可以计算出该用户在一月份的活动量值:((50×0.5)+(90×0.3)+(200×0.2))×0.1=9。同理,得出二月、三月、四月的活动量分别为12、9、23,所以,该用户在前4个月期间内的活动量为53。
2.3 动态简档信息的生成和更新
动态简档信息的生成和更新所用的数据来源为用户在同一个类别中的所有活动信息。那些PV值太低的群组将会被排除掉,因此,用于生成简档信息的群组都是用户活跃度较高的群组,这样也能更准确地反映用户最近的偏好。每个群组都会有一个初始的简档信息,通常用一个关键词集合的形式来表示,这些关键词也体现了该群组的特性,这些初始的关键词集合可以事先由系统管理者指定或者通过文本挖掘的方法来自动生成。那些符合要求的群组关键词通过计算被选取出来,以组成用户的动态简档,其中关键词权重的计算公式如式(2)所示。
(2)
2.4 群组推荐
群组推荐的最终目的是向用户推荐可能感兴趣的群组,为了反映在相同组类别中所包含的其他用户的偏好,GRBUDP方法采用对相似用户的动态简档信息进行协同过滤。通过协同过滤推荐,可以得到一个目标用户可能感兴趣的偏好集合。再依据此偏好集合跟不同群组的关键词信息进行匹配,依据匹配度的大小,最终形成群组推荐。因此,在进行协同过滤推荐前,需要先找出同一个类别的群组中与目标用户偏好相似的用户。此外,笔者提出的方法中还考虑了“专家“因素。“专家”是从相似用户集合中选取,选取的依据是用户的活动量阈值,既通过式(1)得出的PV值,高于某个阈值的用户则被选为“专家”,这些专家的偏好信息在协同过滤推荐过程中会比非专家的其他相似用户的偏好值权重高。
2.4.1 相似偏好用户的选取
根据式(3)计算目标用户与属于同一个类型群组的其他用户的活动简档信息的相似性。
(3)
用户动态简档信息如表5所示,计算用户A与用户B、C、D、E之间的SK值依次为3、2、1、2。再根据式(3)可计算出用户A和B之间的相似性为0.56,用户A与其他用户之间的相似性值在0.06~0.33之间。假设设定的阈值为0.5,则用户B为用户A的偏好相似用户。
表5 用户动态简档信息
2.4.2 专家的选取
在以往的群组推荐方法中,通常都是依据用户的偏好信息来进行推荐,但推荐结果的可靠性和质量有时无法得到保证。在笔者提出的GRBUDP方法中,将专家信息引入推荐过程中,从而提高了推荐结果的可靠性。专家用户的标准是在偏好相似用户中,PV值超过系统设定阈值的用户即为专家。在进行协同过滤之前,会对专家用户的动态简档信息赋以更高的权重,从而在推荐过程中能体现出专家比一般用户具有更高的信息可靠性的这一特性。
协同过滤的作用是利用与目标用户的偏好相似的其他用户的偏好来向目标用户推荐群组,即从那些有相似偏好的用户的动态简档中提取目标用户可能感兴趣的关键词。协同过滤所提取出的关键词集合是一个初步的关键词集合,需要通过式(4)来计算这些关键词的最终得分值,根据这个值来选取最终的优选关键词(preferred keywords)。通过式(3)中的用户相似性对协同过滤得出的关键词集合进行筛选,从而增强优选关键词和目标用户偏好的关联性。
(4)
式中:KP为候选关键词的计算分值;k为用户所在的组别;n为和用户有相似偏好的用户数目。
选取的优选关键词如表6所示,假设用户A通过协同过滤方法提取出与运动相关的关键词集合为{“basketball”、“table tennis”、“football”},其中,对于basketball,与用户A的有相似偏好的用户B、C、D的近似度值分别为0.56、0.33、0.33。根据式(4),basketball这一关键词的最后得分值为1.22。如果系统设定的阈值为1,那么basketball则被放入优选关键词集合。以此类推,当用户的所有关键词匹配完毕后,则可以得出优选关键词集合。将优选关键词集合和待推荐群组的关键词集合进行匹配,按匹配度的高低决定群组的推荐顺序。假设得到的优选关键词集合为{“basketball”、“table tennis”、“football”},待推荐群组及群组的关键词集合如表7所示,则群组推荐顺序依次为:Group B、Group C、Group A。
表6 选取的优选关键词
表7 待推荐群组及群组的关键词集合
GRBUDP推荐算法的具体步骤如下:
输入 用户简档信息集合 (Profile_SET);
输出 推荐群组集合 (Group_SET)。
if(无用户参与的群组信息);
搜集用户静态文档信息 Porfile_SET;
生成用户动态文档信息 Group_SET;
生成群组推荐结果;
else if(有用户参与的群组信息);
生成用户动态文档信息(Profile_SET);
搜集用户参与活动的群组;
群组进行主题分类;
根据PV值,在相似用户中确定“专家”用户;
for(相似用户集合);
生成简档信息的关键词列表List_Key_extracted;
end for;
if(List_key_extrected >设定的阈值) 关键词存入 优选关键词列表Store to List_Key_preferred;
end if;
通过优选关键词集合寻找与之相匹配的群组;
生成候选群组集合;
生成群组推荐Group_SET;
end if。
3 实验结果与分析
为了证明笔者提出的GRBUDP方法的有效性,选取ARISE推荐系统为比较对象,ARISE推荐方法是群组推荐中较为常见的方法之一,该方法为了提高推荐的可靠性而将用户在社交网络中的行为引入到推荐过程中来,但该方法使用的是静态用户简档信息。实验条件:RAM 8G; CUP:Intel(R) CoreTMi7-4600U;操作系统:Windows 10;数据集:随机实验数据集;用户数量:500~2 500;群组数:80;活动量(PV)取值范围:1~100;专家用户的PV阈值:85;实验目的:验证推荐准确性、可靠性。
3.1 推荐准确性对比
根据推荐群组的关键词和用户偏好之间的匹配度来确定。为了更好地观察推荐方法的有效性,用户所在的社交网络被设定为3种类型:Fgroup (frequently change group)、Ngroup (normal change group)、Sgroup (static group),分别代表用户兴趣变化频繁、常规和不大3种类型的社交网络。实验采用的数据如表8所示。
将笔者方法和ARISE方法的实验结果进行比较,如图1所示,由于采用静态简档信息的推荐方法并不会随着用户兴趣的变化而相应更新用户的简档信息,因此所推荐群组的关键词集合和用户简档信息的匹配率在不同类型的社交网络群组中都明显低于GRBUDP方法的匹配率。其中,FGroup类型的社交网络中,ARISE方法的关键词匹配率比GRBUDP方法低60%左右,而对于NGroup类型的网络,两种算法的推荐准确性相差65%,SGroup类型由于群组成员兴趣爱好变化轻微,所以两种方法结果相差最小,但依然有10%的差距。由此可见,基于动态简档信息的群组推荐方法的推荐准确性要高于使用静态文档信息的群组推荐方法。
表8 推荐准确性实验参数设定
图1 推荐准确性对比
3.2 推荐可靠性对比
推荐可靠性是一个重要指标,考虑专家用户的信息能够有效提高推荐的可靠性。而仅仅以用户静态简档信息为依据,则无法在这点上提供保证。因此,对GRBDUP和ARISE方法的专家知识的引用度进行了实验比较。实验参数设定如表9所示。
表9 推荐可靠性实验参数设定
图2 推荐可靠性对比
实验中将用户包含的专家用户的比例分别设定为10%、20%、30%,比较ARISE 和GRBUDP方法中发现的专家数,实验结果如图2所示。当用户人数为500、专家比例为10%时,GRBUDP方法包含的专家数要比ARISE方法多将近20%。当用户人数为1 000和2 500时,该值的差距分别为33%、34%。把专家比例上调到20%和30%时,也得出类似的结果。从总体上来看,GRBUDP方法会比ARISE方法确定的专家数多30% 左右。由此可见,在推荐过程中,专家知识可以带来推荐可靠性的提升。
4 结论
以往的推荐方法中由于没有充分考虑用户偏好的动态变化,因此经常会出现推荐结果和用户偏好之间匹配率较低的问题。笔者提出的GRBUDP方法是一种以用户动态简档信息为基础的群组推荐的方法,其特点是通过动态简档反映用户偏好的变化,并在推荐过程中考虑相似用户及专家用户的信息。实验结果表明,相较于其他类型的推荐方法,GRBUDP方法能在一定程度上提升群组推荐结果的可靠性和有效性。将来的研究将考虑不同类别的群组用户之间的关系对推荐结果的影响。另外,在实验过程中,数据集采用的是随机生成的模拟数据集,计算过程中存在一些人为设定的数值,虽然算法的科学性能够得到验证,但实验结果的精确性和合理性尚有待进一步提升。