基于标签的推荐系统

一、 标签系统

标签是一种无层次化结构、 用来描述信息的关键词, 可以作为
物品的元信息。 利用标签可以更好地组织和推荐物品。
根据解决的问题, 可以将标签系统分为两种:
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花边)

时间: 2024-10-06 18:20:50

基于标签的推荐系统的相关文章

基于标签的推荐系统学习

最近看一些推荐系统的东西.比较感兴趣的是基于标签的推荐系统.也就是通过用户的标签行为建立起用户和目标物品的联系,从而挖掘用户的兴趣或者是尽兴定向的推荐. 一个用户的标签行为一般由一个三元组组成<用户,物品,标签>(<u,i,b>)即用户u给物品i打上了b标签. 一个简单的基于标签的推荐系统可以通过如下步骤实现: 1.统计每个用户最常用标签: 2.对于每个标签,统计被打过这个标签次数最多的物品: 3.对于一个用户,找到他常用的标签,从而找到具有这些标签的热门物品进行推荐. 从而可以得

《推荐系统》基于标签的用户推荐系统

1:联系用户兴趣和物品的方式 2:标签系统的典型代表 3:用户如何打标签 4:基于标签的推荐系统 5:算法的改进 源代码查看地址:github查看 一:联系用户兴趣和物品的方式 推荐系统的目的是联系用户的兴趣和物品,这种联系方式需要依赖不同的媒介.目前流行的推荐系统基本上是通过三种方式联系用户兴趣和物品. 1:利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品,即基于item的系统过滤推荐算法(算法分析可参考:点击阅读) 2:利用用户和兴趣用户兴趣相似的其他用户,给用户推荐哪些和他们兴趣

大数据算法-&gt;推荐系统常用算法之基于内容的推荐系统算法

港真,自己一直非常希望做算法工程师,所以自己现在开始对现在常用的大数据算法进行不断地学习,今天了解到的算法,就是我们生活中无处不在的推荐系统算法. 其实,向别人推荐商品是一个很常见的现象,比如我用了一个好的商品,向朋友安利之类的.在以前广告系统不发达的时候,我们也是靠口口相传来进行商品的推广.那么为什么,现在推荐系统变的非常重要了呢?,在以前,我们的商品不像现在的物品一样琳琅满目,我们有时间,可以把商品都浏览一遍在进行选择,因为我们都想选择所有商品中最好的,而现在,由于资源的众多,我们不会用大把

基于标签方式的工作流启动及任务执行开发说明

基于现在的系统的整合需求,本系统提供基于标签的工作流整合方式,工作流的启动及执行下一步时,均需要通过可以通过标识来处理完成.这使得基于JSP方式的流程整合变得很简单. 自定义工作流启动 系统提供启动参数,只需要提交至/flow/startProcessActivity.do,提交的参数包括以下:(可以参考ProcessRunStart.js的) defId: 必需,流程定义Id,即pro_definition表里的主键 startFlow: 必需,值为true,则表示启动流程   必填 dest

一个简单的基于用户的推荐系统

DataModel model=new FileDataModel(new File("intro.csv")); //.csv是逗号文件 UserSimilarity similarity=new PearsonCorrelationSimilarity(model); UserNeighborhood neighborhood=new nearestNUserNeighborhood(2,similarity,model); Recommender recommender=new

基于skip-gram做推荐系统的想法

一.人工智能之自然语言处理 自然语言处理(Natural Language Processing, NLP),是人工智能的分支科学,意图是使计算机具备处理人类语言的能力. “处理人类语言的能力”要达到什么效果呢?举个例子!班主任问路班长:“你能把粉笔递过来么?”.这句话有两层意思,第一层:你能不能把粉笔递过来:第二层:把粉笔递过来.Get到第一层,班长回答“能”,Get到第二层意思,班长递上粉笔.倘若班长仅回答了“能”,情景略尴尬. 对于人类来说,Get到两层意思没什么问题,但是要计算机Get到

推荐系统学习(2)——基于TF-IDF的改进

使用用户打标签次数*物品打标签次数做乘积的算法尽管简单.可是会造成热门物品推荐的情况.物品标签的权重是物品打过该标签的次数,用户标签的权重是用户使用过该标签的次数.从而导致个性化的推荐减少,而造成热门推荐. 运用TF-IDF的思想能够对算法进行改进.TF-IDF(term frequemcy-inverse documnet frequency)是一种用于资讯检索和文本挖掘的加权技术.用来评估一个词的重要程度.其主要思想是假设某个词或短语在一篇文章中出现的频率TF高,而且在其它文章中非常少出现,

推荐系统实践第四章: 利用用户标签

基本上可以通过3种方式联系用户兴趣和物品: 用户喜欢过的物品(item-cf) 用户的好友或者有相似兴趣的好友喜欢过的物品(user-cf) 用户具有哪些feature, 哪些物品保护 之前用了user-cf,item-cf, 现在考虑使用标签进行推荐. 标签是一种无层次化结构的.用来描述信息的关键词. 给物品打标签: 专家.作者 用户 标签系统中存在的问题: 如何基于标签推荐 如何给用户推荐标签 基于标签的推荐系统示例: 利用Delicious数据集:(待链接)      格式:userID 

推荐系统实践(项亮)— 第4章 利用用户标签数据

标签应用:一种是让作者或专家给物品打标签:另一种是让普通用户给物品打标签(UGC).当一个用户对一个物品打上标签,这个标签一方面描述了用户的兴趣,另一方面则表示了物品的语义,从而将用户和物品联系了起来.标签,是一种重要的特征表现方式. 4.1 UGC标签系统的代表应用 标签系统的最大优势:发挥群体智力,获得对物品内容信息比较准确的关键词描述,而准确的内容信息是提升个性化推荐系统性能的重要资源. Delicious / CiteLike / 豆瓣 / Hulu 4.2 标签系统中的推荐问题 主要问