读《新浪微博用户兴趣建模系统架构》有感

这周我们继续研究新浪微博的架构,这次研究的是用户兴趣建模系统架构。在微博环境下,构建微博用户的个人兴趣模型是非常重要的一项工作。首先,从可行性方面而言,微博是一个用户登录后才能正常使用的应用,而且用户登录后会有阅读/发布/关注等多种用户行为数据,所以微博环境是一个构建用户兴趣模型的非常理想的环境,因为围绕某个特定用户可以收集到诸多的个性化信息。另外,从用户兴趣建模的意义来说,如果能够根据用户的各项数据构建精准的个人兴趣模型,那么对于各种个性化的应用比如推荐、精准定位广告系统等都是一种非常有用的精准定位数据源,可以在此基础上构建各种个性化应用。

事实上,新浪微博在2011年前已经构建了一套比较完善的用户兴趣建模系统,目前这套系统挖掘出的个人兴趣模型数据已经应用在10多项各种应用中。对于每个微博用户,通过对用户发布内容以及社交关系挖掘,可以得出很多有益的数据,具体而言,每个微博用户的兴趣描述包含以下三个方面:用户兴趣标签、用户兴趣词和用户兴趣分类。

用户兴趣标签是通过微博用户的社交关系推导出的用户可能感兴趣的语义标签;用户兴趣词是通过对用户发布微博或转发微博等内容属性来挖掘用户潜在兴趣;用户兴趣分类则是在定义好的三级分类体系中,将用户的各种数据映射到分类体系结构中,比如某个用户可能对“体育/娱乐明星”这几个类别有明显兴趣点。以上三种个性化数据,用户兴趣标签和用户兴趣词是细粒度的用户兴趣描述,因为可以具体对应到实体标签一级,而用户兴趣分类则是一种粗粒度的用户兴趣模型。本文主要从体系结构角度来简介用户兴趣词以及用户兴趣分类这两类用户兴趣的挖掘系统架构。

微博用户兴趣建模系统整体架构:每当有用户发布新的微博,则这条微博作为新信息进入实时Feed流队列,为了增加系统快速处理能力,实时系统由多台机器的分布式系统构成,通过Round Robin算法将实时Feed流队列中新发布的微博根据发布者的UID分发到分布式系统的不同机器中,为了保证系统的容错性,由Master主机和Slave机器组成一个机器组,监控系统实时监控机器和服务的运行状态,一旦发现Master机器故障或者服务故障,则实时将服务切换到Slave机器,当故障机器恢复时,监控系统负责将服务切换回Master 机器。

离线挖掘系统是构建在Hadoop系统上的,通过MapReduce任务来执行挖掘算法,目标是优化用户兴趣词挖掘效果。

实时抽取系统,离线挖掘系统,都是微博架构下的重要内容。

从这篇文章来看,用户兴趣建模在微博环境下有着非常重要的作用,用户体验和实用性都依靠着用户兴趣建模。

本文参考文献:张俊林《新浪微博用户兴趣建模系统架构》2016.5.18

posted @ 2019-04-03 20:22  路上的小小滴  阅读(172)  评论(0编辑  收藏  举报