大数据智能推荐系统原理介绍

article/2025/9/29 21:39:18

一.什么是推荐系统:

通过算法分析用户喜欢什么,再把那些分析出来用户会喜欢的东西推荐给用户。

二.为什么要用推荐系统:

主要有以下三点好处:
1.用户:得到想要的物品
2.平台:获得更多的流量和收入
3.内容提供商:提高售卖效率

据了解,亚马逊有20%~30%的销售来自于推荐系统。
大拿语录:
——杰夫.贝佐斯

三.我们该如何推荐:

刚刚说到是通过算法分析用户喜欢什么,那么都有哪些算法呢?是如何分析的呢?

主要可分为以下几点:
1.基于流行度的推荐
2.基于好友推荐
3.基于人口统计学的推荐
4.基于内容的推荐算法(content based—简称CB)
5.基于协同过滤的推荐算法(collaborative filtering—简称CF)
6.混合推荐机制

别被吓到,原理很简单,下面依次介绍:

1.基于流行度的推荐:

根据PV、UV、日均PV或收藏数、分享率等数据来按某种热度排序来推荐给用户。

优点:
简单,适用于刚注册的新用户,无用户“冷启动”问题。
缺点:
无法针对用户提供个性化推荐。
举个栗子:
在这里插入图片描述
基于这种算法可做一些优化:
比如加入用户分群的流行度排序,把热榜上的摇滚歌曲分给爱听摇滚的用户,把民谣热歌推荐给爱听民谣的用户。。。。

2.基于好友推荐:

把你好朋友喜欢的东西推荐给你

据心理学上说,**你身边人推荐给你的东西甚至比一些权威人物的建议更容易让你接受!**我身边不少栗子确实是这样的,我就是栗子本栗了。
举个栗子:
在这里插入图片描述

3.基于人口统计学的推荐:

简单根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的物品推荐给当前用户。

优点
(1).不使用当前用户对物品的喜好历史,数据没有“冷启动”问题。
(2).不依赖于物品本身的数据。
缺点
只考虑用户本身的特征,计算用户相似度,虽有一定个性化,但还不够精准。

4.基于内容的推荐算法(content basedI:CB):

根据用户过去喜欢的产品,为用户推荐和他过去喜欢产品相似的物品。

CB过程一般包括三步:

(1).Item Presentation:为每个item抽取出一些特征(也就是item的content)来表示此item。
描述item的属性分为两种:
1.结构化属性:例如身高、学历、年龄。。。
2.非结构化属性:例如文章的内容等。。。

(2).profile learning:利用一个用户过去喜欢(及不喜欢)的item的特征数据,来学习出用户的喜好特征。
方法:通过用户过去的喜好,为他产生一个模型,根据这个模型判断用户是否会喜欢一个新的item。
首先找到用户已经评判过并与此新item最相似的k个item,然后根据用户对这k个item喜好程度判断对此新item的喜好程度。
相似度计算:

  1. 对于结构化数据:欧几里得距离。
  2. 对于向量空间模型(VSM)来表示item的话,使用cosine

(3). Recommendation Generation:通过比较上一步得到的用户profile与候选item的特征,为此用户推荐一组相关性最大的item。

基于内容推荐,有两类:非个性化、个性化,不同场景选择不同的推荐方式
非个性化
实现方案:

  1. 对元数据建立正排表:jieba分词,Tf-idf抽取每个item的特征及分数
    例: item1—>token1:score,token2:score, token3:score ,item2—>token2:score,token3:score, token6:score

  2. 建立倒排表入库:token1–>item1:score, token2–>item1:score,item2:score ,token3item1:score,item2:score ……

  3. 根据用户输入itemA,分词形成token:score,用token查询倒排表,进行相关性计算,乘倒排表中的item:score,再排序,最终形成itemA—>itemB:score1,itemC:score2

  4. 取topN推荐给用户

个性化
实现方案:
在上述基础上++用户画像
用户画像:
1、历史观看、收藏、购买记录
2、用户注册数据,年龄、性别等
3、社交信息:关系数据
解决马太效应—>多样性差问题的方法—试探:
例:5个推荐位,偶尔在一个推荐位随机选一个做试探(其他行业、频道)

3.基于协同过滤的推荐算法(collaborative filtering:CF)

协同算法可分为:
•User-Based CF(基于用户相似度的协同过滤)
•Item-Based CF(基于物品相似度的协同过滤)

(1).基于用户的协同过滤算法(User-Based CF)

当用户A需要个性化推荐时,可以找到和他兴趣相似的用户样本B,然后把B喜欢的且A没有听说过的物品推荐给A。

举个栗子:
在这里插入图片描述

