放大推荐引擎的构建过程

已发表: 2023-08-03

人们在 Netflix 上观看的 80% 以上的节目都是通过该平台的推荐引擎发现的。 这意味着您所看到的大部分内容都是复杂机器做出的决策的结果。

该流媒体服务依靠人工智能来查看内容中的细微差别,并深入了解观众的偏好。 可以肯定地说:努力得到回报!

如果您仍落后于潮流,但希望改善客户对您的业务的体验,请继续阅读。 在这篇博文中,我们将指导您完成构建推荐引擎的过程,并阐明您在转向人工智能服务供应商之前需要了解的所有信息。

推荐引擎 101:冒险开发之前需要了解的事情

在我们开始讨论如何构建推荐引擎之前,让我们先了解一下推荐引擎的类型、用例和实现选项。

传统上,推荐系统分为两大类:基于内容的过滤和协作过滤系统。

基于内容的过滤

基于内容的过滤系统根据内容的特性或特征生成推荐。 换句话说,他们推荐与用户之前喜欢或互动过的产品或内容类似的产品或内容。 这样,推荐引擎就可以向喜欢《西线无战事》和《第二十二条军规》的读者推荐《永别了,武器》。

但引擎如何知道哪些项目是相似的呢? 让我们看看 Netflix 构建推荐引擎的方法来理解这一点。 虽然Netflix的推荐系统是混合性质的,但它很大程度上依赖于内容的相似性。

该流媒体服务拥有一支标签团队,他们会观看每条新内容并为其贴上标签。 标签的范围很广,从作品的动感程度到它是否以太空为背景或由特定演员主演。 通过机器学习算法根据观众行为分析标签数据,流媒体平台可以找出与每个用户真正相关的内容。

协同过滤

协同过滤系统根据用户反馈提出建议。 此类系统假设喜欢类似商品的用户可能会对新产品和内容做出类似的反应。

有两种依赖协同过滤构建推荐引擎的方法:基于用户的和基于项目的。

通过基于用户的过滤,您可以创建具有共享偏好的相似用户细分。 因此,用户可能会被推荐该细分中其他用户喜欢的项目。 没有考虑内容的特征。

通过基于项目的过滤,引擎根据用户喜欢的项目与建议的项目的相似性来创建推荐。 听起来类似于基于内容的过滤,不是吗? 尽管基于内容的过滤和基于项目的协作过滤系统都使用项目相似性来进行推荐,但它们在确定相似内容的方式上有所不同。

基于内容的过滤系统仅推荐与用户已经喜欢的项目相似的项目。 通过基于项目的协作过滤,系统会向您推荐与您喜欢的项目相似且您所在细分市场中的用户也喜欢的项目。

推荐引擎的用例

高度个性化已成为用户期望的必需品,促使企业通过推荐引擎丰富他们的在线体验。 推荐引擎已普及的领域包括:

  • 零售和电子商务:电子商务中的推荐引擎可以执行任何操作,从对产品进行分类到建议客户购买新商品。 在电子商务中实施推荐引擎所带来的影响以及随之而来的增强的客户服务、改进的营销以及更广泛的追加销售可能性所带来的影响很难高估。 例如,著名的电子商务巨头亚马逊,其35%的收入都是通过其推荐系统产生的。
  • 媒体和娱乐:从策划播放列表到根据过去的互动提供个性化建议,推荐引擎可以通过向用户展示他们不会发现的内容来帮助媒体和娱乐平台更长时间地吸引用户。 YouTube、Netflix 和 Spotify 等最大的媒体和娱乐平台严重依赖人工智能生成的个性化推荐来吸引和留住新用户。
  • 社交媒体:社交媒体部门也在利用提供个性化建议的可能性。 社交媒体平台帮助用户发现相似的页面和帐户,促使用户花更多时间与内容互动,从而提高点击率并增加收入。
  • 银行和金融:基于人工智能的推荐系统使银行能够分析用户的交易和追加销售以增加收入。 例如,当用户购买价值 500 美元的机票时,推荐引擎会自动假设他们要飞往国外,并建议他们购买保险旅行套餐。

可供选择的实施选项

当您踏上构建推荐引擎的旅程时,您将遇到几种具有各自优点和注意事项的实现选项,即:

即插即用的推荐引擎

即插即用的推荐引擎提供了一种方便、无忧的方式将个性化推荐融入您的产品或平台。 它们是预先构建的,旨在无缝集成到您现有的基础设施中。

即插即用推荐引擎的主要优势在于其简单性和易用性。 它们通常被设计为用户友好的,甚至允许非技术受众以最小的努力来设置它们。 即插即用推荐引擎的示例涵盖 Recombee、Seldon 和 LiftIgniter 等平台。

即插即用推荐引擎的缺点是定制性和适应性有限。 虽然它们提供了便利和速度,但它们可能无法提供定制解决方案所提供的灵活性和微调水平。

预先训练的基于云的推荐服务

基于云的推荐引擎允许利用云服务提供商的大量计算资源和专业知识。 这些推荐服务通常提供易于使用的 API,使开发人员能够轻松地将推荐功能集成到他们的应用程序中。

基于云的推荐引擎也具有高度可扩展性,这使得它们能够处理庞大的用户群和高流量负载。 另一个优势是随着服务提供商更新和完善底层模型而不断改进。

Amazon Web Services、Google Cloud Platform 和 Microsoft Azure 等领先的云服务供应商提供预先训练的推荐服务。

选择预先训练的基于云的推荐服务时要考虑的因素包括数据隐私、供应商锁定和定制要求。 虽然这些服务提供了便利性和可扩展性,但它们在定制推荐算法以满足您的特定业务需求方面可能存在局限性。

定制推荐引擎

自定义推荐引擎提供最高程度的灵活性和控制,使您能够整合专有算法、利用特定领域的知识并考虑数据的细微差别。 采用自定义方式可以让您捕获用户偏好、项目特征和上下文因素的复杂性,通常会产生更准确和相关的推荐。

然而,虽然自定义推荐引擎提供了最大的灵活性,但它们也需要大量的开发资源、机器学习方面的专业知识以及持续的维护工作。 因此,在构建自定义推荐引擎之前,请仔细评估您的业务需求、可用资源和长期目标。

经验法则是在以下场景中采用自定义路线:

  • 您有独特的业务需求:如果您的企业有现成解决方案无法满足的独特需求,请进行定制。 它将允许您根据您的特定任务定制算法。 假设您是一个销售手工产品的利基电子商务平台。 在推荐产品时,您可能有不同的要求:推荐引擎必须考虑产品稀有性、工艺以及用户对特定款式或材料的偏好等因素。 从头开始构建推荐引擎将更有可能让您生成符合用户偏好的推荐。
  • 您想要完全控制和所有权:构建自定义推荐引擎可以让您完全控制整个推荐生成过程:从数据预处理到算法选择再到微调。 它使您能够获得系统的完全所有权,并随着业务的发展进行调整,而无需依赖第三方解决方案。
  • 您拥有特定领域的知识:如果您拥有特定领域的专业知识或可以访问可以显着提高推荐准确性的专业数据,那么构建自定义解决方案可以让您有效地利用这些知识。 通过开发定制的推荐引擎,您可以合并预训练解决方案中可能不可用的特定于领域的功能或约束。
  • 您的应用程序需要高可扩展性和性能:如果您预期有大量用户或项目,有严格的延迟限制,或者需要处理大型且复杂的数据集,构建自定义推荐引擎可以让您灵活地设计和优化系统,以最大限度地提高系统性能。可扩展性和性能。 如果您想生成实时或近实时的推荐,这同样适用。
  • 您希望获得竞争优势:如果准确的推荐是您的产品或服务的核心差异化因素,那么构建自定义推荐引擎可能会给您带来竞争优势。 在这种情况下,投资定制解决方案可以提供提供独特和个性化体验的机会,从而提高参与度、忠诚度和客户满意度。

逐步构建自定义推荐引擎

提供个性化推荐是一项通常通过机器学习解决的任务。 也可以使用神经网络,但它们的作用主要限于预处理训练数据。 以下是 ITRex 机器学习开发人员分享的构建推荐引擎过程中的关键步骤。

步骤1.设定方向

通过为项目的其余部分设定方向来启动开发。 此阶段要做的重要事情包括:

设定目标并定义项目范围

清楚地概述您打算通过推荐系统实现的目标,并根据资源和预算限制权衡设定的目标。 例如,如果您想提高客户参与度并增加在线商店的销售额,您可以将项目范围限制为向已购买的客户推荐产品。 与构建针对所有客户的推荐引擎相比,保持范围相当狭窄需要更少的工作,同时产生投资回报率的潜力仍然很高。

评估可用的数据源

推荐系统的性能在很大程度上取决于训练数据的数量和质量。 在开始培训之前,请仔细评估您是否有足够的数据点来生成建议。

定义绩效指标

构建推荐引擎的关键挑战之一应该从一开始就考虑到定义成功指标。 在开始训练 ML 算法之前,想出一种方法来判断用户是否真的喜欢新生成的推荐。

步骤 2. 收集训练数据

构建自定义推荐系统过程的下一步是收集和准备用于训练机器学习算法的数据。 要构建可靠的推荐系统,您需要足够的有关用户偏好的数据。

根据构建推荐引擎的方法,您的重点会发生变化。 在构建协同过滤系统时,您收集的数据以用户行为为中心。 通过基于内容的过滤系统,您可以专注于用户喜欢的内容特征。

协同过滤

有关用户行为的数据可能有不同的形式:

  • 明确的用户反馈是指任何需要用户付出努力的事情,例如撰写评论、喜欢某条内容或产品、抱怨或发起退货。
  • 隐式用户反馈,例如过去的购买历史记录、用户查看某个优惠的时间、观看/收听习惯、社交媒体上留下的反馈等等。

在构建推荐引擎时,我们建议结合显式反馈和隐式反馈,因为后者可以挖掘用户可能不愿意承认的偏好,从而使系统更加准确。

基于内容的过滤

在为基于内容的过滤系统收集数据时,了解在挖掘用户喜欢的内容时应该依赖哪些产品/内容功能至关重要。

假设您正在为音乐爱好者构建一个推荐引擎。 您可以依靠频谱图分析来了解特定用户喜欢什么类型的音乐,并推荐具有相似频谱图的音乐。

或者,您可以选择歌词作为推荐的基础,并建议处理类似主题的歌曲。

关键是进行测试和调整,以了解什么最适合您,并准备好不断改进初始模型。

步骤 3. 清理和处理数据

要构建高性能的推荐引擎,您必须考虑不断变化的用户品味。 根据您的推荐,旧的评论或评级可能不再相关。

为了防止不准确,请考虑仅查看更有可能代表当前用户品味的功能,删除不再相关的数据,并为最近的用户操作(而不是较旧的操作)添加更多权重。

步骤 4. 选择最佳算法

构建推荐引擎过程的下一步是选择适合您的任务的机器学习算法。 ITRex 的数据科学家建议考虑以下因素:

  • 矩阵分解将大型数据集分解为较小的部分,以发现用户和项目之间隐藏的模式和相似性。
  • 张量分解是矩阵分解的扩展,可以处理称为张量的更高维数据结构。 它通过将张量分解为潜在因子来捕获更复杂的模式,从而提供对用户-项目交互的更详细的理解。
  • 分解机是可以处理高维和稀疏数据的强大模型。 它们捕获功能之间的交互,并可应用于推荐任务。 通过考虑功能交互,即使数据不完整,他们也可以提供准确的建议。
  • 邻域模型根据属性或行为发现用户或项目之间的相似性。 它们对于协作过滤特别有效,它们在网络中的用户或项目之间建立连接,并根据相似用户或项目的偏好提出推荐。
  • 随机游走是一种基于图的算法,用于探索网络中项目或用户之间的连接。 通过导航网络,它捕获项目或用户之间的相似性,并根据捕获的连接提出建议。
  • SLIM是推荐系统中使用的一种技术,用于了解项目之间的相互关系。 它专注于寻找项目之间关系的模式,并使用这些模式来提出建议。
  • 线性模型根据特征之间的线性关系预测用户项目偏好。 虽然它们很容易理解并且可以快速训练,但它们可能无法像其他方法那样有效地捕获复杂的模式。

此外,您还可以选择以下深度学习模型:

  • DSSM (深度结构化语义模型)学习文本或文档的表示。 他们专注于在结构化框架内捕捉单词的语义及其关系。
  • 图卷积网络是为图结构数据而设计的。 它们对图进行操作,捕获图中节点之间的关系和交互。
  • 变分自动编码器是一种生成模型,它通过捕获数据的底层潜在空间来学习数据的表示。 这些模型使用编码器-解码器架构将数据压缩到低维空间并重建它。
  • Transformer是一种使用自注意力机制来捕获句子或文档中单词之间的上下文关系的模型。

需要注意的是,上述方法很少单独使用。 相反,它们通过以下技术和算法组合:

  • 集成涉及独立训练多个模型,然后通过各种技术组合它们的预测。 每个模型对最终预测的贡献相同,并且组合通常很简单,不涉及训练额外的模型。
  • 堆叠采用了更先进的方法。 它涉及训练多个模型(称为基础模型),然后通过元模型组合它们的预测。 基础模型根据输入数据进行预测,它们的预测成为元模型的输入特征。 然后训练元模型以做出最终预测。
  • AdaBoost是一种集成学习算法,通过在不同的数据子集上迭代训练基础模型来提高基础模型的准确性。 该方法重点关注难以正确分类的实例,并在后续训练迭代中给予它们更多关注。 在每次迭代中,AdaBoost 根据训练实例的分类精度为其分配权重。 然后,它在加权数据上训练表现不佳的模型,其中权重强调先前迭代中错误分类的实例。
  • XGBoost是一种集成方法,它迭代地组合弱预测模型以创建更强的模型。 它以顺序方式训练模型,其中每个后续模型都会纠正前一个模型所犯的错误。

步骤 4. 训练和验证模型

一旦您确定了推荐引擎的算法,就可以训练和验证模型了。 构建推荐引擎过程中的这一步如下所示:

首先,您需要将数据分为两组:训练集和测试集。 顾名思义,训练集会教您的模型识别用户偏好的模式。 测试集有助于评估模型在新数据上的性能。

准备好训练集后,开始训练您的模型。 这涉及将算法暴露给数据,使其能够学习底层的模式和关系。

训练阶段结束后,是时候使用测试集评估模型的性能了。 这将帮助您了解模型如何有效地推广到新数据。

或者,您可以依靠实时反馈来了解模型的执行情况。 这样,您就可以在生产中部署模型并将生成的建议映射到用户反馈。 然后您进入下一步,设置模型以通过迭代学习过程调整其参数。

步骤 5. 调整模型超参数

评估模型的性能后,您可以根据需要对其进行微调。 让我们考虑一个基于协同过滤算法的推荐系统的示例。

在协同过滤中,邻居的数量决定了在进行推荐时会考虑多少相似的用户或项目。 假设您正在构建一个依赖于协作过滤并推荐新电影的推荐引擎。 最初,您将邻居数量设置为 10,这意味着模型在生成推荐时会考虑 10 个最相似用户的偏好。

评估模型的性能后,您发现建议的精度低于预期。 为了改进这一点,您决定通过调整邻居数量来微调模型。

要探索不同邻居大小的影响,您可以使用范围值进行实验。 例如,将邻居数量减少到 5 个可能会导致精度显着提高。 但是,您可能会注意到召回率略有下降,这表明该模型错过了一些相关建议。 反过来,增加数字 20 可能会导致召回率略有提高,但建议可能会变得不那么个性化。

关键是要在精确度和召回率之间取得折衷,并在捕获不同用户偏好和保持准确推荐之间取得平衡。

步骤 6. 实施、监控和更新模型

模型准备就绪并准备好运行后,就到了实施它的时候了。

为了确保成功实施,请考虑将模型合并到现有基础设施中的最有效方法。 例如,您可以将模型嵌入到网站的后端,确保它与用户界面无缝交互。 这种集成可以实现动态适应用户偏好的实时推荐。

或者,您可以将模型部署为服务,例如推荐引擎 API,应用程序的其他组件可以轻松调用该服务。 这种面向服务的方法确保了灵活性和可扩展性,使您的应用程序能够轻松地利用推荐引擎的功能。

实施阶段也是考虑如何向用户呈现建议的好时机。 它们是否会在网站主页上显示为个性化建议,并在直观的界面中整齐地分类? 或者它们会无缝集成到应用程序的界面中,在适当的时刻出现给用户带来惊喜吗? 选择权在您,但始终将用户体验放在首位。

