您的位置:首页 > 其它

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

2016-03-15 23:51 295 查看

概述

用户聚类在个性化推荐、市场分析等领域都很重要,特别是对千万级用户群体分析,单个用户的行为通常都是稀疏的。该文介绍了针对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)sim_{text}(i,j)=\frac 1{\sqrt(D_{js(i,j)})} \\
D_{js(i,j)}=\frac12(D_{kl}(UTi||M)+D_{kl}(UTj||M))\\
M=\frac12(UTi+UTj)

其中D_kl为两个分布的Jessen-shanon 离散度。

通常也可以直接计算两个分布的余弦相似度进行计算

URL相似度

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

标签相似度

通常计算标签相似度可以利用jaccard系数等,这里提出simhashtags(i,j)=∑k=1n(1−|Nik|Hi|−Njk|Hj||)(Njk+Nik|Hj|+|Hi|)sim_{hashtags}(i,j)=\sum_{k=1}^n(1-|\frac{N_{ik}}{|Hi|}-\frac{N_{jk}}{|Hj|}|)(\frac{N_{jk}+N_{ik}}{|Hj|+|Hi|})其中Nik表示用户i的第k个标签出现的次数。

该思路相当于对jaccard系数进行了加权,消除了单个标签权重的影响。

关注相似度

计算公式如下simfollow=cfriendFriendi−−−−−−−√Friendj−−−−−−−√+cfollowerFolloweri−−−−−−−−√Followerj−−−−−−−−√sim_{follow}=\frac{c_{friend}}{\sqrt{Friend_i}\sqrt{Friend_j}}+\frac{c_{follower}}{\sqrt{Follower_i}\sqrt{Follower_j}}

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

转发相似度

计算公式如下,类似于关注相似度simretweet=cretweetRi−−√Rj−−−√+nij+njiRi+Rjsim_{retweet}=\frac{c_{retweet}}{\sqrt{R_i}\sqrt{R_j}}+\frac{n_{ij}+n_{ji}}{R_i+R_j}

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

用户相似度聚合

聚合方法采用线性累加方式sim(i,j)=γ1simtext+γ2simurl+γ3simhashtag+γ4simfollwer+γ5simretweetsim(i,j)=\gamma_1sim_{text}+\gamma_2sim_{url}+\gamma_3sim_{hashtag}+\gamma_4sim_{follwer}+\gamma_5sim_{retweet}

其中∑γ=1\sum \gamma=1

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

聚类算法

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

结论

该文提出了通过用户相似度方法进行聚类。用户相似度计算法思路可以在其他文本相似度、集合相似度借鉴使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: