个性化推荐系统

article/2025/8/19 11:04:02

一、系统架构

1、大数据Lambda架构

(1)Lambda系统架构提供了一个结合实时数据和Hadoop预先计算的数据环境和混合平台, 提供一个实时的数据视图

(2)分层架构 ----- 批处理层

                a.数据不可变,可进行任何计算,可水平扩展

                b.高延迟 几分钟~几小时(计算量和数据量不同)

                c.日志收集Flume

                d.分布式存储Hadoop hdfs

                e.分布式计算Hadoop MapReduce & spark

                f.视图存储数据库 nosql (HBase/Cassandra)、Redis/memcache、Mysql

(3)分层架构 ----- 实时处理层

                a.流式处理, 持续计算

                b.存储和分析某个窗口期内的数据

                c.最终正确性(Eventual accuracy)

                d.实时数据收集 flume & kafka

                e.实时数据分析 spark streaming/storm/flink

(4)分层架构 ----- 服务层

                a.支持随机读

                b.需要在非常短的时间内返回结果

                c.读取批处理层和实时处理层结果并对其归并

(5)Lambad架构图

 2、推荐算法架构

(1)召回阶段(海选)

                a.常用算法:协同过滤(基于用户 基于物品的)

                b.基于内容 (根据用户行为总结出自己的偏好 根据偏好 通过文本挖掘技术找到内容上相似的商品)

                c.基于隐语义

(2)排序阶段

                a.召回决定了最终推荐结果的天花板, 排序逼近这个极限, 决定了最终的推荐效果

                b.CTR预估 (点击率预估 使用逻辑回归----LR算法) 估计用户是否会点击某个商品 需要用户的点击数据

(3)策略调整

二、推荐算法 

1、推荐模型构建流程

Data(数据)->Features(特征)->ML Algorithm(机器学习算法)->Prediction Output(预测输出)

(1)数据清洗/数据处理 (2)数据来源

                a.显性数据          Rating 打分 ------  Comments 评论/评价

                b.隐形数据          Order history 历史订单 ------ Cart events 加购物车

                                            Page views 页面浏览 -------Click-thru 点击 ----- Search log 搜索记录                    c.数据量/数据能否满足要求        

                d.特征工程 

                e.从数据中筛选特征         

                             一个给定的商品,可能被拥有类似品味或需求的用户购买

                             使用用户行为数据描述商品

(3)用数据表示特征将所有用户行为合并在一起 ,形成一个user-item 矩阵选择合适的算法产生推荐结果

(4)选择合适的算法 

(5)产生推荐结果

2、协同过滤推荐算法 

(1)算法思想:物以类聚,人以群分

基本的协同过滤推荐算法基于以下假设:

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

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

(2)步骤:

  1. 找出最相似的人或物品:TOP-N相似的人或物品

    通过计算两两的相似度来进行排序,即可找出TOP-N相似的人或物品

  2. 根据相似的人或物品产生推荐结果

    利用TOP-N结果生成初始推荐结果,然后过滤掉用户已经有过记录的物品或明确表示不感兴趣的物品

         例子:X同学爱好[足球、篮球、乒乓球]

                    Y同学爱好[网球、足球、篮球、羽毛球],

                   可见他们的共同爱好有2个,那么他们的相似度:2/3 * 2/4 = 1/3 ≈ 0.33 来表示。

 3、相似度计算

1、计算方法

                a.数据分类

                        ------实数值(物品评分情况)

                        ------布尔值(用户的行为 是否点击 是否收藏)

                b.欧氏距离:欧氏距离的值是一个非负数, 最大值正无穷, 通常计算相似度的结果希望是 [-1,1]或[0,1]之间,一般可以使用

   

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

(1)余弦相似度 

        a.度量的是两个向量之间的夹角, 用夹角的余弦值来度量相似的情况

        b.两个向量的夹角为0是,余弦值为1, 当夹角为90度是余弦值为0,为180度是余弦值为-1

        c.余弦相似度在度量文本相似度, 用户相似度 物品相似度的时候较为常用

        d.余弦相似度的特点, 与向量长度无关,余弦相似度计算要对向量长度归一化, 两个向量只要方向一致,无论程度强弱, 都可以视为'相似'

