推荐系统要解决什么问题?----让每个人都用着舒心

对于用户来说,他在他此时浏览的每个软件场景下,能不能很快地获得让他感兴趣的信息,甚至会出现一些“惊喜”,让他知道,呀,这个好!

网络的产品、信息浩如烟海,每个人的喜好还不一样,有的人根本不知道自己喜欢什么,想要什么;有的人大概知道,但是本身就很犹豫;有的人确实比较坚定(比如我就想看看机械键盘,想买一个)。

所以,一个好的推荐系统要以尽可能全覆盖的满足每一个使用这个软件或产品的人,让尽可能全的人觉得,嗯,这里的内容挺好,竟然是个小机灵鬼,让我节省不少时间。

更进一步地:从系统角度讲:

对于某个user, 在特定的场景(context)下,针对海量“物品信息”构建一个函数,to 预测用户对特定候选物品们的喜好程度,再根据喜好程度进行排序,生成推荐的列表;并通过用户的行为及时的更新推荐列表。

注 : 推荐系统中的数据 :

  • 用户信息                        :
  • 物品信息                         :
  • 上下文(场景)信息      :

为什么深度学习对推荐系统重要?

  1. 深度学习能拟合出更加泛化的模型,能满足更多场景和更多不同喜好的人的要求。
  2. 让深度学习模型的神经网络模拟很多用户兴趣的变迁过程,甚至用户做出决定的思考过程。
  3. 大数据与深度学习相互需要相互促进,最终共同发展,能在一起处理更加海量的信息。

推荐系统的通用架构:

  • 推荐系统 = 数据 + 模型
  • 数据部分 =  收集 + 处理
    • 通用主流框架  = 大数据离线批处理 + 在线实时流处理
    • 实时性  大-> 小    ||    处理数据量 小 -> 大
      • 客户端与服务器端实时数据处理
      • 流平台准实时
      • 大数据平台离线批处理
    • 这些数据用来干什么?
      • 用于训练和预估: 生成模型需要的样本数据
      • 用户线上推断:生成用户特征、物品特征和一部分场景特征
      • 用于统计和监控的数据
    • 其实 数据的质量决定了推荐系统的上限,模型只能逼近这个上限
  • 模型部分:  召回 + 排序 + 重排序 (一般来说)  也有 召回+粗排+精排+重排
    • 召回层: 得到用户可能感兴趣的物品

      • 海量----几万
      • 用一些规则算法 + 简单的模型 的 多模型联合召回方式
      • 主要在离线时处理
      • embedding技术可以实现快速召回
    • 排序层;利用一些排序模型对召回候选集进行精排
      • 几万-----几千  (只是举例啦)
      • 用到机器学习算法(GBDT +LR最常见)+ 一些深度学习算法(deepFM DIN 等)
      • 近似在线层
    • 重排序:也称为补充策略层
      • 几千-200
      • 返回给用户的推荐列表前,需要做的多样性处理 即
        • 推荐列表应组成: 算法结果 + 运营指定 + 热点物品 + 广告 + 推荐一些冷门 等等
      • 效果:让推荐列表 看着 多样、流行、新鲜、惊喜,同时也能满足投资广告方的曝光需求
    • 模型评估:
      • 离线时 有离线评估指标
      • 在线主要用到线上A/B测试

问题

  1. 如今主流数据处理框架是 flink做 流计算,spark做全量数据批量处理,目前能形成真正的批流一体么?

    1. 现在很难,但在往那方向走;
    2. 历史遗留:以前只有spark,没用flink,很多公司的数据体系都是在spark基础上的,这就跟TensorFlow1的代码想改成TensorFlow2 也会有很多意想不到的问题。
    3. spark本身也在发展,有flink的竞品spark streaming。 而且spark社区和积累很成熟。
  2. 用户实时行为后,生成实时推荐列表的数据是如何走的?
    1. 实时用户请求里边包含的特征一般是直接在服务器内部(很多用redis)提取出的,肯定不用再在数据流中重新走一遍。
    2. 但线上请求数据最终会落盘到日志数据中。这时流处理批处理的平台会对这些数据进行处理,生成今后可供使用的特征及训练用样本。
  3. 一般来说,近线层处理好的数据、特征会存储到redis等内存型数据库供online service使用。

