推荐系统 | 【01】简介

article/2025/8/23 9:51:42
@[toc]

简介

介绍

简介:推荐系统经过对年的发展,在电商、资讯、音乐等应用中成为了核心组件之一。
背景:信息的过载与用户对于需求不够明确。
概念:用户没有明确的需求且服务于用户的商品信息过载,则系统能过通过算法对商品进行有规则的排序。

推荐系统与搜索引擎的区别

搜索引擎推荐系统
行为方式主动被动
意图明确模糊
个性化
流量分布马太效应长尾效应
目标快速满足持续服务
评估指标简明复杂

马太效应:一种强者愈强、弱者愈弱的现象。
长尾效应:从人们需求的角度来看,大多数的需求会集中在头部 —— 流行,而分布在尾部的需求是个性化的,零散的小量的需求。而这部分差异化的、少量的需求会在需求曲线上面形成一条长长的“尾巴” —— 长尾效应。

作用

  • 高效连接用户和物品, 发现长尾商品;
  • 留住用户和内容生产者, 实现商业目标。

工作原理

  • 社会化推荐 向朋友咨询, 社会化推荐, 让好友给自己推荐物品;
  • 基于内容的推荐 打开搜索引擎, 输入要购买的商品, 在看返回结果中还有什么商品是没有看过的;
  • 基于流行度的推荐 查看购物排行榜;
  • 基于协同过滤的推荐 找到和自己历史兴趣相似的用户, 看看他们最近在看什么电影。

推荐系统的整体架构

架构图

在这里插入图片描述

Lambda架构

由Twitter工程师Nathan Marz(storm项目发起人)提出。Lambda系统架构提供了一个结合实时数据和Hadoop预先计算的数据环境和混合平台, 提供一个实时的数据视图

分层架构

批处理层

  • 数据不可变, 可进行任何计算, 可水平扩展
  • 高延迟 几分钟~几小时(计算量和数据量不同)
  • 日志收集 Flume
  • 分布式存储 Hadoop hdfs
  • 分布式计算 Hadoop MapReduce & spark
  • 视图存储数据库 --> [nosql(HBase/Cassandra), Redis/memcache, MySQL]

实时处理层
流式处理, 持续计算

  • 存储和分析某个窗口期内的数据
    • 最终正确性
    • 实时数据收集 flume & kafka
    • 实时数据分析 spark streaming/storm/flink

服务层

  • 支持随机读
  • 需要在非常短的时间内返回结果
  • 读取批处理层和实时处理层结果并对其归并

lambda架构图
在这里插入图片描述
推荐算法架构

召回阶段

  • 召回决定了最终推荐结果的天花板
  • 常用算法: 协同过滤(基于用户 基于物品的);基于内容 (根据用户行为总结出自己的偏好 根据偏好 通过文本挖掘技术找到内容上相似的商品);基于隐语义

排序阶段

  • 召回决定了最终推荐结果的天花板, 排序逼近这个极限, 决定了最终的推荐效果
  • CTR预估 (点击率预估 使用LR算法) 估计用户是否会点击某个商品 需要用户的点击数据

策略调整
在这里插入图片描述
整体架构
在这里插入图片描述
在这里插入图片描述

推荐算法

推荐模型构建流程在这里插入图片描述数据清洗

数据来源

  • 显性数据: Rating 打分 ; Comments 评论/评价
  • 隐形数据:Order history 历史订单;Cart events 加购物车;Page views 页面浏览;Click-thru 点击; Search log 搜索记录

数据量/数据能否满足要求

特征工程

从数据中筛选特征

  • 一个给定的商品,可能被拥有类似品味或需求的用户购买
  • 使用用户行为数据描述商品
    在这里插入图片描述

用数据表示特征

  • 将所有用户行为合并在一起 ,形成一个user-item 矩阵
    在这里插入图片描述

选择算法
产生推荐结果

协同过滤推荐算法(最为经典)

算法思想

物以类聚,人以群分

基本的协同过滤推荐算法基于该俩种假设

  • “跟你喜好相似的人喜欢的东西你也很有可能喜欢” :基于用户的协同过滤推荐(User-based CF)
  • “跟你喜欢的东西相似的东西你也很有可能喜欢 ”:基于物品的协同过滤推荐(Item-based CF)