(2)皮尔逊相关系数Pearson

        a.实际上也是一种余弦相似度, 不过先对向量做了中心化, 向量a b 各自减去向量的均值后, 再计算余弦相似度

        b.皮尔逊相似度计算结果在-1,1之间 -1表示负相关, 1表示正相关

        c.度量两个变量是不是同增同减

        d.皮尔逊相关系数度量的是两个变量的变化趋势是否一致, 不适合计算布尔值向量之间的相关度

(2)杰卡德相似度 Jaccard

        a.两个集合的交集元素个数在并集中所占的比例, 非常适用于布尔向量表示

        b.分子是两个布尔向量做点积计算, 得到的就是交集元素的个数

        c.分母是两个布尔向量做或运算, 再求元素和

(3)余弦相似度适合用户评分数据(实数值), 杰卡德相似度适用于隐式反馈数据(0,1布尔值)(是否收藏,是否点击,是否加购物车)

 4、基于模型的方法

(1)原理

  • 根据用户与物品的潜在表现,我们就可以预测用户对未评分的物品的喜爱程度

  • 把原来的大矩阵, 近似分解成两个小矩阵的乘积, 在实际推荐计算时不再使用大矩阵, 而是使用分解得到的两个小矩阵

  • 用户-物品评分矩阵A是M X N维, 即一共有M个用户, n个物品 我们选一个很小的数 K (K<< M, K<<N)

  • 通过计算得到两个矩阵U和矩阵V ,U是M * K矩阵 , 矩阵V是 N * K

(2)基于矩阵分解的方法

  • ALS交替最小二乘

    • ALS-WR(加权正则化交替最小二乘法): alternating-least-squares with weighted-λ –regularization

    • 将用户(user)对商品(item)的评分矩阵分解为两个矩阵:一个是用户对商品隐含特征的偏好矩阵,另一个是商品所包含的隐含特征的矩阵。在这个矩阵分解的过程中,评分缺失项得到了填充,也就是说我们可以基于这个填充的评分来给用户做商品推荐了。

  • SVD奇异值分解矩阵

(3) ALS方法

 

  • ALS的矩阵分解算法常应用于推荐系统中,将用户(user)对商品(item)的评分矩阵,分解为用户对商品隐含特征的偏好矩阵,和商品在隐含特征上的映射矩阵。

  • 与传统的矩阵分解SVD方法来分解矩阵R(R∈ℝm×n)不同的是,ALS(alternating least squares)希望找到两个低维矩阵,以 R̃ =XY 来逼近矩阵R,其中 ,X∈ℝm×d,Y∈ℝd×n,这样,将问题的复杂度由O(mn)转换为O((m+n)d)。

  • 计算X和Y过程:首先用一个小于1的随机数初始化Y,并根据公式求X,此时就可以得到初始的XY矩阵了,根据平方差和得到的X,重新计算并覆盖Y,计算差平方和,反复进行以上两步的计算,直到差平方和小于一个预设的数,或者迭代次数满足要求则停止


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

相关文章

【推荐架构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…

coap协议学习之搭建coap测试环境

本篇目标&#xff1a;简单初步认识coap&#xff0c;以及怎么去测试自己搭建的coap协议应用。 材料准备&#xff1a; 谷歌浏览器/火狐浏览器&#xff08;55.0&#xff09;与 copper插件linux系统&#xff08;搭建在虚拟机下的 Ubantu&#xff09;与 libcoap开源程序 COAP插件的…

【协议】MQTT、CoAP、HTTP比较,MQTT协议优缺点

目录 MQTT、CoAP、HTTP区别 1. 协议栈&#xff1a; 2. 请求方式 3. 通讯消息格式&#xff1a; 4. 使用特点与使用场景 5.客户端平台差异 6.防火墙容错 MQTT、CoAP、HTTP介绍 CoAP协议 简介 CoAP与MQTT的区别&#xff1a; HTTP协议 简介 HTTP与CoAP的区别 MQTT协…

libcoap 接口分析与 CoAP 协议开发

libcoap 作为一个重要的 CoAP 开源实现&#xff0c;完整实现了 RFC 7252。很多优秀的 IoT 产品都用到了 libcoap&#xff0c;libcoap 为资源受限的设备&#xff08;例如计算能力&#xff0c;射频范围&#xff0c;内存&#xff0c;带宽或网络数据包大小&#xff09;实施轻量级应…

CoAP协议接入

