【每周一文】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效率较高。结论
该文提出了通过用户相似度方法进行聚类。用户相似度计算法思路可以在其他文本相似度、集合相似度借鉴使用。相关文章推荐
- 关灯看视频(Turn Off the Lights)
- 对于i=i++的理解
- 【每周一文】Googles News Personalization:Scalable Online Collaborative Filtering(2007)
- Struts2
- 结构体指针
- 11.TCP的交互数据流
- 10.TCP连接的建立与终止
- 【Android】记今天踩到的一个小坑----Java内存模型
- 在Mac下开发Android,JavaEE的体验
- win10下mysql5.7安装,配置,使用SQLyog工具连接配置。
- 从零开始OGRE
- UIImage渲染模式显示图片本身颜色
- EffectiveJava-7 J避免使用 finalizer方法
- 9.TCP:传输控制协议
- APP测试流程
- Unity Shaders and Effects Cookbook (1-2)创建自定义漫反射光照模型
- 从键盘任意输入10个整数,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。
- JSON综合分析
- 【每周一文】Factorization Meets the Neighborhood:a Multifaceted Collaborative Filtering Model
- java mail 发送邮件,并判断是否发送成功