推荐系统(RecommendationSystem)农夫三拳有點疼

推荐系统是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程。个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。

为了解决这些问题,个性化推荐系统应运而生。个性化推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站为其顾客购物提供完全个性化的决策支持和信息服务。

推荐系统是比较偏向于工程类的系统,要做得更加的精确,需要的不仅仅是推荐算法,还有用户意图识别、文本分析、行为分析等,是一个综合性很强的系统。

本节介绍的几种推荐系统架构,并不是互相独立的关系,实际的推荐系统可能会用到其中一种或者几种的架构。在实际设计的过程中,读者可以把本文介绍的架构作为一个设计的起点,更多地结合自身业务特点进行独立思考,从而设计出适合自身业务的系统。

根据响应用户行为的速度不同,推荐系统可以大致分为基于离线训练和在线训练的推荐系统。

如下图所示,一个典型的基于离线训练的推荐系统架构由数据上报、离线训练、在线存储、实时计算和A/B测试这几个模块组成。其中,数据上报和离线训练组成了监督学习中的学习系统,而实时计算和A/B测试组成了预测系统。另外,除了模型之外,还有一个在线存储模块,用于存储模型和模型需要的特征信息供实时计算模块调用。图中的各个模块组成了训练和预测两条数据流,训练的数据流搜集业务的数据最后生成模型存储于在线存储模块;预测的数据流接受业务的预测请求,通过A/B测试模块访问实时计算模块获取预测结果。

下图是与之对应的实际系统中各个组件的流转过程。需要注意的是生成推荐列表就已经做完了召回和排序的操作,业务层直接调用API就可以得到这个推荐列表。

要训练推荐模型,就需要先收集用户的行为数据生成特征向量以后才能进行训练,而一个特征向量由特征以及特征的权重组成,在利用用户行为计算特征向量时需要考虑以下因素。

协同过滤算法起源于1992年,被Xerox公司用于个性化定制邮件系统。Xerox司的用户需要在数十种主题中选择三到五种主题,协同过滤算法根据不同的主题过滤邮件,最终达到个性化的目的。

协同过滤算法分为基于物品的协同过滤和基于用户的协同过滤,输出结果为TOPn的推荐列表。

基于物品的协同过滤算法的核心思想:给用户推荐那些和他们之前喜欢的物品相似的物品。

基于物品的协同过滤算法首先计算物品之间的相似度,计算相似度的方法有以下几种:

基于用户的协同过滤(UserCF)的原理其实是和基于物品的协同过滤类似的。所不同的是,基于物品的协同过滤的原理是用户U购买了A物品,推荐给用户U和A相似的物品B、C、D。而基于用户的协同过滤,是先计算用户U与其他的用户的相似度,然后取和U最相似的几个用户,把他们购买过的物品推荐给用户U。

为了计算用户相似度,我们首先要把用户购买过物品的索引数据转化成物品被用户购买过的索引数据,即物品的倒排索引:

建立好物品的倒排索引后,就可以根据相似度公式计算用户之间的相似度:

其中N(a)表示用户a购买物品的数量,N(b)表示用户b购买物品的数量,N(a)∩N(b)表示用户a和b购买相同物品的数量。有了用户的相似数据,针对用户U挑选K个最相似的用户,把他们购买过的物品中,U未购买过的物品推荐给用户U即可。

上述计算会得到一个相似度矩阵,而这个矩阵的大小和纬度都是很大的,需要进行降维处理,用到的是SVD的降维方法,

基于稀疏自编码的矩阵分解

矩阵分解技术在推荐领域的应用比较成熟,但是通过上一节的介绍,我们不难发现矩阵分解本质上只通过一次分解来对原矩阵进行逼近,特征挖掘的层次不够深入。另外矩阵分解也没有运用到物品本身的内容特征,例如书本的类别分类、音乐的流派分类等。随着神经网络技术的兴起,笔者发现通过多层感知机,可以得到更加深度的特征表示,并且可以对内容分类特征加以应用。首先,我们介绍一下稀疏自编码神经网络的设计思路。

推荐系统中一个重要的分支,隐语义建模。隐语义模型LFM:LatentFactorModel,其核心思想就是通过隐含特征联系用户兴趣和物品。

过程分为三个部分,将物品映射到隐含分类,确定用户对隐含分类的兴趣,然后选择用户感兴趣的分类中的物品推荐给用户。它是基于用户行为统计的自动聚类。

隐语义模型在Top-N推荐中的应用十分广泛。常用的隐语义模型,LSA(LatentSemanticAnalysis),LDA(LatentDirichletAllocation),主题模型(TopicModel),矩阵分解(MatrixFactorization)等等。

首先通过一个例子来理解一下这个模型,比如说有两个用户A和B,目前有用户的阅读列表,用户A的兴趣涉及侦探小说,科普图书以及一些计算机技术书,而用户B的兴趣比较集中在数学和机器学习方面。那么如何给A和B推荐图书呢?

对于UserCF,首先需要找到和他们看了同样书的其他用户(兴趣相似的用户),然后在给他们推荐那些用户喜欢的其他书。对于ItemCF,需要给他们推荐和他们已经看的书相似的书,比如用户B看了很多数据挖掘方面的书,那么可以给他推荐机器学习或者模式识别方面的书。

还有一种方法就是使用隐语义模型,可以对书和物品的兴趣进行分类。对于某个用户,首先得到他的兴趣分类,然后从分类中挑选他可能喜欢的物品。

LFM通过如下公式计算用户u对物品i的兴趣:

对最优化理论或者机器学习有所了解的读者,可能对如何计算这两个参数都比较清楚。这两个参数是从数据集中计算出来的。要计算这两个参数,需要一个训练集,对于每个用户u,训练集里都包含了用户u喜欢的物品和不感兴趣的物品,通过学习这个数据集,就可以获得上面的模型参数。

在工业应用中,推荐系统通常可分为两部分,召回和排序。协同过滤属于召回的算法,从召回中得到一个比较小的推荐列表,然后经过排序之后才会输出到最终的推荐列表里,是一个有序的推荐列表。

这个过程会从几千万item中筛选出几百或者上千的候选集,然后在排序阶段选出30个给到每位用户。这个排序可理解为一个函数,F(user,item,context),输入为用户、物品、环境,输出一个0到1之间的分数,取分数最高的几首。这一过程通常称为CTR预估。那么F函数常见的运作形式有:

工业界DNNranking现状

新的推荐模型上线后要进行A/B测试,将它和旧的算法进行比较。

切分流量是AB测试中的关键,不同的层以及控制这些层的团队需要从一个统一的地方获得自己AB测试的流量,而不同层之间的流量应该是正交的。

“正交性”是从几何中借来的术语。如果两条直线相交成直角,他们就是正交的。用向量术语来说,这两条直线互不依赖。

下图是一个简单的AB测试系统。用户进入网站后,流量分配系统决定用户是否需要被进行AB测试,如果需要的话,流量分配系统会给用户打上在测试中属于什么分组的标签。然后用户浏览网页,而用户在浏览网页时的行为都会被通过日志系统发回后台的日志数据库。此时,如果用户有测试分组的标签,那么该标签也会被发回后台数据库。在后台,实验人员的工作首先是配置流量分配系统,决定满足什么条件的用户参加什么样的测试。其次,实验人员需要统计日志数据库中的数据,通过评测系统生成不同分组用户的实验报告,并比较和评测实验结果。

当完成了AB测试后,根据指标结果,如果优于之前的推荐算法,那么旧的算法就可以替换成新的了。

冷启动(coldstart)在推荐系统中表示该系统积累数据量过少,无法给新用户作个性化推荐的问题,这是产品推荐的一大难题。每个有推荐功能的产品都会遇到冷启动的问题。一方面,当新商品时上架会遇到冷启动的问题,没有收集到任何一个用户对其浏览、点击或者购买的行为,也无从判断如何将商品进行推荐;另一方面,新用户到来的时候,如果没有他在应用上的行为数据,也无法预测其兴趣,如果给用户的推荐千篇律,没有亮点,会使用户在一开始就对产品失去兴趣,从而放弃使用。所以在冷启动的时候要同时考虑用户的冷启动和物品的冷启动。

基本上,冷启动题可以分为以下三类。

用户冷启动主要解决如何给新用户作个性化推荐的问题。当新用户到来时,我没有他的行为数据,所以也无法根据他的历史行为预其兴趣,从而无法借此给他做个性化推荐。解决方法参考以下:

物品冷启动主要解决如何将新的物品推荐给可能对它感兴趣的用户这一问题。解决方法参考以下:

系统冷启动主要解决如何在一个新开发的网站上(还没有用户,也没有用户行为,只有一些物品的信息)设计个性推荐系统,从而在产品刚上线时就让用户体验到个性推荐服务这一问题。

THE END
1.增量训练的训练过程深度学习mob64ca12ee66e3的技术博客增量训练在深度学习中的应用 引言 深度学习的快速发展意味着我们处理的数据量也在急剧增加。传统的训练方式往往需要从头开始训练模型,这在计算和时间上都是非常不高效的。增量训练(Incremental Training),也被称为在线训练(Online Training),是一种允许模型在已有知识基础上,随着新数据的加入逐步更新的训练方法。本文将深https://blog.51cto.com/u_16213423/12225384
2.增量学习与在线学习在线增量学习每获得一个新样本就进行一次模型更新。显然,在线学习时增量学习的特例,而增量学习可视为“批模式”的在线学习。 3. 迁移学习 3.1 原理 Transfer Learning 将从源数据集学到的知识迁移到目标数据集上。虽然ImageNet数据集的图像大多跟XX无关,但在该数据集上训练的模型可以抽取较通用的图像特征,从而能够帮助识别边缘https://blog.csdn.net/MusicDancing/article/details/114385776
3.增量神经网络训练腾讯云开发者社区是一种机器学习技术,用于在已有的神经网络模型基础上,通过逐步更新模型参数来适应新的数据。与传统的批量训练相比,增量神经网络训练具有以下优势: 1. 节省计算资源:增量训练只需要对新数据进行计算,而不https://cloud.tencent.com/developer/information/%E5%A2%9E%E9%87%8F%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E8%AE%AD%E7%BB%83
4.所不在的智能,诠释可以信赖的开源智慧城市人工智能当前MindSporeLite支持对MindSpore训练导出的模型进行增量训练,实现云-端训练的无缝切换。但由于端侧硬件资源的限制,如何在不影响用户体验下进行训练,对端侧训练的内存和性能提出了挑战。 MindSporeLite采用了训练内存复用、virtualbatch、混合精度训练、在线融合、量化等手段对减少端侧训练时的内存占用。同时在联邦学习https://smartcity.zol.com.cn/772/7728415.html
5.chapter111.md·StarTogether/mlopsbook不同的更新方式当然也会带来不同的效果,例如全量更新,模型会利用某时间段内的所有训练样本进行重新训练,再用训练好的新模型替代老版本的模型,这样的训练方式需要的训练样本量、训练时间长、数据延迟长,但是样本的准确性最高。 对于在线学习,更新速度是最快的,是增量更新的进阶版,在每次获得一个新样本的时候就实时更https://api.gitee.com/StarTogether/mlops-book/blob/master/chapter-11-1.md
6.最受欢迎的算法之一:反向传播训练为训练元素的数量乘以输出神经元的数量。MSE将多个输出神经元处理为单个输出神经元的情况。公式6-2展示了使用二次误差函数的节点增量: (6-2) 二次误差函数非常简单,因为它取了神经网络的预期输出与实际输出之间的差。 ′表示激活函数的导数。 6.2.2 交叉熵误差函数 https://labs.epubit.com/articleDetails?id=70e0465200ba43599b1c83243affae5c
7.使用Merlin分层参数服务器扩展推荐系统推理增量训练更新 推荐模型有两种培训模式:离线和在线。在线培训将新的模型更新部署到实时生产中,对于推荐的有效性至关重要。HPS 雇佣无缝更新机制通过Apache Kafka– 基于消息缓冲区连接训练和推理节点,如图 5 所示。 图5. HugeCTR 推理在线更新机制 更新机制有助于 MLOps 工作流,支持在线/频繁以及离线/再培训更新,无需https://www.eet-china.com/mp/a159829.html
8.数据样本较少无法有效分析怎么办呢帆软数字化转型知识库增量学习和在线学习是处理小样本数据的一种有效方法,通过逐步增加数据量和更新模型来提高分析的准确性。以下是增量学习和在线学习的主要步骤: 初始模型训练:在现有的小样本数据上训练初始模型,建立初步的预测和分析能力。 增量数据获取:逐步获取新的数据样本,扩展数据集。新数据可以通过实验、观测、网络抓取等途径获取。https://www.fanruan.com/blog/article/339467/
9.基于双向模仿蒸馏的电子商务知识图谱预训练模型高效增量学习方法传统的知识图谱预训练模型无法感知社交知识图谱的动态变化,不能满足当前的业务需求。 因此,基于社交知识图谱中不断新增的用户交互数据,以一种高效的方式增量地更新预训练模型是亟待解决的问题。这将有助于确保预训练模型及时感知用户的最新交互动态,并为当前的下游业务场景提供更准确的用户信息,从而长期维持这类时序知识https://techbeat.net/article-info?id=5827
10.2020届计算机科学方向毕业设计(论文)阶段性汇报通过复现确定对抗性模型在训练上会带来很大的不稳定性,提升了训练的难度,但同时传统的非对抗性特征提取模型也在表达能力上存在不足。 张哲恺 图排序的硬件加速器设计 图排序加速器的整体架构设计。 蒋泽天 多图协同匹配与在线增量式匹配中期报告 汇报多图协同匹配与在线增量式匹配中期进度,主要包括MGM-Floyd/MFM-SPFAhttps://zhiyuan.sjtu.edu.cn/html/zhiyuan/announcement_view.php?id=3709
11.英语教学技能设计指导与训练专题一英语教学技能概述在线免费阅读行为方式说主要是针对传统教师培训中单纯训练的低效性而提出的,强调对技能要从行为的角度进行客观研究和实验,其研究的客观性方向确实值得肯定。然而,该技能观忽视人的内部心理因素和生活经验在提高教学效能方面的影响与作用,将教学技能的外显因素当作技能的惟一因素,导致对技能的研究停留在比较肤浅的经验描述上,从而也难https://fanqienovel.com/reader/7327951346093542462
12.大疆教育平台增量训练任务指的是基于已有模型生成的预训练模型,增加数据集进行再次训练的过程。有以上两种方法创建增量训练任务。 增量训练一般情况下使用默认预训练模型继续训练即可,也可以在上图下拉列表中选择已有模型在2000步、4000步、6000步、8000步、最终形成的预训练模型的基础上进行训练,增量训练的数据集标签需与原模型的标签https://edu.dji.com/hub/docs?uuid=13f64464-f42d-47ea-abc5-b14c2c309de5&t=708
13.京东搜索在线学习探索实践随着京东零售搜索业务的快速发展,对数据的时效性要求越来越高,要求搜索模型有捕捉更实时信号的能力,在线学习体现了业务对模型时效性的追求,希望能根据在线系统反馈的数据实时得对模型进行调整,使得模型能快速反应环境的变化,提高在线预估的准确率。 背景 目前传统模型的实时训练(如 FTRL 等)无法支持深度模型,这些模型预估https://www.infoq.cn/article/Z6lL9VNskAH3BCxZS1A7
14.针对超临界翼型气动修型策略的强化学习③基 于流动结构对几何进行修型的策略更有物理基础,相关物理机制的引入使得策略更容易具有普适性,相比于基于数据库构建响应面会拥有更强的推广和迁移能力;④ 训练增量修型使用的策略和通过强化学习形成的策略都与设计师的设计经验直观对应,因此既可以便捷地利用设计师的经验来提高增量修型的效率,也可以通过强化学习等https://www.fx361.com/page/2021/0705/11490428.shtml
15.《浙江档案》刊发福建省档案局档案馆项目组文章《基于数字档案经过调研和反复实践,课题组实现了“四个一”的建设目标,即研究梳理“一”个规范的系统流程、研究制定“一”个开放审核档案关键词表、研究训练“一”个人工智能审核算法模型、研究开发“一”套基于数字档案的人工智能档案开放审核系统。 2.1研究梳理“一”个规范的系统流程 步骤一,将待审核的档案导入系统中的“待开放http://www.fj-archives.org.cn/dazw/bsdt/202212/t20221202_297338.htm
16.神经网络有哪些快速增量学习算法?神经网络的快速增量学习算法是一种可以在不需要重新训练整个网络的情况下对其进行修改和更新的技术。这些算法对于处理实时数据和动态环境非常有用,并且可以大大降低计算成本和时间。以下是几种流行的神经网络快速增量学习算法: 增量学习(Incremental Learning):增量学习是指通过不断添加新的训练样本来扩充神经网络的能力。它https://www.cda.cn/bigdata/201736.html
17.从100w核到450w核:字节跳动超大规模云原生离线训练实践离线训练框架 1.0 对每个模型创建一套 Worker 实例,每个实例 Worker 和预部署在 Mesos 上的服务化 PS 完成通讯、读取样本、计算梯度、模型 Dump 的全过程。 离线训练框架 1.0 于 2019 年进行了系统级重构,新一代离线训练框架 2.0 增加了“多角色弹性调度”“多角色 Failover 能力”“训练进度增量 Checkpoint ”https://maimai.cn/article/detail?fid=1767401397&efid=R2_kM5y-yEUDCK88FZWrGA
18.基于YOLOv5与EWC的增量目标检测(62页)免费在线预览全文 摘要 当前目标检测技术日趋完善,有着较高的检测精度和检测速度。然而人 们对目标检测技术的期望远不止于其精度和速度,人们还希望,在得到一个 训练完好的基模型后,目标检测技术能够不断学习新的未见过的信息,从而 实现增量目标检测。在增量目标检测上,现有的研究技术主要依赖于两阶段 目标检测算法。https://m.book118.com/html/2024/0117/8103017134006026.shtm
19.清华校友用AI破解162个高数定理,智能体LeanAgent攻克困扰陶哲轩难题这一过程涉及了,在课程中每个仓库生成的新数据集上,增量训练检索器。 从预训练检索器开始(比如基于ByT5 ReProver检索器),LeanAgent在每个新数据集上,额外训练一个epoch。 通过将渐进训练限制在一个epoch,有助于平衡稳定性和可塑性。 尤其是,渐进训练对数据库生成的每个数据集重复进行,逐步扩展LeanAgent知识库。 https://www.thepaper.cn/newsDetail_forward_29008608
20.机器学习第五章神经网络增量学习与在线学习 3.SOM网络 SOM网络是一种竞争学习型的无监督神经网络。 它能将高维输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。 SOM网络结构 SOM的训练目标: https://www.jianshu.com/p/704151935e26