一个简单的基于标签的实时推荐系统大概分三部分:
- 标签系统
- 数据流处理系统
- 根据用户标签筛选出要推荐的内容
标签系统就是俗称的用户画像。 从属性变化性质来分,标签系统可分为静态标签和动态标签:
- 静态标签: 短时间内变化不大的标签,比如性别、地域、职业、生活习惯等;
- 动态标签: 不断变化的行为标签,比如关注的产品类别、产品偏好、内容偏好等 从更新时间的频率上来说,又可以分为短期兴趣标签和长期用户标签。
实时计算实时计算过去N秒(N可以根据业务需求取值,比如60,这就是一个事件窗口)内每个用户针对四种内容类别的点击率,然后把这个点击率作为用户的短期兴趣标签。
内容筛选系统就是根据用户的短期兴趣标签去筛选内容。 假设所有的内容都存储到某个数据库里,并打好了内容标签。
推荐流程是:用户发起访问⇒找到用户短期兴趣标签⇒计算文档与用户标签的相似度⇒相似度排序⇒展示内容。