步骤:

  1. 发现兴趣相似用户:通常用jaccard公式或者余弦相似度计算两个用户的相似度(具体算法后续会发文详细介绍)。
  2. 推荐物品:
    首先要从矩阵中找出与目标用户U最相似的K个用户,用集合S(K,U)表示,将S中用户喜欢的物品全部提取出来,并去除U已经喜欢的物品。对每个候选物品i,用户U对它的感兴趣程度进行计算,最终按得分排序,取前几个物品。
    特点:
    在用户的历史偏好的数据上计算用户的相似度。
    在这里插入图片描述
    优点:
    1.充分利用群体智慧
    2.推荐精度高于CB
    3.利于挖掘隐含的相关性
    缺点:
    1. 推荐结果解释性较差
    2. 对时效性强的item不适用
    3. 冷启动问题

用户相似度计算(cosine):
例:张三和李四的相似度计算
张三和李四的相似度计算
分子:5x3+1x2+0x1+2x3 = 15 + 2 + 0 + 6 = 23
分母:
|张三|:根号(5x5 + 1x1 +0x0 + 2x2) = 5.47
|李四|: 根号(3x3 + 2x2+ 1x1 + 3x3)= 4.79
Cosine = 分子/分母 = 23/(5.47 x4.79) = 0.877
张三和李四的相似度为0.877

(2).基于物品的协同过滤(Item-Based CF)

使用所有用户对物品或信息的偏好,发现物品与物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。

特点:
适用于物品个数远小于用户数量、物品的个数和相似度相对比较稳定的业务。
比基于用户的实时性更好一些。
与基于内容的推荐都是基于物品相似度的推荐,但是计算相似度的方法不一样。
基于物品的协同过滤式从用户历史的偏好判断。而基于内容的推荐是基于物品本身的属性特征信息。

物品相似度计算: 在这里插入图片描述
汉堡&薯条相似度:
分子:5x4+4x5+2x1+1x3=45
分母:Sqrt(5x5+4x4+2x2+1x1)xSqrt(4x4+5x5+1x1+3x3)=6.7x7.1=47.6
汉堡&薯条(cosine)=45/47.6=0.945

汉堡&香烟相似度:
分子:5x1+4x2+2x5+1x4=27
分母:Sqrt(5x5+4x4+2x2+1x1)xSqrt(1x1+2x2+5x5+4x4)=6.7x6.8=45.6
汉堡&香烟(cosine)=27/45.6=0.592

补充:工作中如果用户量远大于物品,则建议采用基于物品的协同过滤,反之亦然。如果用户和物品数据都非常庞大,采取随机采样的方式,再权衡好准确度的前提下尽量减少计算量。

(3).基于模型的协同过滤

基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好信息进行预测,计算推荐。

6.混合推荐机制

根据业务实际选择不同推荐策略的组合

以上介绍了几种最常用的推荐策略,后续会发文详细介绍基于Hadoop、Spark的CB、CF具体实现方法。
需强调的是,应结合自身业务灵活制定推荐策略和技术,推荐系统具有高度复杂性,需要持续地进行改进。可能在同一时间内,需要上线不同的推荐算法,做A/B test。根据用户对推荐结果的行为数据,不断对算法进行优化,改进。。
本文参考了一些前辈们的经验,在此表示万分感谢!
如有不足之处请多提宝贵意见!


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

相关文章

STM32F103最小系统原理图

新人如何绘制第一块pcb? 1 物料选择? 2 最小系统构成 3 原理图库和pcb封装库资源来源 4 原理图绘制 5 原理图编译校验 6 pcb布局 7 pcb布线每一个物料,都是于立创商城手动选择pcb封装,绘制而成 github:https://github.com/renxinlin/stm32

嵌入式系统原理及应用(复习总结)

第一章 嵌入式系统概论 嵌入式系统的定义: 以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 可以从以下几个方面理解: ①嵌入式系统是面…

04735数据库系统原理(知识点整合)

文章目录 1.数据是什么2.数据库是什么3.数据库的三个特点是什么4.数据库管理系统是什么5.数据库管理系统有哪些功能6.数据库系统的构成7.人工管理阶段的特点8.数据库系统阶段的特点9.数据库的保护包括哪些方面10.数据库系统的结构分类11.三级模式结构的两层映像与数据独立性12.…

STM32F407ZGT6最小系统原理图和PCB

目录 一、原理图 二、PCB 三、3D图 资料下载地址:STM32F407ZGT6最小系统原理图和PCB 一、原理图 二、PCB 三、3D图

AIS船舶自动识别系统原理

AIS船舶自动识别系统原理 一、AIS简介: 海上航行中,船舶之间常常需要掌握彼此之间的动、静态消息,避免船舶在航行过程中发生碰撞事故。因此实现船舶的自动识别是海上航行安全、海上交通管理和航海技术发展的重要问题。 船舶自动识别系统&…

单片机 最小系统原理图

