【每周一文】Clustering Users in Twitter Based on Interests(2012)

概述

用户聚类在个性化推荐、市场分析等领域都很重要,特别是对千万级用户群体分析,单个用户的行为通常都是稀疏的。该文介绍了针对Twitter或者微博上的用户进行聚类,结果对于10亿级别的用户群可以聚合成400个类。
该文主要提到的思路是:
1. 根据用户阅读内容特征和社交特征,计算用户的相似度,可以用于相似度计算的特征包括推文信息、标签、关注信息以及转发特征。
2. 根据用户相似度,通过传统的K-means进行用户聚类。

问题求解

主要过程,包括
1. 根据多种策略计算用户相似度
* 文本相似度
* 嵌入URL相似度
* 加权相似度
* 关注相似度
* 转发相似度
2. 用户相似度聚合
3. kmeans算法进行用户聚类

用户相似度计算

文本相似度

思路将用户发表过的推文进行聚合,用户看做文档,聚合的推文关键词利用LDA算法可以得到用户在潜在主题上的分布。

用户相似度

simtext(i,j)=1(Djs(i,j))Djs(i,j)=12(Dkl(UTi||M)+Dkl(UTj||M))M=12(UTi+UTj)

其中D_kl为两个分布的Jessen-shanon 离散度。
通常也可以直接计算两个分布的余弦相似度进行计算

URL相似度

这里的URL通常指嵌入在推文中的URL,可以分析该URL的标签、正文等特征数据,套用文本相似度计算方法得到 simurl

标签相似度

通常计算标签相似度可以利用jaccard系数等,这里提出

simhashtags(i,j)=k=1n(1|Nik|Hi|Njk|Hj||)(Njk+Nik|Hj|+|Hi|)
其中Nik表示用户i的第k个标签出现的次数。
该思路相当于对jaccard系数进行了加权,消除了单个标签权重的影响。

关注相似度

计算公式如下

simfollow=cfriendFriendiFriendj+cfollowerFolloweriFollowerj

其中Friend表示用户关注的用户群;Follower是关注该用户的用户群;C是指两个用户共通用户群。

转发相似度

计算公式如下,类似于关注相似度

simretweet=cretweetRiRj+nij+njiRi+Rj

其中C_retweet表示用户共通转发的推文,n_ij表示用户i转发用户j的个数。

用户相似度聚合

聚合方法采用线性累加方式

sim(i,j)=γ1simtext+γ2simurl+γ3simhashtag+γ4simfollwer+γ5simretweet

其中 γ=1
各个参数比例确定方法如下,聚类效果评估采用该簇内平均用户关注个数进行评判,并且分别采用某一类相似度进行计算效果。最终加权系数和单独相似度效果成正比。

聚类算法

层次聚类和kmeans,其中kmeans效率较高。

结论

该文提出了通过用户相似度方法进行聚类。用户相似度计算法思路可以在其他文本相似度、集合相似度借鉴使用。

猜你喜欢

转载自blog.csdn.net/fangqingan_java/article/details/50900784