猜你喜欢-----推荐系统原理介绍

推荐系统的框架与基本原理 文章目录前言一、推荐系统的框架及运行1. 基本框架2. 推荐引擎的工作流程二、推荐系统的经典问题1. 搜索和利用2. 冷启动三、召回策略1. 基于行为相似的召回(1) Jacard相似度:(2) 利用余弦相似度:(3) 欧几里得距离:(4) 皮尔逊相关系数:2. 基于内容相似度的召回四、推荐系统排序1. 特征选择的方法2. 排序过程五、基于知识图谱的推荐系统总结 前言 推荐系统的作用包括:一方面可以满足用户需求,提高用户活跃度以及平台与用户的粘合度;另一方面对于平台而言,不仅提升了用户体验,甚至在一定程 阅读详情

写在正文之前

 

最近在做推荐系统,在项目组内做了一个分享。今天有些时间,就将逻辑梳理一遍,将ppt内容用文字沉淀下来,便于接下来对推荐系统的进一步研究。推荐系统确实是极度复杂,要走的路还很长。

 

A First Glance

 

 

为什么需要推荐系统——信息过载

 

随着互联网行业的井喷式发展,获取信息的方式越来越多,人们从主动获取信息逐渐变成了被动接受信息,信息量也在以几何倍数式爆发增长。举一个例子,PC时代用google reader,常常有上千条未读博客更新;如今的微信公众号,也有大量的红点未阅读。垃圾信息越来越多,导致用户获取有价值信息的成本大大增加。为了解决这个问题,我个人就采取了比较极端的做法:直接忽略所有推送消息的入口。但在很多时候,有效信息的获取速度极其重要。

 

   

 

由于信息的爆炸式增长,对信息获取的有效性,针对性的需求也就自然出现了。推荐系统应运而生。

 

亚马逊的推荐系统

 

最早的推荐系统应该是亚马逊为了提升长尾货物的用户抵达率而发明的。已经有数据证明,长尾商品的销售额以及利润总和与热门商品是基本持平的。亚马逊网站上在线销售的商品何止百万,但首页能够展示的商品数量又极其有限,给用户推荐他们可能喜欢的商品就成了一件非常重要的事情。当然,商品搜索也是一块大蛋糕,亚马逊的商品搜索早已经开始侵蚀谷歌的核心业务了。

 

在亚马逊的商品展示页面,经常能够看见:浏览此商品的顾客也同时浏览。

 

 

这就是非常典型的推荐系统。八卦一下:”剁手族”的兴起,与推荐系统应该有一定关系吧,哈哈。

 

推荐系统与大数据

 

大数据与云计算,在当下非常热门。不管是业内同事还是其他行业的朋友,大数据都是一个常谈的话题。就像青少年时期热门的话题:“性”。大家都不太懂,但大家都想说上几句。业内对于大数据的使用其实还处于一个比较原始的探索阶段,前段时间听一家基因公司的CEO说,现在可以将人类的基因完全导出为数据,但这些数据毫无规律,能拿到这些数据,但根本不知道可以干什么。推荐系统也是利用用户数据来发现规律,相对来说开始得更早,运用上也比较成熟。

 

冷启动问题

 

推荐系统需要数据作为支撑。但亚马逊在刚刚开始做推荐的时候,是没有大量且有效的用户行为数据的。这时候就会面临着“冷启动”的问题。没有用户行为数据,就利用商品本身的内容数据。这就是推荐系统早期的做法。

 

基于内容的推荐:

  1. tag   给商品打上各种tag:运动商品类,快速消费品类,等等。粒度划分越细,推荐结果就越精确

  2. 商品名称,描述的关键字    通过从商品的文本描述信息中提取关键字,从而利用关键字的相似来作推荐

  3. 同商家的不同商品       用户购买了商店的一件商品,就推荐这个商店的其他热销商品

  4. 利用经验,人为地做一些关联    一个经典的例子就是商店在啤酒架旁边摆上纸尿布。那么,在网上购买啤酒的人,也可以推荐纸尿布?

 

由于内容的极度复杂性,这一块儿的规则可以无限拓展。基于内容的推荐与用户行为数据没有关系,在亚马逊早期是比较靠谱的策略。但正是由于内容的复杂性,也会出现很多错误的推荐。比如:小明在网上搜索过保时捷汽车模型。然后推荐系统根据关键字,给小明推荐了价值200万的保时捷911......

 

用户行为数据—到底在记录什么

 

在游戏里面,我们的人物角色是一堆复杂的数据,这叫做数据存储;这些数据以一定的结构组合起来,这叫做数据结构。同样地,在亚马逊眼里,我们就是一张张表格中一大堆纷繁复杂的数字。举一个栗子:

 

小明早上9点打开了亚马逊,先是浏览了首页,点击了几个热销的西装链接,然后在搜索栏输入了nike篮球鞋,在浏览了8双球鞋后,看了一些购买者的评价,最终选定了air jordan的最新款。

 

这就是一条典型的用户行为数据。亚马逊会将这条行为拆分成设定好的数据块,再以一定的数据结构,存储到亚马逊的用户行为数据仓库中。每天都有大量的用户在产生这样的行为数据,数据量越多,可以做的事情也就越强大。

 

user-item 用户偏好矩阵

 

收集数据是为了分析用户的偏好,形成用户偏好矩阵。比如在网购过程中,用户发生了查看,购买,分享商品的行为。这些行为是多样的,所以需要一定的加权算法来计算出用户对某一商品的偏好程度,形成user-item用户偏好矩阵。

 



数据清理

 

当我们开始有意识地记录用户行为数据后,得到的用户数据会逐渐地爆发式增长。就像录音时存在的噪音一样,获取的用户数据同样存在着大量的垃圾信息。因此,拿到数据的第一步,就是对数据做清理。其中最核心的工作,就是减噪和归一化:

 

减噪:用户行为数据是在用户的使用过程中产生的,其中包含了大量的噪音和用户误操作。比如因为网络中断,用户在短时间内产生了大量点击的操作。通过一些策略以及数据挖掘算法,来去除数据中的噪音。

 

归一化:清理数据的目的是为了通过对不同行为进行加权,形成合理的用户偏好矩阵。用户会产生多种行为,不同行为的取值范围差距可能会非常大。比如:点击次数可能远远大于购买次数,直接套用加权算法,可能会使得点击次数对结果的影响程度过大。于是就需要归一算法来保证不同行为的取值范围大概一致。最简单的归一算法就是将各类数据来除以此类数据中的最大值,以此来保证所有数据的取值范围都在[0,1]区间内。

 

降维算法——SVD奇异值分解

 

通过记录用户行为数据,我们得到了一个巨大的用户偏好矩阵。随着物品数量的增多,这个矩阵的列数在不断增长,但对单个用户来说,有过行为数据的物品数量是相当有限的,这就造成了这个巨大的用户偏好矩阵实际上相当稀疏,有效的数据其实很少。SVD算法就是为了解决这个问题发明的。

 

 

将大量的物品提取特征,抽象成了3大类:蔬菜,水果,休闲服。这样就将稀疏的矩阵缩小,极大的减少了计算量。但这个例子仅仅是为了说明SVD奇异值分解的原理。真正的计算实施中,不会有人为的提取特征的过程,而是完全通过数学方法进行抽象降维的。通过对矩阵相乘不断的拟合,参数调整,将原来巨大的稀疏的矩阵,分解为不同的矩阵,使其相乘可以得到原来的矩阵。这样既可以减少计算量,又可以填充上述矩阵中空值的部分。

 

协同过滤算法

我一直在强调用户行为数据,目的就是为介绍协同过滤算法做铺垫。协同过滤,Collaborative Filtering,简称CF,广泛应用于如今的推荐系统中。通过协同过滤算法,可以算出两个相似度:user-user相似度矩阵; item-item相似度矩阵。

 

 

为什么叫做协同过滤?是因为这两个相似度矩阵是通过对方来计算出来的。举个栗子:100个用户同时购买了两种物品A和B,得出在item-item相似度矩阵中A和B的相似度为0.8; 1000个物品同时被用户C和用户D购买,得出在user-user相似度矩阵中C和D的相似度是0.9. user-user, item-item的相似度都是通过用户行为数据来计算出来的。

 

计算相似度的具体算法,大概有几种:欧几里得距离,皮尔逊相关系数,Cosine相似度,Tanimoto系数。具体的算法,有兴趣的同学可以google.

 

用户画像

 

提到大数据,不能不说用户画像。经常看到有公司这样宣传:“掌握了千万用户的行为数据,描绘出了极其有价值的用户画像,可以为每个app提供精准的用户数据,助力app推广。” 这样的营销广告经不起半点推敲。用户对每个种类的app的行为都不同,得到的行为数据彼此之间差别很大,比如用户在电商网站上的行为数据,对音乐类app基本没有什么价值。推荐系统的难点,其中很大一部分就在于用户画像的积累过程极其艰难。简言之,就是用户画像与业务本身密切相关。

 

LR逻辑回归

 

基于用户偏好矩阵,发展出了很多机器学习算法,在这里再介绍一下LR的思想。具体的逻辑回归,又分为线性和非线性的。其他的机器学习算法还有:K均值聚类算法,Canopy聚类算法,等等。有兴趣的同学可以看看July的文章。链接在最后的阅读原文。

 

LR逻辑回归分为三个步骤:

  1. 提取特征值

  2. 通过用户偏好矩阵,不断拟合计算,得到每个特征值的权重

  3. 预测新用户对物品的喜好程度

 

举个栗子:

小明相亲了上千次,我们收集了大量的行为数据,以下数据仅仅是冰山一角。

 

 

通过大量的拟合计算得出,特征值“个性开朗程度”的权重为30%,“颜值”的权重为70%。哎,对这个看脸的世界已经绝望了,写完这篇文章,就去订前往韩国的机票吧。

 

然后,通过拟合出的权重,来预测小明对第一千零一次相亲对象的喜爱程度。

 

 

这就是LR逻辑回归的原理。具体的数学算法,有兴趣的同学可以google之。

 

如何利用推荐系统赚钱

 

还是以亚马逊为例。小明是个篮球迷,每个月都会买好几双篮球鞋。通过几个月的购买记录,亚马逊已经知道小明的偏好,准备给小明推荐篮球鞋。但篮球鞋品牌这么多,推荐哪一个呢?笑着说:哪个品牌给我钱多,就推荐哪个品牌。这就是最简单的流量生意了。这些都叫做:商业规则。

 

但在加入商业规则之前,需要让用户感知到推荐的准确率。如果一开始就强推某些置顶的VIP资源,会极大地损害用户体验,让用户觉得推荐完全没有准确性。这样的后果对于推荐系统的持续性发展是毁灭性的。

 

过滤规则

 

协同过滤只是单纯地依赖用户行为数据,在真正的推荐系统中,还需要考虑到很多业务方面的因素。以音乐类app为例。周杰伦出了一张新专辑A,大部分年轻人都会去点击收听,这样会导致其他每一张专辑相似专辑中都会出现专辑A。这个时候,再给用户推荐这样的热门专辑就没有意义了。所以,过滤掉热门的物品,是推荐系统的常见做法之一。这样的规则还有很多,视不同的业务场景而定。

 

推荐的多样性

 

与推荐的准确性有些相悖的,是推荐的多样性。比如说推荐音乐,如果完全按照用户行为数据进行推荐,就会使得推荐结果的候选集永远只在一个比较小的范围内:听小清新音乐的人,永远也不会被推荐摇滚乐。这是一个很复杂的问题。在保证推荐结果准确的前提下,按照一定的策略,去逐渐拓宽推荐结果的范围,给予推荐结果一定的多样性,这样才不会腻嘛。

 

持续改进

 

推荐系统具有高度复杂性,需要持续地进行改进。可能在同一时间内,需要上线不同的推荐算法,做A/B test。根据用户对推荐结果的行为数据,不断对算法进行优化,改进。要走的路还很长:路漫漫其修远兮,吾将上下而求索。

 

 

本文章欢迎转载,转载请注明微信公众号和作者。微信公众号:互联网与作曲家. 作者:neil    版权所有,翻版必究!

 

 

深度解析推荐系统的算法原理 一、推荐系统介绍 一句话介绍推荐系统的作用:高效地达成用户与意向对象的匹配。 1.1 推荐系统的应用 推荐系统是建立在海量数据挖掘基础上,高效地为用户提供个性化的决策支持和信息服务,以提高用户体验及商业效益。常见的推荐应用场景如: 资讯类:今日头条、腾讯公众号等新闻、广告、文章等内容推荐; 电商类:淘宝、京东、拼多多、亚马逊等商品推荐; 娱乐类:抖音、快手、爱奇艺等视频推荐; 生活服务类:美团、大众点评、携程等吃喝玩乐推荐; 社交类:微信、陌陌.. 阅读详情

相关推荐

推荐系统(Recommender Systems) 原理与代码实例讲解

推荐系统(Recommender Systems) - 原理与代码实例讲解 关键词:推荐系统,协同过滤,深度学习,矩阵分解,内容过滤,混合推荐系统,标签预测,模型评估,用户行为分析,推荐系统性能提升,推荐算法,推荐系统应用

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 1092

【机器学习】6、推荐系统原理与应用

根据用户的等来推荐用户感兴趣的物品历史行为社交行为兴趣点所处的上下文环境(上下班时间/周末等)…

呆呆的猫的博客 8859

别再手动下单了!用Python+EasyTrader+同花顺,5分钟搞定你的第一个自动化交易机器人

本文详细介绍了如何使用Python和EasyTrader结合同花顺客户端快速构建自动化交易机器人。从环境配置到实战脚本编写,涵盖自动打新、条件单、跟单策略等核心功能,并分享性能优化与风险控制技巧,帮助投资者高效实现自动化交易。

weixin_30381317的博客 398

推荐系统原理

推荐系统 定义:根据用户的历史信息和行为,向用户推荐他感兴趣的内容 推荐系统解决的问题: 信息过载:商品,视频等有好几百万。用户怎样找到自己感兴趣的物品。系统怎样展示几百万的物品给用户,达到自己的商业目标 挖掘长尾:大部分冷门物品得不到暴露,然而他们的加和价值超过热门物品 用户体验:搜索(当明确自己的目标的时候,我们用搜索引擎)。推荐(当不明确的时候,推荐系统推荐我们感兴趣的商品) 推荐系统包含的环节 召回(协同过滤召回,内容相似召回,图算法召回等等)->排序(机器学习,二分类算法:LR、GBD

XST1520203418的博客 613

C# NX二次开发:两种过滤器设置方案的实战解析与场景适配

本文深入解析C# NX二次开发中的两种过滤器设置方案:AddFilterHandler回调与MaskTriple属性设置。通过实战案例对比其性能差异与适用场景,帮助开发者根据需求选择最优方案,提升NX插件开发效率与交互体验。特别针对BlockStyler集成场景提供专业建议,是NX二次开发者的实用指南。

weixin_33739646的博客 844

Playwright与MCP协议结合:AI驱动的智能Web自动化测试实践

Web自动化测试是现代软件开发流程中保障产品质量的关键环节,其核心原理是通过程序模拟用户操作,对Web应用进行功能验证。传统自动化测试工具如Selenium和Playwright虽然提供了强大的API,但脚本编写和维护仍需较高的编程技能。随着AI技术的发展,智能测试成为新的趋势,它通过自然语言理解和自动化执行,显著降低了测试创建门槛。Model Context Protocol(MCP)作为一种连接AI模型与外部工具的开放协议,为自动化测试带来了“智能大脑”。通过将MCP与Playwright结合,测试人员

aoe41606的博客 605

让ChatGPT猜你喜欢——ChatGPT后面的推荐系统

Chat GPT的大热,让人们的视线又一次聚焦于“人工智能”领域。通过与用户持续对话的形式,更加丰富的数据会不断滚动“雪球”,让Chat GPT的回答变得越来越智能,越来越接近用户最想要的答案。ChatGPT能否颠覆当下的推荐系统范式?推荐系统、搜索引擎的未来将何去何从?

weixin_63866037的博客 4838

六维力传感器选型指南:电阻式vs电容式,哪个更适合你的工业场景?

本文深入解析六维力传感器在工业自动化中的选型要点,重点对比电阻式与电容式传感器的核心原理、环境适应性及成本结构。针对不同工业场景(如高精度装配、重载机器人等),提供专业选型建议,帮助工程师优化系统性能与经济效益。

weixin_42525005的博客 395

用python实现猜你喜欢_推荐引擎算法 - 猜你喜欢的东西

在一些大型购物网站,我们常会看到一个功能叫“猜你喜欢”(或其它类似的名字),里面列出一些跟你买过商品相关的其它商品。网站的用户越多,或你在网站上购买的东西越多,它往往就猜的越准。在一些音乐网站、书评网站、电影网站也有类似的推荐系统,比如豆瓣上的“豆瓣猜”、百度音乐的“为你推荐”等,推荐结果都不错。这些推荐系统的具体实现我们无法知晓,但原理是类似的,都是采用基于协同过滤的推荐机制。这里我们探讨一下这...

weixin_39633054的博客 787

python爬取淘宝数据

python爬取淘宝数据淘宝评论 淘宝评论 打开淘宝,选择打开需要爬取的商品的评论。在谷歌浏览器选择开发者工具,选择network,找到list_detail_rate.htm?itemId=624466733121,点击headers、previews,可以看见相应的评论数据。 爬取一页屏评论代码如下 import re import requests headers = { 'Referer': '在headers中', 'User-Agent': '在

qq_36333776的博客 5798

STM32 USB AUDIO实战指南——从零构建音频设备

本文详细介绍了如何使用STM32F407构建USB音频设备,从硬件准备到软件配置,再到音频播放和录制功能的实现。通过STM32CubeMX配置和实战代码示例,帮助开发者快速掌握USB Audio Class规范,实现低延迟、高质量的音频传输,适用于语音交互、音乐播放等多种场景。

weixin_42549037的博客 484

大促迷思:那个榨干我钱包的“猜你喜欢”是什么来头!?

// 永远别问我们双11花掉多少钱 //// 包裹有多重,心里有多痛 // 双11刚刚过去,双12即将到来,不知大家的手是否还在?经历过某猫某东某宝拼杀的各位买家,大概都有过被这些平台猜透小心思,“看了又看、买了又买”的经历。它们在偷看你的生活吗,为什么总能直击你的心房,让你不由自主的献出积蓄呢? 今天,我们深扒一下那些“猜你喜欢”背后的势力——推荐系统算法中的元老级算法:基于物品的协同过滤算法。...

博文视点(北京)官方博客 2197

《UDS/OBD诊断需求编辑工具》总目录

目录 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 2.1 编辑ODX-D诊断描述文件 2.2 编辑ODX-F刷写软件 该专栏主要负责介绍CANdela Studio和ODX Studio编辑CDD/ODX/PDX诊断描述文件。 1 基于CANdela Studio编辑CDD诊断描述文件 2 基于ODX Studio编辑ODX/PDX文件 【ODX介绍 】-1- 标准梳理 【ODX介绍】 -2-如何手..

「汽车电子助手」的博客 1万+

php猜你喜欢代码,分享ecshop猜你喜欢的开发原理

最近在实现ecshop中的一个猜你喜欢的原理,一直不明白这个是如何猜的,难道是根据最近浏览记录来得到?百思不得其解,就放下了这个问题,一天在百度搜索东西的时候,突然发现这个右边有个猜你喜欢的功能,其实以前也知道,这里有这个版块,只不过没加注意,这次经过仔细观察发现,原来猜你喜欢的时候,就根据你搜索的相关结果,关联出一些同类产品。举个例子,比如最模板搜索notepad2的时候,notepad++,e...

weixin_39886172的博客 343

最小二乘(MLS)求点云法向量

MLS算法的基本思想是通过在点云的局部邻域内拟合一个光滑曲面,如平面或多项式曲面,以此来重建和处理点云数据。对于法向量估计,MLS通常在每个点的邻域内拟合局部平面,然后从该平面的法向量作为点的法向量。

twnkie的博客 744

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

推荐系统-猜你喜欢设计

一,概述       猜你喜欢与最近浏览相响应,用户在页面上点击一个商品时,首先会出现在最近浏览部分,最近浏览部分随即会出现本页最近浏览商品对应的分类信息,将出现的分类,对应的浏览量最大的商品推荐出来即为猜你喜欢。 二,数据源 2.1商品基本数据       商品ID,对应的最低一级分类,该数据从数据库中获取。 2.2数据挖掘的数据     商品ID,商品的浏览次数;从行为日志中获取

Searcher_Recommeder的博客 1919

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

推荐引擎算法 - 猜你喜欢的东西

在一些大型购物网站,我们常会看到一个功能叫“猜你喜欢”(或其它类似的名字),里面列出一些跟你买过商品相关的其它商品。网站的用户越多,或你在网站上购买的东西越多,它往往就猜的越准。在一些音乐网站、书评网站、电影网站也有类似的推荐系统,比如豆瓣上的“豆瓣猜”、百度音乐的“为你推荐”等,推荐结果都不错。这些推荐系统的具体实现我们无法知晓,但原理是类似的,都是采用基于协同过滤的推荐机制。这里我们探讨一下这...

反手一个bug的博客 4087

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

php商城猜你喜欢,echop中猜你喜欢功能是如何实现的

该楼层疑似违规已被系统折叠隐藏此楼查看此楼最近在实现ecshop中的一个猜你喜欢的原理,一直不明白这个是如何猜的,难道是根据最近浏览记录来得到?百思不得其解,就放下了这个问题,一天在百度搜索东西的时候,突然发现这个右边有个猜你喜欢的功能,其实以前也知道,这里有这个版块,只不过没加注意,这次经过仔细观察发现,原来猜你喜欢的时候,就根据你搜索的相关结果,关联出一些同类产品。举个例子,比如我搜索not...

weixin_36290719的博客 444

“猜你喜欢”后台设计方案

最近做的项目中含有猜你喜欢这个功能模块,不知道是什么原理,后台手动设置关联貌似不太好吧,所以就先想了几个方案。 方案一:既然是猜那就不必要很准确了,随机弄几个也是可以的,规矩一点就按你查看的商品所属类别模糊查找一下,找到什么算什么,正规点就要做数据统计了。 方案二:用户点了哪个栏目,看了哪个分类,搜索了哪些关键字,都可以。 方案三:根据用户搜索的cookie数据来匹配相同类目的商品。 ...

qq_25460159的博客 1748
上一篇: 万剑归宗—架构设计中的抽象思维与具象思维
NeilHappy
博客等级 码龄15年 126粉丝 84原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值