王喆《深度学习推荐系统》 推荐系统架构相关推荐

  1. 基于实时深度学习的推荐系统架构设计和技术演进

    简介:整理自 5 月 29 日 阿里云开发者大会,秦江杰和刘童璇的分享,内容包括实时推荐系统的原理以及什么是实时推荐系统.整体系统的架构及如何在阿里云上面实现,以及关于深度学习的细节介绍 本文整理自 ...

  2. 【深度学习推荐系统-王喆】笔记系列 3 浪潮之巅——深度学习在推荐系统中的应用

    第 3 章 浪潮之巅 -- 深度学习在推荐系统中的应用 概述 与传统机器学习模型相比,深度学习模型的优势 1.表达能力更强 能够挖掘出更多数据中潜藏的模式 2.结构非常灵活 能够根据业务场景和数据特点 ...

  3. 推荐系统 (三): 浪潮之巅 -- 深度学习在推荐系统中的应用

    目录 深度学习推荐模型的演化关系图 AutoRec -- 单隐层神经网络推荐模型 AutoRec 模型的基本原理 AutoRec 模型的结构 基于 AutoRec 模型的推荐过程 U-AutoRec ...

  4. 深度学习在推荐系统上的应用

    作者:陈仲铭,知乎 ID:ZOMI 深度学习最近大红大紫,深度学习的爆发使得人工智能进一步发展,阿里.腾讯.百度先后建立了自己的AI Labs,就连传统的厂商OPPO.VIVO都在今年开始筹备建立自己 ...

  5. 基于深度学习的推荐系统

    作者|James Loy 编译|VK 来源|Towards Data Science 传统的推荐系统基于聚类.最近邻和矩阵分解等方法.然而,近年来,深度学习在从图像识别到自然语言处理等多个领域取得了巨 ...

  6. 基于深度学习的推荐系统:综述与新视角

    原文:Deep Learning based Recommender System: A Survey and New Perspectives 作者:张帅, 新南威尔士大学 翻译:沈春旭,清华大学 ...

  7. 「构建企业级推荐系统系列」深度学习在推荐系统中的应用

    点击上方"数据与智能","星标或置顶公众号" 第一时间获取好内容 作者 | gongyouliu 编辑 | auroral-L 2016年DeepMind开发的 ...

  8. 深度学习在推荐系统中的应用

    作者丨gongyouliu 编辑丨zandy 这是作者的第20篇文章,约2.4万字,阅读需180分钟 2016年DeepMind开发的AlphaGo在围棋对决中战胜了韩国九段选手李世石,一时成为轰动全 ...

  9. 基于深度学习的推荐系统(一)Overview

    这是对近年来基于深度学习的推荐系统的内容的一份综述,具体来说,大部分内容来自 Deep Learning based Recommender System: A Survey and New Pers ...

  10. 打造企业级云深度学习平台——小米云深度学习平台的架构设计与实现

    作者:陈迪豪,小米深度学习工程师,负责小米云深度学习平台的架构和实现,目前专注于TensorFlow和Kubernetes社区. 责编:何永灿,欢迎人工智能领域技术投稿.约稿.给文章纠错,请发送邮件至 ...

最新文章

  1. A Way Of Leader
  2. Python opencv 获取图像形状大小
  3. django安装mysql驱动_django安装mysql驱动
  4. 【已解决】surefire-reports for the individual test results.
  5. UE3客户端服务器GamePlay框架
  6. git 回退上一个版本
  7. 若依集成ueditor富文本编辑器
  8. 【值得学习】售前工程师的成长(四)---一个老员工的经验之谈
  9. Exception in thread main java.lang.NoClassDefFoundError: scala/Product$class
  10. 基于NaiveBayse SVM KNN的Python垃圾短信过滤系统 附代码
  11. 【技术贴】自己制作支持QQ空间背景音乐的链接教程||QQ免费空间音乐外链自己上传制作教程...
  12. 优动漫PAINT基础系列之图层模式
  13. Webserver简易项目
  14. 如何有效的维权,这些投诉平台你可能用得上
  15. python判断火车票座位代码_12306 火车票监控Python代码
  16. C#操作GDAL——(1)空间参考相关
  17. 小H和迷宫(C++)
  18. 绿色荧光染料Alexa fluor 488 PEG Biotin,AF-488-PEG-生物素,激发/发射波长约为495nm/520nm
  19. 金融帝国2(Capitalism.Lab)完美破解修复版下载
  20. Android 接入udesk SDK实现IM

热门文章

  1. 【嵌入式】Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的分配地址
  2. 莓茶提取物通过调节肠道微生物和代谢改善文昌鸡肉品质与风味!
  3. 81-82-83-84-85-86 - 文件系统设计与实现
  4. 今天咱们用Python整一个超级玛丽游戏 | 附带源码
  5. java jxl 的打印设置
  6. js时间搓化为今天明天_JavaScript获取时间戳与时间戳转化
  7. 动态二维码生成器PHP Dynamic QRcode
  8. 新版绝地救生发卡网源码修复版 全解密源码
  9. android Sim卡锁定 pin解锁流程学习
  10. 第七节 红帽认证培训 用户身份与文件权限(5.1-5.3)