专栏首页推荐引擎如何工作?

推荐引擎如何工作?

对每个人而言,购物是必不可少的一件事。而当我们购物时,我们通常会购买我们所信任的人推荐的商品。如今是数字时代,人们网上购物时常会使用购物推荐引擎。

推荐引擎是一种数据过滤引擎,它通过算法及数据来给特定的用户推荐相关商品。简而言之,它只不过是一个自动的“商店导购员”。你访问在线商店时,它不仅给你展示你要的产品。与此同时,它还向你展示你可能感兴趣的商品(推荐商品通常情况下,价格会更昂贵)。推荐引擎被用于交互销售、提升产品销量。

随着网络数据的日益暴涨,用户数量的显著提升,推荐引擎对于网店及电商公司的重要性日渐提高。其重要性表现在:电商公司通过推荐引擎查找信息,根据用户的喜爱偏好为其提供相关商品信息。

推荐引擎如何工作?

根据“ 使用计算引擎进行机器学习制作产品建议 ”(Using Machine Learning on Compute Engine to Make Product Recommendations)一文,典型的推荐引擎通过以下四个阶段处理数据:收集,存储,分析和过滤。

收集数据

创建推荐引擎的第一步是收集数据。数据既可以是显式数据,也可以是隐式数据。显式数据由用户输入的数据组成,如对产品的评分和评论。隐式数据可以包括订单历史记录、退货历史记录、购物车历史、页面浏览量、点击量和查找历史。这些数据是为每个访问任何特定网站的用户收集的。

行为数据极易获得,因为你可以轻易地记录用户在你网站上的活动日志。你无需让用户做更多的操作,这部分数据基于用户的正常操作,但该方法有一个缺点——难以分析数据。比如,从不重要的数据中过滤出必要的日志是个很棘手的问题。

因为每个用户对于一件产品有不同的喜好,他们的数据集必然不相同。花费大量时间,给予引擎大量数据,它会变得更加聪明,所给出的推荐结果更加精确。用户也会更乐于去点击、购买商品。(就像亚马逊推荐引擎一样,拥有“组合购买”、“为你推荐”标签)

存储数据

通过算法处理越多的数据,推荐结果就更加精准。这意味着,任何推荐引擎项目都可以转变成大数据项目。

在创建推荐引擎数据库时,你需要根据你的数据类型选择相应的数据库。供选择的数据库有NoSQL数据库、标准的SQL数据库,或者也可以选择对象存储。你的选择主要取决于你存储的数据来自于用户的直接输入还是用户的行为数据,当然其因素也包括数据范围、环境集成、轻便性。

在保存用户评分或评论时,需要一个可灵活管理的数据库,以此尽量减少任务请求量,更加注重推荐本身。云数据库版SQL可以满足上述的需求,同时能够简单、直接地加载数据。

分析数据

我们如何发现相似用户参与度数据呢?通过使用不同分析方法过滤数据,我们就能找到答案。如果想让用户在访问产品时马上获得推荐,则需要更加灵活的分析方式。以下是几种我们分析数据时常用的方法:

  • 实时系统(Real-time systems)可以实时处理产生的数据。这种系统通常用于处理和分析事件流。实时作出推荐是对实时系统的基本要求。
  • 批量分析(Batch analysis)需要定期处理数据。这种方法需要相当体量的数据为基础,来分析相关性,例如日销售量数据。
  • 近实时分析(Near-real-time analysis)能快速的收集数据。你可以时时刻刻刷新数据。近实时分析的最佳使用场景是为每个相同的浏览环节提供推荐。

过滤数据

下一个步骤是过滤数据,得到必要的相关数据,以此为用户提供推荐。我们需要从各式各样的算法中选择适合推荐引擎的算法。以下为推荐的过滤方法:

  • 基于内容(Content-based):推荐可以根据用户所浏览过或所喜欢的产品特征,关联相同特征的产品。
  • 集群(Cluster):无论用户做了什么,推荐的产品都可以很好地结合在一起。
  • 协作(Collaborative):根据其他浏览过相同产品或喜欢相同产品的用户所产生的记录,为当前用户提供“浏览过该产品的用户还购买了/浏览了”推荐。

协作过滤需要你为所有产品设定属性信息,根据用户的喜好作出理论上的推测。输出的过滤数据基于假设,两个喜欢相同产品的用户很有可能喜欢同样的产品。

您可以将有关评分或交互的数据表示为一组矩阵,并将产品和用户作为维度。假设下面两个矩阵是相似的,但是我们从第一个中扣除第二个,通过用第一个数字替换现有的评级,并且由“0”丢失评级。得到的矩阵是一个真值表,其中第一个表示用户与产品的交互。

资源

我们使用K-nearest算法,Jaccard系数,Dijkstra算法和余弦相似度来更好地根据评级或产品关联推荐人的数据集。

K-nearest算法集群过滤

最后,通过过滤和使用该算法后得到的结果,根据推荐类型及时向用户给出推。可以提供实时推荐,或者过一段时间发送含推荐信息的电子邮件给用户。

本文的版权归 青蛙跳 所有,如需转载请联系作者。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 日处理数亿次请求的工作推荐引擎是如何演化的?

    大数据文摘
  • 搜索引擎是如何工作的?

    SEO: Search Engine Optimization,直译为搜索引擎优化,其实这句话真正的意思是根据搜索引擎的工作原理对我们的项目进行优化。

    用户3258338
  • 搜索引擎是如何工作的?

    搜索引擎匹配查询到它们创建的索引上。这个索引包含每个文档的单词,和能指向文儿当地址的指针。这被叫做倒排索引文件【 inverted file】。一个搜索引擎或者...

    程序猿DD
  • 腾讯推荐引擎组员工:谈谈推荐系统架构

    架构图 ? 图1 总体架构 图1大虚线内是线上服务,请求顺序用数字标识,不带箭头的连线表示通信是双向的,即请求与响应,它周围的各模块分别是:elk日志收集系...

    腾讯大讲堂
  • 推荐一个SDK(引擎): HeliumProject

    逍遥剑客
  • 推荐一个SDK(引擎): HeliumProject

    代码在GitHub上: https://github.com/HeliumProject

    逍遥剑客
  • 搜索引擎蜘蛛工作原理,如何引蜘蛛?

    在SEO工作中,有的时候我们很少关心搜索引擎蜘蛛的是如何工作的,虽然,它是一个相对复杂的工作系统,但对于SEO人员而言,我们有必要进行详尽的了解,它有利于指导我...

    蝙蝠侠IT
  • 如何去了解JavaScript引擎的工作原理

    1. 什么是JavaScript解析引擎? 简单地说,JavaScript解析引擎就是能够“读懂”JavaScript代码,并准确地给出代码运行结果的一段程序。...

    前朝楚水
  • 个性化推荐系统(二)---构建推荐引擎

      当下推荐系统包含的层级特别的多,整个线上推荐系统包含:最上层线上推荐服务、中层各个推荐数据召回集(数据主题、分类池子)、底层各种推荐模型。        ...

    杉枫
  • HT1113 搜索引擎自动化利用工具推荐

    关于自动化利用搜索引擎信息收集,主要关注域名、企业邮箱地址这两部分信息,通过搜索引擎来搜索结果,有两种方式,一种是直接通过模拟浏览器的方式获取搜索结果,一种是通...

    信安之路
  • 视野前端(二)V8引擎是如何工作的

    许多同学在阅读了基础进阶系列文章之后,对JS代码的执行顺序理解得更清晰了。可也有不少好学的大佬在此基础上进一步思考,JS引擎到底是如何工作的?什么时候解析?什...

    用户6901603
  • 「首席架构师推荐」精选的开源工作流引擎列表,

    原文:https://github.com/meirwah/awesome-workflow-engines

    首席架构师智库
  • 商品搜索引擎–商品推荐

    因为工作需要,最近有在学习商品搜索引擎的东西。会涉及到系统推荐、个性化推荐和排序推荐。

    全栈程序员站长
  • 个性化推荐沙龙 | 腾讯云推荐引擎实践

    吕慧伟,腾讯云布道师,腾讯社交网络运营部高级工程师,腾讯通用推荐系统神盾开发负责人,腾讯云推荐引擎架构师。中国科学院计算技术研究所博士,美国阿贡国家实验室博士后...

    携程技术
  • ZStack--工作流引擎

    在IaaS软件中的任务通常有很长的执行路径,一个错误可能发生在任意一个给定的步骤。为了保持系统的完整性,一个IaaS软件必须提供一套机制用于回滚先前的操作步骤。...

    用户2040787
  • JS引擎是如何工作的?从调用堆栈到Promise

    有没有想过浏览器如何读取和运行JS代码? 这看起来很神奇,我们可以通过浏览器提供的控制台来了解背后的一些原理。

    Fundebug
  • 「首席架构师推荐」工作流引擎哪家强?首席架构帮你挑

    原文:https://github.com/meirwah/awesome-workflow-engines

    首席架构师智库
  • JavaScript是如何工作的:存储引擎+如何选择合适的存储API

    在设计 Web 应用程序时,为本地浏览器选择合适的存储机制至关重要, 一个好的存储引擎可以确保可靠地保存信息,减少带宽,提高响应能力。正确的存储缓存策略是实现离...

    前端小智@大迁世界
  • JavaScript深入浅出第4课:V8引擎是如何工作的?

    大神Fabrice Bellard发布了一个新的JS引擎QuickJS,可以将JavaScript源码转换为C语言代码,然后再使用系统编译器(gcc或者clan...

    Fundebug

扫码关注云+社区

领取腾讯云代金券