首页 > 代码库 > 基于标签的推荐系统

基于标签的推荐系统

一、 标签系统

标签是一种无层次化结构、 用来描述信息的关键词, 可以作为
物品的元信息。 利用标签可以更好地组织和推荐物品。
根据解决的问题, 可以将标签系统分为两种:
1. 根据 Item 的标签为用户推荐 Item;
2. 在用户打标签时, 推荐合适的 Item 的标签;

二、 标签算法及优化

a. 算法流程:

1. 统计每个用户常用标签
2. 对于每个标签, 统计打过这个标签次数较多的物品
3. 对于一个用户, 找到其常用标签, 然后找到具有这些标签的最热门物品

b. 兴趣公式:

技术分享

c. 算法优化:

上述算法有缺点, 它会的权重。 优化方式类似于 TF-IDF, 给热门程度加一个惩罚项。

 技术分享

 

      对于标签很少的情况,可以通过计算相似标签来扩展标签,计算算法可以为余弦相似度。标签扩展可以提升准确率和召回率,但是会降低覆盖率和新颖度

d. 标签清理

      用户自己打的标签有时并不能反应物品的客观事实,比如情绪类的标签,有趣,并不代表别的用户觉得有趣。

并且,不同标签有时候会表示同一个意思,比如cpp和c++。这时候就需要规则,将这两个标签合并(在stackoverflow上,打cpp标签会自动变为c++)。

三、 给用户推荐标签

为用户提供标签有两个好处:

  1. 提高标签质量
  2. 方便用户输入标签

标签推荐的算法:

a. 基于内容推荐,比如LDA;  

b. 根据物品热门标签和用户常用标签推荐。

四、 新闻推荐中标签系统的想法

1. 新闻应用中,用户阅读新闻后,不会对新闻打标签,所以标签来源只会是原作者,或者系统通过基于内容的关键词提取。

2. 用户有效浏览新闻后,需要记录该新闻对应的标签,用于以后的推荐。

3. 给作者推荐标签可以根据作者输入的第一个字符开始推荐相关的热门标签。

4. 原始标签的聚类并分层。(比如 标签哈登和标签卡戴珊可以生成兴趣标签NBA花边)

 

 

基于标签的推荐系统