推荐系统简介

1,基本概念

推荐系统属于资讯过滤的一种应用。推荐系统能够将可能受喜好的资讯或实物(例如:电影、电视节目、音乐、书籍、新闻、图片、网页)推荐给使用者。 推荐系统首先收集用户的历史行为数据,然后通过预处理的方法得到用户-评价矩阵,再利用机器学习领域中相关推荐技术形成对用户的个性化推荐。有的推荐系统还搜集用户对推荐结果的反馈,并根据实际的反馈信息实时调整推荐策略,产生更符合用户需求的推荐结果,推荐系统的难点在于计算量和推荐模型的更新。

2,个性化数据
在这里插入图片描述
3,协同过滤算法

3.1 实现协同过滤,需要的步骤
(1)收集用户偏好(数据)
(2)找到相似的用户或物品
(3)计算推荐
在这里插入图片描述
通过用户行为,建立用户与产品、用户之间的关系。

相似度计算:

(1)欧几里德距离(Euclidean Distance)
在这里插入图片描述
(2)皮尔逊相关系数(Pearson Correlation Coefficient,常用)
在这里插入图片描述
(3)Cosine 相似度(Cosine Similarity,余弦距离)

在这里插入图片描述

对于皮尔逊相关系数(Pearson Correlation Coefficient):

(1)计算协方差(衡量x,y的变化趋势是否一致,值域[-1,1])

在这里插入图片描述

(2)计算皮尔逊相关系数
在这里插入图片描述
Pearson相关系数是用协方差除以两个变量的标准差(消除自身的差异,把不规则的分布规则化)得到的。值域为[-1,1](-1为负相关,1为正相关,0相关性最差(无规律))

在这里插入图片描述
邻居的选择:.A固定数量的邻居或者B基于相似度门槛的邻居(效果比较好,常用)
在这里插入图片描述
3.2 基于用户的协同过滤

在用户中计算相似度:在这里插入图片描述
已知用户评分矩阵Matrix R(一般都是非常稀疏的),推断矩阵中空格empty cells处的值
在这里插入图片描述
0代表未买过的商品,找相似用户是否买过该商品,买过则推荐该商品。UserCF存在的问题:对于一个新用户,很难找到邻居用户;对于一个物品,所有最近的邻居都在其上没有多少打分。

基础解决方案:
(1)相似度计算最好使用皮尔逊相似度;
(2)考虑共同打分物品的数目,如乘上min(n,N)/N n:共同打分数 N:指定阈值(共同打分的物品数目越大,代表用户越相似);
(3)对打分进行归一化处理(更好的对比用户之间的相似度,防止计算偏差过大);
(4)设置一个相似度阈值;

基于用户的协同过滤不流行的原因:
(1)稀疏问题(用户购买的商品少,商品多)
(2)数百万的用户计算(统计计算量非常大)
(3)人是善变的(随机性)

3.3 基于物品的协同过滤

计算物品间的相似度:
在这里插入图片描述
基于物品的协同过滤优势:
(1)计算性能高,通常用户数量远大于物品数量(可只对同类物品计算)
(2)可预先计算保留,物品并不善变

实例:
在这里插入图片描述分别计算1号电影与2、3、4、5、6之间的皮尔逊相似度,通常要减去均值,消除差异化,让计算结果更加客观,根据K近邻,找到相似度比较大的电影(类似电影),然后将相似度当做权重计算5号观众对1号电影的评分,如果较小则不推荐。

计算相似度时并不考虑物体的内在属性,而是考虑物品与客户相连系的指标(评分)

3.4 用户冷启动问题

基于用户的协同过滤和基于物品的协同过滤都存在用户冷启动问题。解决办法如下:
(1)引导用户把自己的一些属性表达出来;
(2)利用现有的开放数据平台;
(3)根据用户注册属性;
(4)推荐排行榜单(常用);

3.5 物品冷启动问题
(1)文本分析
(2)主题模型
(3)打标签
(4)推荐排行榜单

3.6 基于用户的协同过滤和基于物品的协同过滤对比
在这里插入图片描述基于用户的推荐:实时新闻;突然情况……
基于物品的推荐:图书;电子商务;电影……。

4,隐语义模型

用户和物品的之间的联系(通常不好找),用户和物品之间有着隐含的联系,通过将用户和物品都转化为隐语义(中间量),通过隐语义的组合(隐含因子)表达用户和物品的之间的联系,让计算机计算。

矩阵分解(用户、物品和隐含因子之间的关系):
在这里插入图片描述N个用户,M个商品,F隐含因子。

组合(得到用户和物品的之间的联系):
在这里插入图片描述4.1 隐语义模型的求解
在这里插入图片描述
通过隐语义的组合(隐含因子class)表达用户和物品的之间的联系:
在这里插入图片描述

损失函数:
在这里插入图片描述梯度下降方向:
在这里插入图片描述
迭代求解(参数更新):
在这里插入图片描述

4.2 隐语义模型正负样本选择(正样本代表用户对其有行为)

(1)对每个用户,要保证正负样本的平衡(数目相似)
(2)选取那些很热门,而用户却没有行为的物品(负样本)
(3)对于用户—物品集K {(u,i)},其中如果(u, i)是正样本,则有 ? ?? = 1,负样本则? ?? = 0

4.3 隐语义模型参数选择
(1)隐特征的个数F,通常F=100(过大易出现过拟合,计算量也加大);
(2)学习速率alpha,别太大(0.01);
(3)正则化参数lambda,别太大(0.01-0.1);
(4)负样本/正样本比例 ratio

5,协同过滤VS隐语义

(1)原理:协同过滤基于统计,隐语义基于建模;
(2)空间复杂度(要维护较大的矩阵),隐语义模型较小;
(3)实时推荐依旧难,目前离线计算多;
(4)协同过滤比较容易理解,隐语义模型不好解释(神经网络类似);

6,评估标准

6.1 准确度:

在这里插入图片描述

6.2 召回率:

令R(u)是根据用户在训练集上的行为给用户作出的推荐列表, T(u)是用户在测试集上的行为列表则有
在这里插入图片描述
6.3 覆盖率:

可以物品的数量或熵值来表达:
在这里插入图片描述

6.4 多样性:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值