最后,严格测试已实现的模型以确保其无缝功能至关重要。 运行全面的测试来验证其在各种用户交互中的性能和行为,以确保推荐准确、及时且符合用户期望。

构建推荐引擎的挑战以及如何解决这些挑战

了解构建推荐引擎的挑战对于提供个性化和相关的推荐至关重要。 以下是最常见的概述:

挑战 1. 衡量成功

构建推荐引擎的关键挑战之一应该从一开始就考虑到定义成功指标。 换句话说,在开始收集数据和训练 ML 算法之前,您应该找到一种可靠的方法来判断用户是否真的喜欢新生成的推荐。 这将指导您的开发过程。

比如说,你是一个流媒体平台。 您可以计算点赞数或每月付费订阅数来衡量推荐引擎的性能。 然而,很可能你的建议是好的,而用户却不愿意明确说明他们的偏好或为服务付费。

我们数据科学家的经验表明,用户行为是衡量推荐系统性能的更可靠方法。 如果用户一晚上狂看了某个节目,即使没有给出明确的反馈,我们也不会怀疑他们是否喜欢该节目。

挑战2.维数诅咒

数据维度是指数据集中特征的数量。 更多的输入特征通常会使构建准确的推荐引擎变得更具挑战性。 我们以 YouTube 为例。 在平台上,数十亿视频和用户共存,每个用户都在寻求个性化推荐。 然而,人力和计算资源是有限的,几乎没有人愿意花几个小时等待建议加载。

为了应对这一挑战,在启动推荐算法之前需要一个额外的步骤,即候选生成。 此步骤可以将数十亿个视频的范围缩小到数万个。 然后这个较小的组用于生成推荐。

候选生成使用各种策略,其中最近邻搜索是最突出的一种。 克服维度问题的其他常见做法包括探索相似年龄组的人之间共享的流行类别或偏好。

挑战3.冷启动

构建推荐引擎过程中的另一个常见问题是,当系统缺乏有关用户或项目的足够信息时,就会出现冷启动难题,从而难以提供准确的推荐。 克服这一障碍需要采用协作过滤、基于内容的过滤或混合方法等方法。

挑战 4. 长尾

推荐系统可能会遭受一种称为“长尾”的现象。 这意味着受欢迎的商品会受到更多关注和推荐,而不太受欢迎的商品仍然不会被用户注意到。 解决这个问题需要生成个性化推荐并考虑个人用户偏好。

挑战5.新项目的冷启动

当新项目添加到系统中时,它几乎没有甚至没有用于生成推荐的历史数据,因此很难创建相关建议。 解决这个问题的一种方法是使用内容过滤器并通过促销或广告积极吸引用户与新商品互动。

挑战六、新用户冷启动

同样,新用户可能没有足够的历史数据来进行准确的推荐。 为了克服这一挑战,可以采用基于内容的过滤、反馈请求和初始用户调查等方法。

挑战7.数据稀疏性

在推荐系统中,数据稀疏是一种常见现象,即许多用户对少量项目进行评分或交互。 这对预测用户偏好提出了挑战。 为了解决这个问题,可以使用结合降维、正则化和其他技术的矩阵分解方法。

把它们加起来

构建推荐引擎是一个由算法、用户洞察和迭代细化推动的旅程。 从定义问题到选择正确的方法,再到细致的数据预处理到模型训练,每一步都有助于创建强大的推荐系统。

推荐引擎了解用户偏好并提供量身定制的推荐的能力可以为您的业务带来巨大的潜力。 亚马逊、YouTube、Spotify 和许多其他鲜为人知但同样成功的企业彻底改变了自己的产品,随后通过量身定制的推荐增加了收入。

例如,音乐流媒体平台 Spotify 依靠高度个性化的推荐作为关键的差异化因素,其用户群和收入每年都在持续增长。 仅在 2022 年第四季度,发现一首新的喜爱歌曲的承诺就使该平台的每月活跃用户增加了 20%,净增用户达到 3300 万。

如果您仍然落后于潮流,那么是时候利用人工智能的力量并通过自定义推荐引擎彻底改变您的用户体验了。

寻求通过强大的推荐引擎增强您的解决方案? 与 ITRex 顾问交谈。


最初于 2023 年 6 月 6 日发布于 https://itrexgroup.com。