读书笔记 ---《推荐系统实践》第四章

利用用户标签数据

推荐系统的目的是联系用户的兴趣和物品,这种联系需要依赖不同的媒介。推荐系统基本上通过3种方式联系用户兴趣和物品:

  1. 利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品,这就是前面提到的基于物品的算法
  2. 利用和用户兴趣相似的其他用户,给用户推荐那些和他们兴趣 爱好相似的其他用户喜欢的物品,这是前面提到的基于用户的协同过滤算法
  3. 通过一些特征(feature )联系用户和物品,给用户推荐那些具有用户喜欢的特征的物品。这里的特征有不同的表现方式,比如可以表现为物品的属性集合,也可以表现为隐语义向量(可以通过前面提出的隐语义模型习得到)在这里插入图片描述
    标签是一种无层次化结构的、用来描述信息的关键词,它可以用来描述物品的语义。根据给物品打标签的人的不同,标签应用一般分为两种:一种是让作者或者专家给物品打标签;另一种是让普通用户给物品打标签,也就是UGC (User Generated Content) 的标签应用。UGC的标签系统是一种表示用户兴趣和物品语义的重要方式。当一 个用户对一个物品打上一个标签,这个标签一方面描述了用户的兴趣,另一方面则表示了物品的语义,从而将用户和物品联系了起来

4.1 UGC标签系统的代表应用

关于标签系统的作用,标签系统的不同作用以及每种作用能够影响多大的人群如下所示:

  • 表达 标签系统帮助我表达对物品的看法
  • 组织 打标签帮助我组织我喜欢的电影
  • 学习 打标签帮助我増加对电影的了解
  • 发现 标签系统使我更容易发现喜欢的电影
  • 决策 标签系统帮助我判定是否看某一部电影

4.2 标签系统中的推荐问题

打标签作为一种重要的用户行为,蕴含了很多用户兴趣信息,标签系统中的推荐问题主要有以下两个:

  • 如何利用用户打标签的行为为其推荐物品(基于标签的推荐)
  • 如何在用户给物品打标签时为其推荐适合该物品的标签(标签推荐)
4.2.1 用户为什么进行标注
  • 社会维度: 给内容上传者使用的(便于上传者组织自己的信息), 而有些用户标注是 给广大用户使用的(便于帮助其他用户找到信息)
  • 功能维度: 用于更好地组织内容,方便用户将来的査找; 而另一些标注用于传达某种信息,比如照片的拍摄时间和地点等
4.2.2 用户如何打标签

标签的流行度分布也呈现非常典型的长尾分布

4.2.3 用户打什么样的标签
  • 表明物品是什么
  • 表明物品的种类
  • 表明谁拥有物品
  • 表达用户的观点
  • 用户相关的标签
  • 用户的任务

4.3 基于标签的推荐系统

4.3.1 实验设置

在这里插入图片描述

4.3.2 一个最简单的算法

这个算法的描述如下所示:

  • 统计每个用户最常用的标签
  • 对于每个标签, 统计被打过这个标签次数最多的物品。
  • 对于一个用户, 首先找到他常用的标签, 然后找到具有这些标签的最热门物品推荐给这个用户
    在这里插入图片描述
4.3.3 算法的改进
1. TF-IDF

前面这个公式倾向于给热门标签对应的热门物品很大的权重,因此会造成推荐热门的物品给用户,从而降低推荐结果的新颖性。另外,这个公式利用用户的标签向量对用户兴趣建模,其中每个标签都是用户使用过的标签,而标签的权重是用户使用该标签的次数。这种建模方法的缺点是给热门标签过大的权重,从而不能反应用户个性化的兴趣
在这里插入图片描述
在这里插入图片描述

2. 数据稀疏性

在前面的算法中用户兴趣和物品的联系是通过中的标签建立的。但是对于新用户或者新物品这个集合中的标签数量会很少。为了提高推荐的准确率,我们可能要对标签集合做扩展,比如若用户曾经用过“推荐系统”这个标签,我们可以将这个标签的相似标签也加入到用户标签集合中,比如“个性化”、“协同过滤”等标签。进行标签扩展有很多方法,常用的有话题模型(topic model), 这里介绍一种基于邻域的方法。
标签扩展的本质是对每个标签找到和它相似的标签,也就是计算标签之间的相似度。最简单的相似度可以是同义词。如果有一个同义词词典,就可以根据这个词典进行标签扩展。如果没有这个词典,我们可以从数据中统计出标签的相似度
在这里插入图片描述

3. 标签清理

不是所有标签都能反应用户的兴趣。比如,在一个视频网站中,用户可能对一个视频打了一个表示情绪的标签,比如“不好笑”,但我们不能因此认为用户对“不好笑”有兴趣,并且给用户推荐其他具有“不好笑”这个标签的视频。同时标签系统里经常出现词形不同、词义相同的标签,比如recommender system和recommendation engine就是两个同义词。
标签清理的另一个重要意义在于将标签作为推荐解释。如果我们要把标签呈现给用户,将其作为给用户推荐某一个物品的解释,对标签的质量要求就很高。首先,这些标签不能包含没有意义的停止词或者表示情绪的词,其次这些推荐解释里不能包含很多意义相同的词语。
一般来说有如下标签清理方法:

  • 去除词频很高的停止词;
  • 去除因词根不同造成的同义词,比如recommender system和recommendation system;
  • 去除因分隔符造成的同义词,比如 collaborative filtering和collaborative.filtering。
    为了控制标签的质量,很多网站也采用了让用户进行反馈的思想,即让用户告诉系统某个标签是否合适。
