读书笔记:推荐系统实践

2021-02-10  本文已影响0人  噗嗤噗哩噗通

前言:
传说,这是另外一本入门书。
反正我已经做好了跪的打算了


第一章:好的推荐系统:

1.1 什么是推荐系统

为了解决信息过载问题而提出的解决方案:
最开始是分类目录与搜索引擎,然后诞生了推荐系统。

搜索引擎满足了用户有明确目的时的主动查找需求,而推荐系统能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容。

推荐的类别:

1.2 个性化推荐系统的应用

推荐可以起作用的原因:

电子商务:amazon

电影与视频网站:Netflix,YouTube,hulu

个性化音乐电台

社交网络

个性化阅读

基于位置的服务

个性化邮件

个性化广告

1.3 推荐系统评测

什么是好的推荐系统:

推荐系统实验方法:

评测指标


第二章:利用用户行为数据

2.1 用户行为数据简介

显式反馈数据:评分制度,like or not like
隐式反馈数据:行为浏览数据

2.2 用户行为分析

用户活跃度与流行度符合的数学分布:
一般都符合长尾分布。

不同活跃度的用户喜欢的物品的流行度是否有差别:
一般认为,新用户倾向于浏览热门的物品,因为他们对网站还不熟悉,只能点击首页的热门物品,而老用户会逐渐开始浏览冷门的物品。

2.3 实验设计与算法评测

数据集合
本章选用中等大小的数据集。该数据集包含6000多用户对4000多部电影的100万条评分。该数据集是一个评分数据集,用户可以给电影评5个不同等级的分数(1~5分)。本章着重研究隐反馈数据集中的TopN推荐问题,因此忽略了数据集中的评分记录

实验设计
n折交叉

评测方式
准确率/召回率/覆盖率
新颖度(计算平均流行程度,有热门物品的个数,然后取对数)

2.4 基于领域的算法

1. 基于用户的协同过滤
为了解决两两用户都计算余弦相似度的复杂性问题:首先建立物品到用户的倒排表,对于每个物品都保存对该物品产生过行为的用户列表
简化思路:为每个用户选出K个和他兴趣最相似的用户,然后推荐那K个用户感兴趣的物品。因此离线实验测量了不同K值下UserCF算法的性能指标

用户相似度的改进:

image.png

实际在线策略

image.png

基于物品的协同过滤
看上去还是余弦相似度

image.png

用户活跃度对物品相似度存在较大的影响:


image.png

针对比较活跃的用户,直接增加惩罚项:
ItemCF-IUF 算法:


image.png

物品相似度的归一化:Karypis在研究中发现如果将ItemCF的相似度矩阵按最大值归一化,是可以提高准确性的。

两类算法的差异:

离线模型选择的其他要素:

为什么原始ItemCF算法的覆盖率和新颖度都不高

  1. 出现过于热门的书籍,比如哈利波特
    image.png
    如何解决
    两个不同领域的最热门物品之间往往具有比较高的相似度。这个时候,仅仅靠用户行为数据是不能解决这个问题的,因为用户的行为表示这种物品之间应该相似度很高。此时,我们只能依靠引入物品的内容数据解决这个问题,比如对不同领域的物品降低权重等

2.5 隐语义模型

2.5.1 基础模型

核心思想是通过隐含特征(latentfactor)联系用户兴趣和物品。
可以解决什么问题:

隐语义模型类别
pLSA、LDA、隐含类别模型(latent class model)、隐含主题模型(latent topic model)、矩阵分解(matrix factorization)。

本章将以LFM为例介绍隐含语义分析技术在推荐系统中的应用。

image.png

LFM在显性反馈数据(也就是评分数据)上解决评分预测问题并达到了很好的精度。当数据集的特点是只有正样本(用户喜欢什么物品),而没有负样本(用户对什么物品不感兴趣)的时候,就需要先生成负样本。

负样本采样时应该遵循以下原则:

负采样的实现逻辑:

image.png

从其他网站粘贴过来eui的定义,终于明白了一点点:

image.png

LFM和基于领域的算法优缺点对比:

2.6 基于图的模型

2.6.1 用户行为数据的二分图表示

图的遍历逻辑:


image.png

基于随机游走的PersonalRank算法:


image.png
image.png

第三章:推荐系统冷启动问题

3.1 冷启动问题简介

冷启动分类:

解决方案:

3.2 利用用户注册信息

image.png image.png

3.3 选择合适的物品启动用户的兴趣

能够用来启动用户兴趣的物品需要具有以下特点。

image.png image.png

3.4 利用物品的内容信息

针对冷启动的用户,基于某个强特征做随机,比如app-key/gitlhub用户之类的
技术抽取关键词

image.png

如何建立文章、话题和关键词的关系是话题模型(topicmodel)研究的重点。代表性的话题模型有LDA
(假设有两篇论文,它们的标题分别是“推荐系统的动态特性”和“基于时间的协同过滤算法研究”,这两个应该是一类)


image.png

3.5 发挥专家的作用


第四章:利用用户的标签数据

4.1 UGC标签系统中的代表应用

4.2 标签系统中的推荐问题

标签流行度的定义:
我们定义的一个标签被一个用户使用在一个物品上,它的流行度就加一。如下代码计算了每个标签的流行度。

4.3 基于标签的推荐系统

预测用户会给什么产品打什么标签。
评价指标:

TagBasedTFIDF算法:


image.png

4.4 给用户推荐标签

4.5 拓展阅读


第五章:利用上下文信息

5.1 时间上下文信息

时间属性有哪些:

时间特征:

提高推荐结果的时间多样性需要分两步解决

  1. 需要保证推荐系统能够在用户有了新的行为后及时调整推荐结果,使推荐结果满足用户最近的兴趣;
    • 在生成推荐结果时加入一定的随机性。比如从推荐列表前20个结果中随机挑选10个结果展示给用户,或者按照推荐物品的权重采样10个结果展示给用户。
    • 记录用户每天看到的推荐结果,然后在每天给用户进行推荐时,对他前几天看到过很多次的推荐结果进行适当地降权。
    • 每天给用户使用不同的推荐算法。可以设计很多推荐算法,比如协同过滤算法、内容过滤算法等,然后在每天用户访问推荐系统时随机挑选一种算法给他进行推荐。
  2. 需要保证推荐系统在用户没有新的行为时也能够经常变化一下结果,具有一定的时间多样性。

时间上下文算法:

  1. 推荐最近最热门的算法:


    image.png
  2. 时间上下文相关的item算法:
    • 物品相似度 用户在相隔很短的时间内喜欢的物品具有更高相似度。
    • 在线推荐 用户近期行为相比用户很久之前的行为,更能体现用户现在的兴趣。
  3. 时间上下文的相关的user算法:
image.png

5.2 地点上下文信息

LARS(Location Aware Recommender System,位置感知推荐系统)的和用户地点相关的推荐系统

5.3 拓展阅读


第六章:利用社交网络数据

6.1 获取社交网络数据的途径

6.2 社交网络数据简介

6.3 基于社交网络的推荐

信息流推荐算法是Facebook的EdgeRank

6.4 给用户推荐好友

6.5 拓展阅读。


第七章:推荐实例

7.1 外围架构

7.2 推荐系统架构

image.png

7.3 推荐引擎的架构

7.4 拓展阅读


第八章:评分预测问题

8.1 离线实验方法:

8.2 评分预测算法:

上一篇 下一篇

猜你喜欢

热点阅读