推荐系统之概述

只愿长相守 提交于 2020-01-14 06:34:07

1.什么是推荐系统

1.推荐系统的背景

(1)随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载的时代。在这个时代,无论是信息消费者还是生产者都遇到了很大的挑战
(2)无明确需求
(3)信息过载

由此引出推荐系统的概念:
从上图中可以看到,左边是没有明确需求的用户,但是商品信息量过大,推荐系统就是在大量商品中找到用户喜欢的商品推荐给用户,推荐系统是连接用户和商品的一个桥梁。
作用,它能解决信息过载问题,使得消费者和生产者达到一个共鸣的状态。

2.推荐系统和搜索引擎

1.相同点:
帮助用户快速发现有用信息的工具
2.不同点:
搜索引擎需要用户主动提供准确的关键词来寻找信息
推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为给用户的兴趣建模
3.关系:
搜索引擎满足了用户有明确目的时的主动查找需求
推荐系统能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容

3.推荐系统的工作原理

以看电影为例:
1.社会化推荐:向朋友咨询,即让好友给自己推荐物品
2.基于内容的推荐:打开搜索引擎,输入自己喜欢的演员名,然后看看返回结果中还有什么电影是自己没有看过的。
3.基于流行度的推荐:查看排行榜
4.基于协同过滤的推荐:找到和自己历史兴趣相似的一群用户,看看他们最近在看什么电影。

2.推荐系统的设计

1.需求分析和用户调研

目标用户:
新用户->兴趣未知,着重促销、多样性、新颖性
老用户->兴趣已知,着重个性化
主流用户,小众群体?
推荐什么:
价格一致,用户经常购买的类别
书、电影、音乐、文章->以用户对内容主题的兴趣为主
价格不一致,用户经常购买的类别
服饰、日用百货->视觉、品牌、价格、内容
用户很少购买的类别
房、车、装修材料、家具->专家推荐、互补推荐
新品促销/库存清理->考虑整体系统的获利
何时
Email VS 手机短信
短期、长期、周期(节假日)
何地:
基于位置的服务(美团外卖)

2.功能设计

1.个性化首页
新用户:基于流行度推荐
老用户:个性化促销,关注信息推送
2.Item页面
关联商品
基于浏览历史的推荐
基于购买历史的推荐
3.User页面
使用户轻松快速地找到他喜欢的商品
4.购物车页面
5.Community页面
买家评论交流互动,用户反馈信息的收集页面

3.界面设计

如何将推荐结果呈现给用户?
尽可能简洁,达到让用户愿意反馈的目的
如何收集用户信息和反馈数据?
可以给物品上带一个爱心和垃圾箱,代表喜欢和不喜欢
例如豆瓣电影都会带有已看,想看,评分
目的:
提高用户满意度,达到推荐目的
更多更好地收集高质量的用户反馈
准确评测推荐算法效果

4.架构设计

硬件资源的限制
底层服务器、数据仓库、web框架、缓存架构
服务器数量、服务器类型
选择小型机还是选择PC机,需不需要考虑做一些高可用呢,或者
用户数、item数
用户数预期:在并发度上需要满足多少个用户的并发,1万、10万还是1千万个甚至上亿个用户的并发度访问。
商品数预期:预期会有多少个商家,多少个商品。
存储、接口
存储:使用内存数据库,还是传统的并行数据库,还是关系型数据库,或者选择Hadoop这样的分布式存储系统
接口:推荐系统提供的接口是什么
实时响应的要求
响应的实效是什么,满足多少个并发
以上这些都会决定我们在架构设计的一些硬件或者是架构的选型,这些由架构师和管理员共同决定

5.算法设计

优化准则
优化指标
预测准确度,通常根据混淆矩阵,来判断推荐的结果和实际用户行为的结果是否匹配,然后得到一些召回率和准确率

数据预处理
在算法开发之前,需要对数据进行预处理
数据有来自关系型数据库的,有来自web服务日志的,或者还有一些非结构化的文件比如HTML,CSV等格式的文件,这些文件都需要进行标准化,考虑一些数据冗余和空白的填充和归一化

离线算法
如何设计、如何选择、如何评测
在线算法
如何设计、如何选择、如何评测
功能实现策略
整体实现策略
推荐解释
给用户的信任度,使用户能够和推荐系统进行交互

6.系统评测

基于用户反馈
点击率?转换率?单次使用时长?重复使用率?
A/B测试
这是作为在线测试的一种方式,就是对用户进行分流,分为AB两组,不同组使用不同的推荐系统的推荐算法进行推荐,然后再去评估不同的推荐算法结果,选择最合适的一些算法或者最优的一些模型来进行最终推荐系统的上线

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!