实现协同过滤推荐有以下几个步骤

找出最相似的人或物品:TOP-N相似的人或物品:通过计算两两的相似度来进行排序,即可找出TOP-N相似的人或物品
根据相似的人或物品产生推荐结果:利用TOP-N结果生成初始推荐结果,然后过滤掉用户已经有过记录的物品或明确表示不感兴趣的物品

相似度计算

在这里插入图片描述
相似度的计算方法

数据分类

  • 实数值(物品评分情况)
  • 布尔值(用户的行为 是否点击 是否收藏)

欧氏距离:是一个欧式空间下度量距离的方法. 两个物体, 都在同一个空间下表示为两个点, 假如叫做p,q, 分别都是n个坐标, 那么欧式距离就是衡量这两个点之间的距离. 欧氏距离不适用于布尔向量之间
在这里插入图片描述
欧氏距离的值是一个非负数, 最大值正无穷, 通常计算相似度的结果希望是[-1,1]或[0,1]之间,一般可以使用
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210223215558954.png

杰卡德相似度&余弦相似度&皮尔逊相关系数

余弦相似度

  • 度量的是两个向量之间的夹角, 用夹角的余弦值来度量相似的情况
  • 两个向量的夹角为0是,余弦值为1, 当夹角为90度是余弦值为0,为180度是余弦值为-1
  • 余弦相似度在度量文本相似度, 用户相似度 物品相似度的时候较为常用
  • 余弦相似度的特点, 与向量长度无关,余弦相似度计算要对向量长度归一化, 两个向量只要方向一致,无论程度强弱, 都可以视为’相似’

皮尔逊相关系数Pearson

  • 实际上也是一种余弦相似度, 不过先对向量做了中心化, 向量a b 各自减去向量的均值后, 再计算余弦相似度
  • 皮尔逊相似度计算结果在-1,1之间 -1表示负相关, 1表示正相关
  • 度量两个变量是不是同增同减
  • 皮尔逊相关系数度量的是两个变量的变化趋势是否一致, 不适合计算布尔值向量之间的相关度

杰卡德相似度 Jaccard

  • 两个集合的交集元素个数在并集中所占的比例, 非常适用于布尔向量表示
  • 分子是两个布尔向量做点积计算, 得到的就是交集元素的个数
  • 分母是两个布尔向量做或运算, 再求元素和
  • 余弦相似度适合用户评分数据(实数值), 杰卡德相似度适用于隐式反馈数据(0,1布尔值)(是否收藏,是否点击,是否加购物车)

余弦相似度
在这里插入图片描述
皮尔逊相关系数
在这里插入图片描述
计算出用户1和其它用户之间的相似度
在这里插入图片描述
按照相似度大小排序, K近邻 如K取4: 1
在这里插入图片描述
取出近邻用户的购物清单
在这里插入图片描述
去除用户1已经购买过的商品
在这里插入图片描述
在剩余的物品中根据评分排序
在这里插入图片描述
物品相似度计算

余弦相似度对绝对值大小不敏感带来的问题

  • 用户A对两部电影评分分别是1分和2分, 用户B对同样这两部电影进行评分是4分,5分 用余弦相似度计算,两个用户的相似度达到0.98
  • 可以采用改进的余弦相似度, 先计算向量每个维度上的均值, 然后每个向量在各个维度上都减去均值后,在计算余弦相似度, 用调整的余弦相似度计算得到的相似度是-0.1

基于模型的方法

思想

通过机器学习算法,在数据中找出模式,并将用户与物品间的互动方式模式化;基于模型的协同过滤方式是构建协同过滤更高级的算法

近邻模型的问题

物品之间存在相关性, 信息量并不随着向量维度增加而线性增加;矩阵元素稀疏, 计算结果不稳定,增减一个向量维度, 导致近邻结果差异很大的情况存在

算法分类

基于图的模型;基于矩阵分解的方法

基于图的模型

