概述
用户聚类在个性化推荐、市场分析等领域都很重要,特别是对千万级用户群体分析,单个用户的行为通常都是稀疏的。该文介绍了针对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=cfriendFriendi−−−−−−−√Friendj−−−−−−−√+cfollowerFolloweri−−−−−−−−√Followerj−−−−−−−−√
其中Friend表示用户关注的用户群;Follower是关注该用户的用户群;C是指两个用户共通用户群。
转发相似度
计算公式如下,类似于关注相似度
simretweet=cretweetRi−−√Rj−−−√+nij+njiRi+Rj
其中C_retweet表示用户共通转发的推文,n_ij表示用户i转发用户j的个数。
用户相似度聚合
聚合方法采用线性累加方式
sim(i,j)=γ1simtext+γ2simurl+γ3simhashtag+γ4simfollwer+γ5simretweet
其中 ∑γ=1
各个参数比例确定方法如下,聚类效果评估采用该簇内平均用户关注个数进行评判,并且分别采用某一类相似度进行计算效果。最终加权系数和单独相似度效果成正比。
聚类算法
层次聚类和kmeans,其中kmeans效率较高。
结论
该文提出了通过用户相似度方法进行聚类。用户相似度计算法思路可以在其他文本相似度、集合相似度借鉴使用。