4.3.4 基于图的推荐算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3.5 基于标签的推荐解释

用标签组织推荐结果页面有很多好处:
首先是提高了推荐结果的多样性。一个用户的兴趣在长时间内是很广泛的但在某一天却比较具体。因此我们如果想在某一天击中用户当天的兴趣,是非常困难的。而通过标签云展示了用户的所有兴趣,然后让用户自己根据他今天的兴趣选择相关的标签得到推荐结果,这样极大地提高了推荐结果的多样性,使得推荐结果更容易满足用户多样的兴趣。
同时标签云也提供了推荐解释功能。用户通过这个界面可以知道豆瓣给自己推荐的每一本书都是基于它认为自己对某个标签感兴趣。而对于每个标签,用户总能通过回忆自己之前的行为知道自己是否真的对这个标签感兴趣。
让用户更容易接受推荐结果。让用户直观上感觉推荐结果有道理是很困难的,而我们可以将推荐结果的可解释性拆分成两个部分: 首先让用户觉得标签云是有道理的,然后让用户觉得从某个标签推荐出某个物品也是有道理的。因为生成让用户觉得有道理的标签云比生成让用户觉得有道理的推荐物品更加简单,标签和物品的关系就更容易让用户觉得有道理,从而让用户最终觉得推荐出来的物品也是很有道理的。
总而言之:

  • 用户对标签的兴趣对帮助用户理解为什么给他推荐某个物品
  • 用户对标签的兴趣和物品标签相关度对于帮助用户判定自己是否喜欢被推荐物品具有同样的作用

4.4 给用户推荐标签

当用户浏览某个物品时标签系统非常希望用户能够给这个物品打上高质量的标签,这样才 能促进标签系统的良性循环。因此很多标签系统都设计了标签推荐模块给用户推荐标签。

4.4.1 为什么要给用户推荐标签
  • 方便用户输入标签 用辅助工具代替手动输入来减小用户打标签的难度,从而提高用户打标签的参与度
  • 提高标签质量 同一个语义不同的用户可能用不同的词语来表示,这些同义词会使标签的词表变得很庞大,而且会使计算相似度不太准确。因此我们可以让用户选择比较热门的有代表性的词作为标签
4.4.2 如何给用户推荐标签

用户U给物品i打标签时,我们有很多方法可以给用户推荐和物品i相关的标签。比较简单的方法有4种。

  1. 推荐整个系统里最热门的标签
  2. 推荐物品i上最热门的标签
  3. 推荐用户经常使用的标签
  4. 方法2和3的融合,该方法通过一个系数将上面的推荐结果线性加权,然后生成最终的推荐结果。
4.4.3 实验设置在这里插入图片描述在这里插入图片描述

不过,前面提到的基于统计用户常用标签和物品常用标签的算法有一个缺点,就是对新用户或者不热门的物品很难有推荐结果。解决这一问题有两个思路:

  1. 从物品的内容数据中抽取关键词作为标签。这方面的研究很多,特别是在上下文广告领域
  2. 对标签进行扩展计算,实现标签扩展的关键就是计算标签之间的相似度
4.4.4 基于图的标签推荐算法

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
R语言实战笔记第九章介绍了方差分析的内容。方差分析是一种用于比较两个或多个组之间差异的统计方法。在R语言中,可以使用lm函数进行方差分析的回归拟合。lm函数的基本用法是: myfit <- lm(I(Y^(a))~x I(x^2) I(log(x)) var ... [-1],data=dataframe 其中,Y代表因变量,x代表自变量,a代表指数,var代表其他可能对模型有影响的变量。lm函数可以拟合回归模型并提供相关分析结果。 在方差分析中,还需要进行数据诊断,以确保模型的可靠性。其中几个重要的诊断包括异常观测值、离群点和高杠杆值点。异常观测值对于回归分析来说非常重要,可以通过Q-Q图和outlierTest函数来检测。离群点在Q-Q图中表示落在置信区间之外的点,需要删除后重新拟合并再次进行显著性检验。高杠杆值点是指在自变量因子空间中的离群点,可以通过帽子统计量来识别。一般来说,帽子统计量高于均值的2到3倍即可标记为高杠杆值点。 此外,方差分析还需要关注正态性。可以使用car包的qqplot函数绘制Q-Q图,并通过线的位置来判断数据是否服从正态分布。落在置信区间内为优,落在置信区间之外为异常点,需要进行处理。还可以通过绘制学生化残差的直方图和密度图来评估正态性。 综上所述,R语言实战第九章介绍了方差分析及其相关的数据诊断方法,包括异常观测值、离群点、高杠杆值点和正态性检验。这些方法可以用于分析数据的可靠性和模型的适应性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [R语言实战笔记--第八章 OLS回归分析](https://blog.csdn.net/gdyflxw/article/details/53870535)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值