基于邻域的模型看做基于图的模型的简单形式
在这里插入图片描述
原理

  • 将用户的行为数据表示为二分图
  • 基于二分图为用户进行推荐
  • 根据两个顶点之间的路径数、路径长度和经过的顶点数来评价两个顶点的相关性

基于矩阵分解的模型

原理

  • 根据用户与物品的潜在表现,我们就可以预测用户对未评分的物品的喜爱程度
  • 把原来的大矩阵, 近似分解成两个小矩阵的乘积, 在实际推荐计算时不再使用大矩阵, 而是使用分解得到的两个小矩阵
  • 用户-物品评分矩阵A是M X N维, 即一共有M个用户, n个物品 我们选一个很小的数 K (K<< M, K<<N)
  • 通过计算得到两个矩阵U V U是M * K矩阵 , 矩阵V是 N * K
    U m ∗ k V n ∗ k T 约 等 于 A m ∗ n U_{m*k} V^{T}_{n*k} 约等于 A_{m*n} UmkVnkTAmn 类似这样的计算过程就是矩阵分解

基于矩阵分解的方法

  • ALS交替最小二乘:- ALS-WR(加权正则化交替最小二乘法): alternating-least-squares with weighted-λ –regularization; 将用户(user)对商品(item)的评分矩阵分解为两个矩阵:一个是用户对商品隐含特征的偏好矩阵,另一个是商品所包含的隐含特征的矩阵。在这个矩阵分解的过程中,评分缺失项得到了填充,也就是说我们可以基于这个填充的评分来给用户做商品推荐了。
  • SVD奇异值分解矩阵

推荐系统评估

显示反馈和隐式反馈

显式反馈隐式反馈
例子电影/书籍评分是否喜欢这个推荐播放/点击 评论 下载 购买
准确性
数量
获取成本

常用评估指标

准确性、信任度、 满意度、实时性、覆盖率、鲁棒性、 多样性、可扩展性、新颖性、商业⽬标、惊喜度、⽤户留存

准确性 (理论角度) Netflix 美国录像带租赁

评分预测:RMSE MAE
topN推荐:召回率 精准率

准确性 (业务角度)

在这里插入图片描述

覆盖度

信息熵对于推荐越大越好; 覆盖率

多样性&新颖性&惊喜性

  • 多样性:推荐列表中两两物品的不相似性。(相似性如何度量?
  • 新颖性:未曾关注的类别、作者;推荐结果的平均流⾏度
  • 惊喜性:历史不相似(惊)但很满意(喜)
  • 往往需要牺牲准确性
  • 使⽤历史⾏为预测⽤户对某个物品的喜爱程度
  • 系统过度强调实时性

Exploitation & Exploration 探索与利用问题

  • Exploitation(开发 利用):选择现在可能最佳的⽅案
  • Exploration(探测 搜索):选择现在不确定的⼀些⽅案,但未来可能会有⾼收益的⽅案
  • 在做两类决策的过程中,不断更新对所有决策的不确定性的认知,优化
    长期的⽬标

EE问题实践

  • 兴趣扩展: 相似话题, 搭配推荐
  • 人群算法: userCF 用户聚类
  • 平衡个性化推荐和热门推荐比例
  • 随机丢弃用户行为历史
  • 随机扰动模型参数

EE可能带来的问题

  • 探索伤害用户体验, 可能导致用户流失
  • 探索带来的长期收益(留存率)评估周期长, KPI压力大
  • 如何平衡实时兴趣和长期兴趣
  • 如何平衡短期产品体验和长期系统生态
  • 如何平衡大众口味和小众需求

评估方法

  • 问卷调查: 成本高
  • 离线评估: 只能在用户看到过的候选集上做评估, 且跟线上真实效果存在偏差;只能评估少数指标;速度快, 不损害用户体验
  • 在线评估: 灰度发布 & A/B测试 50% 全量上线
  • 实践: 离线评估和在线评估结合, 定期做问卷调查

http://chatgpt.dhexx.cn/article/sIEe24y8.shtml

相关文章

MADlib——基于SQL的数据挖掘解决方案(2)——MADlib基础

一、MADlib简介 MADlib是Pivotal公司与伯克利大学合作开发的一个开源机器学习库&#xff0c;提供了多种数据转换、数据探索、统计、数据挖掘和机器学习方法&#xff0c;使用它能够简易地对结构化数据进行分析和挖掘。用户可以非常方便地将MADlib加载到数据库中&#xff0c;扩展…

OushuDB入门(八)——AI篇

一、OushuDB AI简介 OushuDB可集成MADlib机器学习库作为其AI组件。现在OushuDB通过MADlib已经支持了大部分机器学习算法&#xff0c;正在研发一个新的组件以支持深度学习。OushuDB对MADlib进行了增强和优化&#xff0c;并在此基础上提出了AI-in-Database的概念。 MADlib…

朴实无华,总结200道往年BAT机器学习面试题

来源&#xff1a;CSDN 刷题&#xff0c;是面试前的必备环节。本文作者总结了往年BAT机器学习面试题&#xff0c;干货满满&#xff0c;值得收藏。 想要入职大厂可谓是千军万马过独木桥。 为了通过层层考验&#xff0c;刷题肯定是必不可少的。本文作者根据网络在线发布的BAT机器学…

2019年国内IT行业就业状况分析,你拖后腿了吗?

点击上方“后端技术精选”&#xff0c;选择“置顶公众号” 技术文章第一时间送达&#xff01; 作者&#xff1a;刚入道的大学僧 本文系投稿&#xff0c;原文内容点击阅读原文直达 一、分析背景与分析目的 随着科技的迅速发展&#xff0c;计算机的普及及对人类生活的渗透&#x…

Deep Learning Methods for Remote Heart Rate Measurement:A Review and Future Research Agenda

前言 本文为一片远程心率监测综述的总结复述&#xff0c;本文为作者第一篇试写博客&#xff0c;欢迎大家提出宝贵意见。 文章主要内容&#xff1a;1.简述了有关远程心率监测的基础知识与相关概念。2.讨论了基于深度学习的远程心率检测方法的几个最新进展&#xff0c;并根据模型…

论文解读:基于共享混合深度学习架构的DNA形状特征预测转录因子结合位点

Predicting transcription factor binding sites using DNA shape features based on shared hybrid deep learning architecture 数据&#xff1a;https://github.com/wangguoguoa/CRPTS 表S1: Tables S1 表S2&#xff1a;S2 表S3&#xff1a;Table S3 目录 1 文章概述…

一文简单理解“推荐系统”原理及架构

本文主要介绍什么是推荐系统&#xff0c;为什么需要推荐系统&#xff0c;如何实现推荐系统的方案&#xff0c;包括实现推荐系统的一些常见模型&#xff0c;希望给读者提供学习实践参考。 为什么需要推荐系统 对于信息消费者&#xff0c;需要从大量信息中找到自己感兴趣的信息&a…

拉普拉斯, 高斯, 高尔顿, 皮尔逊, 戈塞特, 费歇尔对统计学的发展贡献

由于人类的统计实践是随着计数活动而产生的&#xff0c;因此&#xff0c;统计发展史可以追溯到远古的原始社会&#xff0c;也就是说距今足有五千多年的漫长岁月。但是&#xff0c;能使人类的统计实践 上升到理论上予以概括总结的程度&#xff0c;即开始成为一门系统的学科统计学…

css过渡 取消过渡_如何过渡到微服务架构

css过渡 取消过渡 获取完整的书 微服务和容器 建议零售价$ 39.99 看见 本文摘录自Parminder Singh Kocher撰写的Pearson Addison-Wesley的著作《微服务和容器》。 经皮尔逊&#xff08;Pearson&#xff09;许可在此处转载©2018。 有关更多信息&#xff0c;请访问notifyit…

从编解码、传输到基础架构 详解Bigo多媒体技术栈

本文来自Bigo多媒体技术团队的投稿&#xff0c;详细介绍了Bigo多媒体技术的前生今世&#xff0c;通过何种技术手段支撑起了BigoLive、Likee和imo三大业务。技术栈具体涉及编解码、传输、全球基础设施架构等三方面。如果你也有独到的经验与思考&#xff0c;欢迎通过contributeli…

推荐系统lambda架构学习笔记之推荐系统(一)

推荐系统 个性化推荐(推荐系统)经历了多年的发展&#xff0c;已经成为互联网产品的标配&#xff0c;也是AI成功落地的分支之一&#xff0c;在电商(淘宝/京东)、资讯(今日头条/微博)、音乐(网易云音乐/QQ音乐)、短视频(抖音/快手)等热门应用中,推荐系统都是核心组件之一。 推荐…

极客星球 | 联邦学习与产品化之路

一、 背景——联邦学习与fate简介 1、联邦学习 联邦学习&#xff08;Federated Learning&#xff09;是一种新兴的人工智能基础技术&#xff0c;由谷歌最先提出于2016年&#xff0c;原用于解决安卓手机终端用户在本地更新模型的问题。其设计目标是在保障大数据交换时的信息安…

云效故障定位论文被ICSE2021 SEIP track收录

近期&#xff0c;由阿里云云效团队联合复旦大学CodeWisdom研究团队、阿里技术风险部安全生产团队&#xff0c;合作完成的论文《MicroHECL: High-Efficient Root Cause Localization in Large-Scale Microservice Systems》被ICSE 2021 SEIP track录用。本文针对大规模微服务系统…

简历项目-

文章目录 项目一&#xff1a;电商广告推荐系统一、数据集项目实现分析二、根据用户行为数据创建ALS模型并召回商品用户行为数据拆分&#xff08;pv,fav,cart,buy&#xff09;预处理behavior_log数据集根据用户对类目偏好打分训练ALS模型根据用户对品牌偏好打分训练ALS模型 三. …

【推荐系统算法学习笔记1】基本架构、专有名词、构建流程

文章目录 1.架构1.1 大数据框架&#xff1a;lambda 架构的1.2.基本概念 2. 推荐模型构建流程2.1 数据2.1.1 数据来源2.1.2 数据清洗、处理 2.2 特征工程2.3 算法&#xff08;机器学习&#xff09; 来源 1.架构 推荐算法架构 召回 协同过滤基于内容的基于隐语义的 排序 召回决定…

个性化推荐系统

一、系统架构 1、大数据Lambda架构 &#xff08;1&#xff09;Lambda系统架构提供了一个结合实时数据和Hadoop预先计算的数据环境和混合平台, 提供一个实时的数据视图 &#xff08;2&#xff09;分层架构 ----- 批处理层 a.数据不可变&#xff0c;可进行任何计算&#xff0c…

【推荐架构day1】推荐系统的基本原理及架构:信息与人的供需匹配

按&#xff1a;本文来自陈彩华的精分享&#xff0c;从WHY、What到How系统性地介绍一下推荐系统的基本原理。 为什么需要推荐系统 对于信息消费者&#xff0c;需要从大量信息中找到自己感兴趣的信息&#xff0c;而在信息过载时代&#xff0c;用户难以从大量信息中获取自己感兴趣…

CoAP学习笔记——CoAP资源发现

【 原文链接】 &#xff08;2015年4月15日&#xff0c;ct表述错误&#xff0c;待修改&#xff09; 更多CoAP文章请参考博文索引——【物联网学习笔记——索引博文】 CoAP协议专门为M2M通信设计&#xff08;设备间通信&#xff09;&#xff0c;在设备通信过程中很少会有人的干预…

一个用来学习CoAP协议的小例子

1 CoAP简介 CoAP 是受限制应用协议的简称&#xff0c;是物联网应用层协议之一。物联网应用层协议主要还有HTTP和MQTT&#xff0c;这三种协议有各自不同的应用场景。其中HTTP和MQTT使用TCP作为传输层协议&#xff0c;而CoAP使用UDP作为传输层协议&#xff0c;如下图&#xff1a…

CoAP学习笔记(1)CoAP报文结构

CoAP报文结构 CoAP基于UDP的应用层协议&#xff0c;报文结构如下 Ver 版本号占2bit&#xff0c;固定为01T 报文类型&#xff0c;占2bit&#xff0c;CoAP中有4种报文类型&#xff0c;如下 类型描述T值CON报文Confirmable&#xff0c;需要被确认的报文T00NON报文Non-Confirma…