AI推荐算法的演进之路

推荐算法

基于大数据和AI技术,提供全流程一站式推荐平台,协助企业构建个性化推荐应用,提升企业应用的点击率留存率和永久体验。目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐。

  1. 基于内容推荐

基于内容的推荐是信息过滤技术的延续与发展,它是建立在项目内容信息上作出的推荐,而不需要依据用户对项目的评价意见,更多地需要用机器学习的方法从关于内容特征描述的事例中得到用户的兴趣资料。在基于内容的推荐系统中,项目或对象是通过相关的特征的属性来定义,系统基于用户评价对象的特征,学习用户的兴趣,考察用户资料与待预测项目的相匹配程度。用户的资料模型取决于所用学习方法,常用的有决策树、神经网络和基于向量的表示方法等。基于内容的用户资料是需要有用户的历史数据,用户资料模型可能随着用户的偏好改变而发生变化。

基于内容推荐方法的优点是:
l 1)不需要其它用户的数据,没有冷开始问题和稀疏问题。
l 2)能为具有特殊兴趣爱好的用户进行推荐。
l 3)能推荐新的或不是很流行的项目,没有新项目问题。
l 4)通过列出推荐项目的内容特征,可以解释为什么推荐那些项目。
l 5)已有比较好的技术,如关于分类学习方面的技术已相当成熟。

缺点是要求内容能容易抽取成有意义的特征,要求特征内容有良好的结构性,并且用户的口味必须能够用内容特征形式来表达,不能显式地得到其它用户的判断情况。

  1. 协同过滤推荐

协同过滤推荐(Collaborative Filtering Recommendation)技术是推荐系统中应用最早和最为成功的技术之一。它一般采用最近邻技术,利用用户的历史喜好信息计算用户之间的距离,然后利用目标用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,系统从而根据这一喜好程度来对目标用户进行推荐。协同过滤最大优点是对推荐对象没有特殊的要求,能处理非结构化的复杂对象,如音乐、电影。

协同过滤是基于这样的假设:为一用户找到他真正感兴趣的内容的好方法是首先找到与此用户有相似兴趣的其他用户,然后将他们感兴趣的内容推荐给此用户。其基本思想非常易于理解,在日常生活中,我们往往会利用好朋友的推荐来进行一些选择。协同过滤正是把这一思想运用到电子商务推荐系统中来,基于其他用户对某一内容的评价来向目标用户进行推荐。

基于协同过滤的推荐系统可以说是从用户的角度来进行相应推荐的,而且是自动的,即用户获得的推荐是系统从购买模式或浏览行为等隐式获得的,不需要用户努力地找到适合自己兴趣的推荐信息,如填写一些调查表格等。和基于内容的过滤方法相比,协同过滤具有如下的优点:
l1) 能够过滤难以进行机器自动内容分析的信息,如艺术品、音乐等。
l2) 共享其他人的经验,避免了内容分析的不完全和不精确,并且能够基于一些复杂的,难以表述的概念(如信息质量、个人品味)进行过滤。
l3) 有推荐新信息的能力。可以发现内容上完全不相似的信息,用户对推荐信息的内容事先是预料不到的。这也是协同过滤和基于内容的过滤一个较大的差别,基于内容的过滤推荐很多都是用户本来就熟悉的内容,而协同过滤可以发现用户潜在的但自己尚未发现的兴趣偏好。
l4) 能够有效的使用其他相似用户的反馈信息,少数用户的反馈量,加快个性化学习的速度。

虽然协同过滤作为一种典型的推荐技术有其相当的应用,但协同过滤仍有许多的问题需要解决。最典型的问题有稀疏问题(Sparsity)和可扩展问题(Scalability)。

  1. 基于关联规则推荐

基于关联规则的推荐(Association Rule-based Recommendation)是以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。关联规则挖掘可以发现不同商品在销售过程中的相关性,在零售业中已经得到了成功的应用。管理规则就是在一个交易数据库中统计购买了商品集X的交易中有多大比例的交易同时购买了商品集Y,其直观的意义就是用户在购买某些商品的时候有多大倾向去购买另外一些商品。比如购买牛奶的同时很多人会同时购买面包。

算法的第一步关联规则的发现最为关键且最耗时,是算法的瓶颈,但可以离线进行。其次,商品名称的同义性问题也是关联规则的一个难点。

  1. 基于效用推荐

基于效用的推荐(Utility-based Recommendation)是建立在对用户使用项目的效用情况上计算的,其核心问题是怎么样为每一个用户去创建一个效用函数,因此,用户资料模型很大程度上是由系统所采用的效用函数决定的。基于效用推荐的好处是它能把非产品的属性,如提供商的可靠性(Vendor Reliability)和产品的可得性(Product Availability)等考虑到效用计算中。

  1. 基于知识推荐

基于知识的推荐(Knowledge-based Recommendation)在某种程度上可以看成是一种推理(Inference)技术,它不是建立在用户需要和偏好基础上推荐的。基于知识的方法因它们所用的功能知识不同而有明显区别。效用知识(Functional Knowledge)是一种关于一个项目如何满足某一特定用户的知识,因此能解释需要和推荐的关系,所以用户资料可以是任何能支持推理的知识结构,也可以是用户已经规范化的查询,还可以是一个更详细的用户需要的表示。

  1. 组合推荐

由于各种推荐方法都有优缺点,所以在实际中,组合推荐(Hybrid Recommendation)经常被采用。研究和应用最多的是内容推荐和协同过滤推荐的组合。最简单的做法就是分别用基于内容的方法和协同过滤推荐方法去产生一个推荐预测结果,然后用某方法组合其结果。尽管从理论上有很多种推荐组合方法,但在某一具体问题中并不见得都有效,组合推荐一个最重要原则就是通过组合能避免或弥补各自推荐技术的弱点。

在组合方式上,有研究人员提出了七种组合思路:
l1)加权(Weight):加权多种推荐技术结果。
l2)变换(Switch):根据问题背景和实际情况或要求决定变换采用不同的推荐技术。
l3)混合(Mixed):同时采用多种推荐技术给出多种推荐结果为用户提供参考。
l4)特征组合(Feature combination):组合来自不同推荐数据源的特征被另一种推荐算法所采用。
l5)层叠(Cascade):先用一种推荐技术产生一种粗糙的推荐结果,第二种推荐技术在此推荐结果的基础上进一步作出更精确的推荐。
l6)特征扩充(Feature augmentation):一种技术产生附加的特征信息嵌入到另一种推荐技术的特征输入中。
l7)元级别(Meta-level):用一种推荐方法产生的模型作为另一种推荐方法的输入。

  1. 主要推荐方法的对比

各种推荐方法都有其各自的优点和缺点,如下表

|--------|--------------------------------------------------------|----------------------------------------------|
| 主要推荐方法对比 |||
| 推荐方法 | 优点 | 缺点 |
| 基于内容推荐 | 推荐结果直观,容易解释; 不需要领域知识 | 稀疏问题;新用户问题; 复杂属性不好处理; 要有足够数据构造分类器 |
| 协同过滤推荐 | 新异兴趣发现、不需要领域知识; 随着时间推移性能提高; 推荐个性化、自动化程度高; 能处理复杂的非结构化对象 | 稀疏问题; 可扩展性问题; 新用户问题; 质量取决于历史数据集; 系统开始时推荐质量差; |
| 基于规则推荐 | 能发现新兴趣点; 不要领域知识 | 规则抽取难、耗时; 产品名同义性问题; 个性化程度低; |
| 基于效用推荐 | 无冷开始和稀疏问题; 对用户偏好变化敏感; 能考虑非产品特性 | 用户必须输入效用函数; 推荐是静态的,灵活性差; 属性重叠问题; |
| 基于知识推荐 | 能把用户需求映射到产品上; 能考虑非产品属性 | 知识难获得; 推荐是静态的 |

  1. 基于深度学习的推荐

基于深度学习的推荐是将深度学习技术糅杂在传统的推荐算法(比如基于内容的推荐、协同过滤推荐)之中,或使用无监督学习方法对项目进行聚类,或使用监督学习方法对项目进行分类,是使用多层感知器、卷积神经网络、循环神经网络、递归神经网络等对数据加工处理提取特征。基于深度学习主要是体现出它使用机器学习的数据处理技术,通过组合低层特征形成更加稠密的高层语义抽象,从而自动发现数据的分布式特征表示,解决了传统机器学习中需要人工设计特征的问题。深度学习技术是要依托于传统推荐技术中,可以说是对传统推荐技术的增强。

该类型推荐多用于处理图像、文本、音频等数据。比如电子商务平台、电影售票系统等,主营项目都会附带有明显的图片介绍,这就可以根据用户当前浏览或是历史购买记录,来获取图 片信息,深度学习提取出图像的特征表示,再以此从项目数据库中比对类似特征的图像,从而推荐;像亚马逊这样的网上书店或小说平台,主营项目以文本信息为主。经过深度学习,也可以提取出文本的风格、类型、特色等特征,从而匹配推荐;对于音乐播放器这类以音频为主的系统,先将音频数据变为数字信号,再进行深度学习,用数字信息抽象表示音频特征(舒缓、嘻哈、古典等),从而可训练出用户的听曲风格。基于深度学习推荐的最优势点就是可针对多种类型的输入数据,都可以提取特征,并训练模型,可以实现多元化的推荐,但是要想得到更好的推荐效果,就需要更长的时间来训练模型。

  1. 基于深度学习的推荐系统中的常用神经网络

卷积神经网络包括输入层、卷积层、池化层、全连接层和输出层,其中卷积层和池化层组合形成了特征提取器。在卷积层中,上一个神经元不再与全部的下一层神经元全连接,只是部分连接,并且在CNN中采用了权值共享,即卷积核,这不仅有效减少了神经网络中的参数个数,还降低了过拟合的弊端。卷积神经网络多用于处理图像数据,所以经常是通过处理分析用户项目的历史图片信息来推荐类似风格和颜色布局图片的其他项目。

