图2 社区分裂算法示意图
4。基于用户兴趣偏好和内容相似度的社区划分方法
以前的社区发现算法很多都是以人口统计学的知识作为划分依据,认为人与人之间有着一定的联系,好友的好友与目标节点也应当有一定的关系,所以,以朋友关系来进行社区的划分。但是,在实际生活中,很多人也有这样的体验,因为朋友的朋友与自己兴趣爱好不同,导致朋友的朋友没有办法和自己成为朋友。所以可见,这种以人际关系为依托的社区发现算法存在一定的弊端:并没有考虑到用户之间兴趣爱好的相似性。为了解决这一问题,提出了基于用户爱好的社区发现算法和用户内容相似的社区划分方法。
4。1 兴趣偏好获取
为了对用户更准确的进行划分,所以必须对用户兴趣爱好信息进行建模,但是,在建模之前,需要对社交网络中的海量数据进行筛选,从这些数据中对有用的用户兴趣爱好信息进行获取。用户提供的信息可以分为两类:显式信息以及隐式信息。其中,在社交网络中显式信息获取用户兴趣爱好的网站主要有Prismatic、UC社区等,该类社交网络大多在用户注册的时候会提供给用户几个用户可能感兴趣的标签选项供用户选择,直接以用户显性反馈的方式获取用户兴趣;而隐式信息获取的过程则相对复杂,需要对用户操作等行为习惯进行获取,通过API接口或爬虫技术来收集提取用户行为操作。
在获取用户数据之后,还需要对用户数据进行进行去噪和归一。去噪是指在获取到用户的用户数据中排除因为用户误操作或其他原因产生的偏差,因为在某些环境中,用户搜索并不能代表自身的兴趣,可能是因为某些条件的限制导致用户必须进行搜索。比如:用户在微博社交网络中搜索“Adele”,说明用户确实对该歌手有一定的兴趣,但是搜索“计算机等级成绩公布时间”则表示用户参加了该考试,只是短暂性的关注本考试的出分时间,并不能成为兴趣。在去噪完成后还需要使用(各类数据与此类数据中最大值的比)的方法对数据进行归一化处理,保证最后得到的数据属于集合[0,1]的范围内。通过标记1(喜欢),0(无感),-1(厌恶)的方式来表示用户的偏好,从而可以得到用户的兴趣偏好矩阵。来;自]优Y尔E论L文W网www.youerw.com +QQ752018766-
4。2 兴趣偏好度量
在得到用户数据之后,需要对用户的兴趣爱好进行建模,本文使用凝聚法,将具有相同兴趣爱好的节点进行凝聚,形成社区。以用户兴趣爱好向量定义矩阵A=(iaj)=表示m个用户对n个兴趣点的偏好。在进行相似度计算的时候,使用余弦相似性度量方法进行计算,先绘制个关于向量的坐标值,比如下面绘制出的二维空间如图。先求出向量b和向量d之间的夹角,然后再求出它们的余弦值,这个余弦值就可以用来表征它们的相似性。这两个向量的夹角越小,那么它们的值就越来越接近1,方向也就更加一致,也就越来越相似。关于两个用户的兴趣偏好相似度的计算如下: