外围架构

一般来说,每个网站都有一个 UI 系统,UI 系统负责给用户展示网页并和用户交互。网站会通过日志系统将用户在 UI 上的各种各样的行为记录到用户行为日志中。

从上面的结构可以看到,除了推荐系统本身,主要还依赖两个条件--界面展示和用户行为数据。

推荐系统架构

推荐系统联系用户和物品的主要方式如下图所示。如果将这三种方式都抽象一下就可以发现,如果认为用户喜欢的物品也是一种用户特征,或者和用户兴趣相似的其他用户也是一种用户特征,那么用户就和物品通过特征相联系。

根据上面的抽象,可以设计一种基于特征的推荐系统架构。当用户到来后,推荐系统需要为用户生成特征,然后对每个特征找到和特征相关的物品,从而最终生成用户的推荐列表。因而,推荐系统的核心任务就被拆解成两部分,一个是如何为给定用户生成特征,另一个是如何根据特征找到物品。

用户的特征非常多,主要包括以下几类:
人口的统计学特征:包括用户的年龄,性别,国籍,民族等用户注册时提供的信息。
用户的行为特性:   包括用户浏览过什么商品,购买,收藏,评分等用户行为相关的特征。

用户的话题特征:   可以根据用户的历史行为利用话题模型将电视剧和电影聚合成不同的话题,计算用户对什么话题感兴趣。

如果要在一个系统中把上面提到的特征和任务都统筹考虑,那么推荐系统会非常复杂,而且很难通过配置文件方便的配置不同特征和任务的权重。因此,推荐系统需要由多个推荐引擎组成,每个引擎负责一类特征和一种任务。推荐系统的任务就是将不同的推荐引擎的结果按照一定的权重或者优先级合并,排序然后返回。推荐系统架构如图:

可以方便的增加/删除引擎,控制不同引擎对推荐结果的影响。

可以实现推荐引擎级别的用户反馈。每一个推荐引擎其实代表了一种推荐策略,而不同的用户可以喜欢不同的推荐策略。

推荐引擎的架构

如图所示,推荐引擎架构主要分为 3 部分:

部分 A 主要负责从数据库或者缓存中拿到用户行为数据,通过分析不同的行为,生成当前用户的特征向量。
部分 B 负责将用户的特征向量通过特征-物品相关矩阵转化为初始推荐物品列表。

部分 C 负责对初始化的推荐列表进行过滤、排名等处理,从而生成最终的推荐结果。

生成用户特征向量:在利用用户行为计算特征向量时需要考虑以下因素
用户行为的种类-- 在一个网站中,用户可以对物品产生很多种不同种类的行为。如浏览,购买,评分等。一般标准就是用户付出代价越大的行为权重越高。比如,用户购买行为需要掏钱,所以用户会三思而后行,因此购买行为最重要。

用户产生行为的时间 -- 一般来说,近期的行为比过去重要。
用户行为的次数 -- 有时用户对一个物品会产生多次行为,行为次数多的物品对应的特征权重越高。

物品的热门程度 -- 用户对不热门的物品产生的行为更能代表用户的个性。

特征-物品相关推荐:从架构图可以看出,特征-物品相关推荐可以接受一个候选物品集合。候选物品集合的目的是保证推荐结果只包括含候选物品集合中的物品。比如有些产品要求给用户推荐最近一周加入的新的物品,那么候选物品集合就包括最近一周新加的物品。

过滤和排名:将初始推荐列表中一些用户已经看过的,或者总体评分低的,质量差的,或者推荐后用户可以自己根据条件刷选的(比如价格区间)的物品过滤掉,并按照一定的排序规则(比如新颖度)展现给用户,生成最终的推荐结果。

推荐算法--推荐系统架构(06)相关推荐

  1. Twitter推荐算法总架构和算法说明

    Twitter推荐算法总架构: 这个推荐架构的作用是生成在用户首页上显示的推文列表 步骤: 1.从不同的推荐来源中获取最好的推文,这个过程被称为候选来源. 2.使用机器学习模型对每条推文进行排名. 3 ...

  2. 推荐算法--推荐系统冷启动问题(03)

    文章目录 目录 1.什么是冷启动问题? 1.1冷启动问题 1.2 冷启动问题的分类 1. 用户冷启动 2 物品冷启动 3 系统冷启动 2.如何解决冷启动问题? 2.1利用用户注册信息 2.2选择合适的 ...

  3. BPR贝叶斯个性化推荐算法—推荐系统基础算法(含python代码实现以及详细例子讲解)

    BPR贝叶斯个性化排序算法 一.问题导入 二.显示反馈与隐式反馈 2.1 显式反馈与隐式反馈基本概念 2.2 显式反馈与隐式反馈的比较 2.3 显式反馈与隐式反馈的评价方法 2.3.1 显式反馈数据模 ...

  4. 推荐系统-推荐引擎的架构

    内容来源:<推荐系统实践> 前面介绍了各种各样的数据和基于这些数据的推荐算法.在实际系统中,前面几章提到 的数据大都存在,因此如何设计一个真实的推荐系统处理不同的数据,根据不同的数据设计算 ...

  5. 千万级智能推荐系统架构演进!

    作者:fisherman,时任推荐部门推荐系统负责人,负责推荐部门的架构设计及相关研发工作.Davidxiaozhi,时任推荐部门推荐系统架构师,负责推荐系统的架构设计和系统升级. 来自:<决战 ...

  6. 一线互联网智能推荐系统架构演进

    作者:fisherman,时任推荐部门推荐系统负责人,负责推荐部门的架构设计及相关研发工作.Davidxiaozhi,时任推荐部门推荐系统架构师,负责推荐系统的架构设计和系统升级. 来自:<决战 ...

  7. 搜狐新闻推荐算法原理 | “呈现给你的,都是你所关心的”

    导读 在当前这个移动互联网时代,各种信息内容爆炸,面对海量数据,用户希望在有限的时间和空间内,找到自己感兴趣的内容,这就是推荐需要解决的问题.接下来主要讲解新闻推荐的算法原理. 01.新闻推荐算法架构 ...

  8. 如何设计推荐系统架构?

    推荐系统是移动互联网时代非常成功的人工智能技术落地场景之一. 本文我们将从架构设计的角度回顾和讨论推荐系统的一些核心算法模块,重点从离线层.近线层和在线层三个架构层面讨论这些算法. 本文不会讲解一些具 ...

  9. 机器学习——推荐算法

    文章目录 推荐算法 1 协同过滤算法 1.1 算法概述 推荐算法 推荐系统的核心问题是为用户推荐与其兴趣相似度比较高的商品. 此时需要一个函数f(x)来计算候选商品与用户之间的相似度,并向用户推荐相似 ...

最新文章

  1. 【Qt】Qt Creator中文输入设置
  2. cocos2d-x在win7下的android交叉编译环境
  3. 高精度地图量产难,四维图新利用优势准备实现突破
  4. 《因果学习周刊》第5期:NeurIPS2021 因果发现最新进展
  5. lxml xpath 爬取并正常显示中文内容
  6. rails3 cookie setting
  7. python装饰器作用-Python装饰器详解
  8. 如何从无到有搭建to B平台?
  9. linux 中 set,env,export,declare显示shell变量的区别
  10. (72)FPGA面试题-使用不同的代码实现2-4译码器?使用if语句
  11. 云计算入门科普系列:云计算与人工智能
  12. Open vSwitch作为openflow交换机的启动方法
  13. leetcode 1446 连续字符
  14. (2)卷积 卷积和
  15. 读书有益——》《断舍离·舍·做减法的勇气》
  16. Cookie.js 源码解析
  17. 处理IRP的几种方式
  18. Leetcode 跳跃游戏
  19. 互联网大厂的年终奖(华为分红400亿,腾讯每人发股票 )
  20. FileZilla使用密钥文件连接linux服务器上传文件

热门文章

  1. php中的控制器是什么意思,理解PHP中的MVC编程之控制器_php
  2. unity镜头边缘羽化_【后期修图】如何利用Ps中的自适应广角滤波器校正镜头失真?...
  3. vb如何定义微软服务器stul,VBScrip微软官方教程.doc
  4. linux shell 原理,linux下shell的工作原理
  5. python允许无止境的循环吗_Python第一天 - 思想永无止境的个人页面 - OSCHINA - 中文开源技术交流社区...
  6. 为什么TypedReference在幕后
  7. unity3d collider自动调整大小_自动网格组合建模工具Unity游戏素材资源
  8. 【精华】掌握Qt调试技术
  9. 【HDU - 5649】DZY Loves Sorting(线段树,区间更新区间查询,思维,01缩数变换,线段树分割)
  10. 【CodeForces - 227B 】Effective Approach (STL,思维)