单片机最小系统的四大硬件:单片机,晶振电阻,复位电路 ,电源 最小系统就是用最少的元件组成单片机的工作系统 1.复位电路 可以自动复位,可以是高电平使他复位也可以是低电平使他复位,跳转到0地址,然后重新开…

数据库系统原理——实验一

实验项目名称:数数据库和表的建立、数据操作 一、实验目的: 掌握使用SQL语言进行数据定义和数据操纵的方法。 二、实验要求: 建立一个数据库stumanage,建立三个关系表student,course,sc。向表中插入数据…

ad19原理图标注_Altium Designer 19绘制stm32最小系统原理图库及原理图

本文目的是练习使用Altium Designer 19来绘制一个stm32最小系统的元器件库和原理图。 (一)安装Altium Designer 19 使用Altium Designer 19(以下简称AD19)来练习stm32的最小系统原理图和PCB,首先就需要安装AD19。由于这里我主要介绍如何在AD19上绘制stm32最小系统原理图库和原…

51单片机最小系统原理分析

51单片机组成+各个元器件作用51单片机最小系统主要由时钟电路,复位电路和供电电路组成。图如下所示: 1.时钟电路 时钟电路的作用在于给系统提供时钟信号。 如上图所示,时钟电路由Y1,C2,C3三个元器件组成,分别为11.05902晶振和两个30pf的电容。至于为什么如此取值呢,通过查…

STM32F103C8T6最小系统原理图和PCB

目录 一、原理图 二、PCB 三、3D图 资料下载地址:STM32F103C8T6最小系统原理图和PCB 一、原理图 二、PCB 三、3D图

计算机控制系统的框图,计算机控制系统原理框图.doc

计算机控制系统原理框图.doc (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 题号一二三总分分数一、简答题1.绘制出典型的计算机控制系统原理框图。2. 说出工业控制机的…

运动捕捉系统原理

目录 一、什么是运动捕捉 1.惯性动作捕捉 2.光学式动作捕捉 (1)无标记点式光学动作捕捉原理 (2) 标记点式光学动作捕捉原理 二、光学式动作捕捉系统的构成 1.红外光学镜头 (1)镜头分辨率 (2&…

AGV调度系统原理

AGV介绍 在工厂中一般称为无人搬运小车 AGV类型 背托式AGV(潜入式AGV) 牵引式AGV 传输带式AGV 这集中就是我之前参与过的类型 核心技术 导航:磁导航、视觉导航、激光导航、二维码导航 磁导航原理 磁带导航技术与电磁导航相近&#xff…

Bootstrap栅格系统原理

Bootstrap栅格系统原理 Bootstrap栅格系统布局 1、栅格系统简介 1)响应式设计 我们现实生活中所使用到的设备有手机、平板电脑、笔记本、台式机。这些设备最大的区别在于它的屏幕的大小不一样,也就是分辨率大小不一样。 响应式设计最核心的思想是就一个…

计算机系统原理之程序是怎么运行的

计算机的组成 计算机是由硬件和软件组成的,这两个部分共同协作完成程序的运行。这两部分如何协作完成程序的运行,是本系列的重点。 信息的表示 信息的表示说到底就是位加上下文。举个小例子,比如11011101这一串二进制,在表示整数的…

软件设计师(2)--->操作系统基本原理

目录 操作系统基本原理 一、进程(PCB) 1、进程的基本状态 2、 前驱图 3、进程的同步与互斥 4、信号量机制 5、PV操作 6、死锁问题 7、银行家算法 二、存储管理 1、分区存储组织 2、分页存储管理方式 3、分段存储管理方式 4、段页式存储管理…

操作系统原理是什么

操作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合,是通过计算机语言编写程序让计算机执行。那么操作系统原理是什么呢?下面小编就跟大家分享下操作系统原理。 工具/原料 系统版本:windows10系统 品牌…

oneinstack的网站https证书到期后手动续期

由于各种原因,oneinstack并不一定能自动续期网站脚本,导致https证书过期,此时可以手动执行更新脚本。 一、先把oneinstack的证书申请脚本更新 cd oneinstack/ ./upgrade.sh二、手动执行脚本 /root/.acme.sh/acme.sh --cron --home /root/.a…

跟着未名学Office - 高效笔记OneNote

了解OneNote 2016年12月22日 19:57 OneNote Summary 理解OneNote中的笔记本、分区、页的概念 编写人:未名 感谢秦大: http://www.zloffice.net/ 基本操作(17) 2016年12月22日 20:24 页面模板 插入-->页面模板 使用模板 创建模板 用于当前分区新页的…

Onenote如何快速实现首行缩进的功能。

因为Onenote定位的是笔记本,所以本身并不带有首行缩进功能。下面来介绍如何用其它辅助手段来实现这个功能。楼主现在用的是onenote2016,其它版本未测试过这个方法,不过应该是可行的。 首先下载和安装Onetastic这个插件,这个插件目…