循环神经网络相较于普通神经网络,特殊在它各个隐藏层之间是具有连接的,体现在功能上就是能够记忆之前的信息,即在当前隐藏层的输入中不仅包括输入层的输出信息,还包括了隐藏层上一个状态(或上一个时刻)的输出。这种神经网络多用于处理序列数据,比如语音识别,要想语义翻译准确,就要根据上文环境,所以循环神经网络在处理这类问题时具有一定的优势。

传统的序列推荐算法主要依赖于矩阵分解或者因子分解的求解范式,即将高维、稀疏的用户-物品历史交互行为矩阵,或者是马氏链中的物品偏好转移概率矩阵分解为低秩的表达,抑或是将用户交互行为构建为独热编码,再使用因子分解机进行特征交互建模,用于用户行为预测与序列推荐。

这类方法虽然在一定程度上已经支持用户行为序列的建模与优化,但是难以建模更长的用户行为序列,同时在复杂特征的建模、特征交互与表征学习上存在固有的局限性。

  1. 多路召回

推荐系统内置了多种召回策略,用户可根据自身业务特点,配合融合流程,有针对性地制定或调整召回策略组合。

  1. 实时更新

通过接入实时数据,实时更新用户画像和物品画像,及时捕捉用户兴趣变化,快速反馈用户需求,为及时调整推荐策略提供依据。

  1. 精排策略

推荐系统的特征工程可从原始数据中分析历史用户画像、物品画像,自动学习特征信息以供AI模型训练。内置了多种排序算法,可根据业务需求选择适当的算法进行训练,使推荐结果以更合适的顺序呈现。

  1. 过滤规则

推荐系统提供黑名单、白名单、特定行为等过滤功能,可根据具体业务设置过滤规则,提升安全性和用户体验。

  1. 召回算法

基于深度学习的召回算法在推荐系统中取得了显著的成功,它利用深度神经网络来学习用户和物品之间的复杂关系,能够更好地捕捉数据中的隐藏模式。以下是一个基于深度学习的召回算法的基本步骤:

  • 数据准备: 收集用户行为数据,包括用户的历史点击、购买、评分等信息,以及物品的特征,例如标签、内容描述等。
  • 数据表示: 将用户和物品转化为模型可处理的向量表示。这可以通过嵌入层(Embedding Layer)来实现,将用户和物品映射到低维空间中的向量。
  • 神经网络架构: 设计深度神经网络架构,其中包含嵌入层、多个隐藏层以及激活函数。这些网络层的组合可以根据具体任务的复杂性进行调整。一些经典的深度学习模型包括多层感知机(MLP)、卷积神经网络(CNN)、循环神经网络(RNN)以及更先进的模型如Transformer。
  • 损失函数: 定义适当的损失函数,用于衡量模型输出与实际用户行为之间的差异。通常在推荐系统中,使用二元交叉熵(Binary Cross Entropy)或均方误差(Mean Squared Error)等损失函数。
  • 模型训练: 利用历史行为数据对模型进行训练。通过优化算法(如随机梯度下降)来最小化损失函数,更新模型参数。
  • 召回候选物品: 在训练完成后,可以利用模型为用户生成候选物品列表。这些物品可以根据模型输出的分数排序,然后作为后续推荐阶段的候选集合。
相关推荐
AI完全体16 分钟前
【AI战略思考1】如何更高效地了解AI行业的最新动态和商业应用以及我的时间分配
人工智能·机器学习·ai·商业应用·ai行业动态·技术趋势·信息渠道
#include<菜鸡>28 分钟前
动手学深度学习(pytorch土堆)-06损失函数与反向传播、模型训练、GPU训练
人工智能·pytorch·深度学习
o(╯□╰)o亚比囧囧囧2 小时前
李沐 过拟合和欠拟合【动手学深度学习v2】
人工智能·深度学习
钡铼技术2 小时前
通过MCGS在ARMxy边缘计算网关上实现物流自动化
人工智能·自动化·边缘计算·钡铼技术·armxy边缘计算网关
OpenTiny社区3 小时前
茶思屋直播|TinyEngine+AI:聚焦主航道,在实践中探索低代码技术黑土地
人工智能·低代码
chenkangck504 小时前
AI大模型之旅--milvus向量库安装
人工智能·aigc·milvus
学习前端的小z4 小时前
【AI视频】Runway:Gen-2 图文生视频与运动模式详解
人工智能·aigc·音视频
SpikeKing5 小时前
LLM - 理解 多模态大语言模型(MLLM) 的 指令微调(Instruction-Tuning) 与相关技术 (四)
人工智能·语言模型·指令微调·数据调整·自指令·数据混合·instruction
开MINI的工科男6 小时前
【笔记】自动驾驶预测与决策规划_Part3_路径与轨迹规划
人工智能·笔记·自动驾驶·预测与决策
xuanyu229 小时前
Linux常用指令
linux·运维·人工智能