CoAP协议规范 本小节介绍物联网平台支持的CoAP协议规范。 协议版本 支持RFC 7252 Constrained Application Protocol协议&#xff0c;更多信息&#xff0c;请参见RFC 7252。 通道安全 使用DTLS v1.2保证通道安全&#xff0c;更多信息&#xff0c;请参见DTLS v1.2。 开源客…

干货 | CoAP协议例析

点击上方“中兴开发者社区”&#xff0c;关注我们 每天读一篇一线开发者原创好文 在物联网领域中&#xff0c;MQTT和CoAP是最主要的两个应用协议。MQTT&#xff08;Message Queuing Telemetry Transport/消息队列遥测传输&#xff09;是基于TCP的发布/订阅方式的应用协议&#…

CoAP协议简介

学习CoAP最简单的方法便是阅读协议文档。该协议文档并不是那么复杂。当然如果有一个CoAP的简单介绍那就再好不过了。 什么是CoAP CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在最近几年的时间中&#xff0c;专家们预测会有更多的设备相互连接&#xf…

CoAP 协议学习

CoAP 协议学习 2014年左右智能家居异常火热&#xff0c;由于高效的端到端订阅推送特性&#xff0c;使得MQTT成为了智能家居的首选协议。因此目前各大云平台中&#xff0c;MQTT基本成了标配。 物联网另一个应用协议 CoAP 协议则相对低调&#xff0c;不过由于 NB-IoT 的推出&am…

CoAP协议学习笔记——CoAP格式详解

CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在当前由PC机组成的世界&#xff0c;信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言&#xff0c;实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网&#xff0c;CoAP协…

COAP学习笔记

文章目录 一、UDP协议简介二、COAP协议2.1 COAP简介2.2 CoAP消息报文结构i CoAP消息结构 - 消息类型 详解ii CoAP消息结构 - Requset/Response Code 详解iii CoAP消息结构 - Option 详解 2.3 CoAP观察模式2.4 COAP的安全性 三、根据阿里云COAP规范,分析并构建十六进制的报文3.1…

CoAP

CoAP是受限的应用协议(Contrained Application Protocol)的代名词. CoAP是一种应用层协议, 它运行于UDP协议之上. 参考: https://blog.csdn.net/xukai871105/article/details/45167069 CoAP协议综述 和其他TCP IP协议簇中的协议一样, CoAP协议总是以"头"的形式出现…

COAP详解

COAP协议学习 1分析工具 网络包分析利器&#xff1a;wiresharkCOAP协议客户端、服务端&#xff1a;wakaama 源码地址辅助编译工具cmake3&#xff1a;由于wakaama对cmake有版本要求 源码地址 ** 文章后附上wakaama、cmake3编译、使用方法及安装步骤等 2COAP协议介绍 Coap&am…

CoAP协议及开源实现

1. CoAP协议的简单介绍 CoAP是一种面向网络的协议&#xff0c;采用了与HTTP类似的特征&#xff0c;核心内容为资源抽象、REST式交互以及可扩展的头选项等。这些关键特征使得因特网由简单的文档检索机制(World Wide Web)演进成为现在繁荣的应用平台(Web 2.0)。HTTP作为IETF 成功…

CoAP学习笔记——CoAP格式详解

0 前言 CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在当前由PC机组成的世界&#xff0c;信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言&#xff0c;实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网&#xff0c…

CoAP协议学习——CoAP基础

【 原连接地址】 更多CoAP文章请参考博文索引——【 物联网学习笔记——索引博文】 推广 《IoT开发实战:CoAP卷》已经由机械工业出版社出版&#xff0c;如果想学习CoAP的更多内容请于淘宝、天猫或京东平台搜索"CoAP"。 什么是CoAP CoAP是受限制的应用协议(Constraine…

COAP介绍

什么是COAP CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在最近几年的时间中&#xff0c;专家们预测会有更多的设备相互连接&#xff0c;而这些设备的数量将远超人类的数量。在这种大背景下&#xff0c;物联网和M2M技术应运而生。虽然对人而言&#xf…

时序数据库InfluxDB和关系型数据库MySQL的区别及适用场景

数据库主要分为关系型数据库和非关系型数据库&#xff0c;大家所熟悉的数据库中&#xff0c;属Oracle、MySQL和Microsoft SQL Server最出名&#xff0c;使用人数最多&#xff0c;这三种都属于关系型数据库&#xff0c;之所以使用人数这么多&#xff0c;是因为关系型数据库符合大…