推荐系统

简介: 推荐系统的目标:根据用户的喜好,为不同的用户推荐不同的物品,促成更多的交易。1.协同过滤具有相似消费行为的人,可以相互推荐。比如用户a、b同时购买了手机,a又购买了手机壳,那么b也是手机壳的潜在买家。 往往需要一个物品评分矩阵R,元素ri,jr_{i,j}表示用户i对物品j的评分。一般采用5分制,从1(非常不喜欢)到5(非常喜欢)。形如: 表1.1 一个

推荐系统的目标:根据用户的喜好,为不同的用户推荐不同的物品,促成更多的交易。

1.协同过滤

具有相似消费行为的人,可以相互推荐。比如用户a、b同时购买了手机,a又购买了手机壳,那么b也是手机壳的潜在买家。
往往需要一个物品评分矩阵R,元素ri,j表示用户i对物品j的评分。一般采用5分制,从1(非常不喜欢)到5(非常喜欢)。形如:
表1.1 一个评分矩阵示例

user p1 p2 p3 p4 p5
u1 5 3 4 4 ?
u2 3 1 2 3 3
u3 4 3 4 3 5
u4 3 3 1 5 4
u5 1 5 5 2 1

ui,pi分别表示用户与物品编号。表示待评分。

1.1 基于用户

基本思想:先算用户相似度,找到与用户u最邻近的n个用户。然后根据这些用户对物品p的评分,预测出u对p的评分。

用户相似度,即历史评分行为相似。这也可以说明爱好相似。
使用Pearson相关系数(可译为培生,皮尔逊等),计算a,b两个用户的相似度公式

sim(a,b)=pP(ra,pra¯)(rb,prb¯)pP(ra,pra¯)2pP(rb,prb¯)2(1.1-1)

P为物品集合。 ru¯为用户u的平均评分。
Person相关系数的值从-1(强负相关)到1(强正相关)。
Person相关系数的计算考虑到了不同用户评分标准不尽相同这一情况——有些用户习惯性给高分,有些习惯性差评。
式1.1-2表示 用户a对物品p的评分预测值
pred(a,p)=ra¯+bNsim(a,b)(rb,prb¯)bNsim(a,b)(1.1-2)

N为与用户a打分行为最相似的n个用户的集合。大多数情况下,n取值为20~50比较合理。

1.2 基于物品

基于物品的协同过滤,item-based collaborative filtering 。

基本思想:在购买了p1物品的用户集合中,很多也买了p2,那么其他p1的购买者也是p2的潜在购买者。

物品a,b的相似度计算:

sim(a,b)=|U(a)U(b)||U(a)|×|U(b)|(2.1)

U(p)表示购买了物品p的用户集合。
因此协同过滤中的物品间相似并不一定是物品属性的相似(比如手机与手机壳被同时购买的概率就很大),而是基于被同时购买的概率的相似。
可以得到与物品p最相似的n个邻近物品集合S(p,n)为:
S(p,n)={x|sim(p,x)topn,xP}(2.2)

P为物品全集。
可以得到用户u对物品p的预测评分:
Rec(u,p)=iBought(u)S(p,n)wpirui(2.3)

wpi表示物品p与物品i的相似度; rui表示用户u对物品i的评分; Bought(u)表示用户u的已买物品集。

2.基于内容的推荐

基本思想:基于内容评估未购买物品与已购买物品的相似度,择优推荐。

为物品维护一些特征集合。 以图书为例:
表2.1物品属性

书名 体裁 作者 类型 价格 关键词
The Lace Reader fiction,mystery Tom Hardcover 50.0 detective,historical

表2.2用户小明的偏好

书名 体裁 作者 类型 价格 关键词
/ fiction,romance Selina Paperback(平装) 40.0 school,youth

用户偏好可以分析已购买物品的特征得到。

特征重叠相似度一般用Dice系数计算。
a,b两物品的Dice系数计算为:

Dice(a,b)=2|keywords(a)keywords(b)||keywords(a)|+|keywords(b)|(2.1)

可以描述为 2

3.如何评价一款推荐系统

常用于机器学习的N-折交叉检验同样适用。

3.1 推荐准确率

用户感知不到推荐评分,他看到的就是一个推荐列表,也就是评分后top-n的物品列表。所以可以定义=||||

Precision=uU|Rec(u)Test(u)|uU|Test(u)|(3.1)

Rec(u)为生成的用户u的推荐列表; Test(u)为测试集中用户u的购买列表。二者的交集就是命中的物品集合。

3.2 推荐召回率

可以定义=||||

Recall=uU|Rec(u)Test(u)|uU|Rec(u)|(3.2)

3.3 评分准确率

可以使用均方根误差来评估。

RMSE=u,iT(ruirui^)2|T|(3.3)

rui为用户u对物品i的评分(rating); rui^为预测值。
目录
相关文章
|
机器学习/深度学习 人工智能 搜索推荐
人工智能推荐系统
人工智能推荐系统
1034 2
|
SQL 搜索推荐 分布式数据库
用户画像建设
用户画像建设
425 0
|
机器学习/深度学习 存储 消息中间件
推荐系统基本概念和架构
阿里巴巴技术专家傲海为大家带来推荐系统基本概念和架构的介绍。内容包括什么是推荐系统和企业级推荐系统架构两部分。
推荐系统基本概念和架构
|
存储 弹性计算 缓存
阿里云服务器通用算力型实例规格性能、适用场景及价格参考
通用算力型云服务器阿里云推出的一款高性价比系列云服务器产品,也是目前阿里云官网活动中比较推荐用户购买的云服务器产品,目前通用算力型云服务器的活动价格略高于经济型e实例,但又比计算型c7、通用型g7等其他系列的云服务器价格要低一些,本文通过介绍通用算力型云服务器的性能、产品优势及适用场景和价格等情况,从而让大家了解通用算力型云服务器,对是否选择通用算力型云服务器做一个参考。
1370 1
阿里云服务器通用算力型实例规格性能、适用场景及价格参考
|
9月前
|
SQL 关系型数据库 MySQL
宝塔面板之MySQL无法远程连接
宝塔面板默认安装的MySQL,root用户无远程权限。本文详细介绍如何使root支持远程连接:确保3306端口已放行,通过SSH登录服务器并进入MySQL,修改root用户的host为'%',最后刷新权限。具体步骤包括使用SQL命令修改用户主机设置,并确保网络配置正确,从而实现root的远程访问。
1558 35
|
运维 监控 网络安全
Python 在网络运维方面的自动化应用实例
Python 在网络运维方面的自动化应用实例
376 4
|
JavaScript Java 程序员
闲话目前游戏服务器的开发
闲话目前游戏服务器的开发
|
存储 NoSQL 开发工具
开发者如何使用表格存储 Tablestore
【10月更文挑战第11天】开发者如何使用表格存储 Tablestore
583 0
|
消息中间件 存储 机器学习/深度学习
推荐系统入门
前言我最近正在入门推荐系统,发现这是一个非常有意思的领域。推荐系统无处不在,现在几乎所有的网站和应用里最显眼的位置和重要的位置中都是推荐系统。电商类的软件,例如Amazon、京东、淘宝、拼多多;首页和商品页面附近都是推荐你购买新的商品;视频类软件,例如Youtube、Bilibili、爱奇艺,它们的首页和搜索页中也都在推荐你可能会喜欢的影片;游戏类软件,例如原神、王者荣耀,无时无刻都在推荐你它们的
670 1