推荐系统业务

淘宝开启“千人千面”的时代标志着推荐系统在电商领域的分发效率也已经远远超过了传统的人工配置或者BI的方式,推荐系统已经渗透到了人们生活的很多领域,从阅读新闻到网上购物等

技术方面:

  • 推荐系统解决了一个核心的问题:如何实现日益增长爆炸式的信息与用户不断变化兴趣和需求之间的高效匹配。
  • 用户在网络上表达的行为信息越多,计算机可以采集到的用户行为信息也就越多。推荐模型就有了更多的数据去学习
  • 大规模机器学习和深度学习在推荐系统领域的应用。2010年以前推荐系统主要使用的还是传统的协同过滤和基于内容推荐的算法。2010年以后随着算法科学家们在推荐系统领域的不断研究,将大规模机器学习框架引入到了推荐系统领域,大幅提升了推荐系统模型分发的效率和效果。随着深度学习模型的应用,推荐系统的推荐效果也越来越好,对于用户和物品的特征挖掘的更深更广。

以电商APP为例,可以将APP的流量场域分为3大类:

  • 推荐是基于用户的兴趣,平台主动去探索为用户推荐可能感兴趣的商品
  • 搜索是用户主动表达需求,平台被动接受的。搜索场景是平台不可或缺的,需要给用户表达诉求的场景。而在电商平台搜索场景也贡献着超过60%以上的订单。在内容类APP上搜索场景流量不多,但是在电商类APP用户目前还是倾向于搜索
  • 另外一大场景就是频道&会场,落地页里面很多都是基于推荐系统来进行内容分发。很多时候业务侧会有一些强干预,尤其在一些特殊节点上,一些会场会重点将一些流量倾斜给某些品牌等。比如宝洁和京东达成战略合作,宝洁希望618期间有一个专属的会场,里面分发的商品由他们自己决定,这种特殊需求在实际业务开展中其实有很多。

推荐系统架构里,用户打开APP看到为自己推荐的物料,正常都是需要经过5-6个环节。常见的流程从建立物料索引,再到召回、粗排、精排、重排到过滤层,最终展示在了APP前端,为用户推荐了感兴趣的物料。

物料索引

APP里有哪些物料是可以推荐给用户,会有一个总的物料池,物料池本身存储在数据库中。同时为了查询时更加方便快捷,我们需要提前构建好物料索引。尤其是很多召回路是基于一些标签进行召回的,更加需要提前构建好倒排索引。物料的清洗和索引的构建是推荐系统的第一步基础工作。

召回层

构建完物料索引后,推荐系统是如何挑选出用户感兴趣的物料了。推荐算法发展到现在,我们可以称之为4.0时代。4.0时代的推荐算法都是以预估用户的点击率(CTR)为核心,基于用户对于每个物料的预估点击率(Predicted-CTR)来进行排序,按照Predicted-CTR值进行倒排。

粗排层

大家可以看到召回阶段会有非常多的召回策略,那我们如何将这些各路召回的商品汇总在一起进行一个统一排序了。比如热销路的召回,召回了Top 100的商品;历史高点击的召回,同样召回Top 100的商品

精排层

精排层的核心任务就是预估用户对于召回层返回的Top-K商品的Predicted-CTR。召回和粗排只是选择出了用户可能感兴趣的物料,但是每一个物料具体的预估CTR是多少并不知道。精排层就需要基于用户历史点击过的物料作为正样本,曝光未点击的物料作为负样本,然后构建CTR预估模型,预估用户对于每一个物料的Predicted-CTR。在精排层核心要做的几件事情:数据清洗构建正负样本,选择合适的排序算法,构建特征工程、模型训练与效果评估。最终基于精排模型预估出的CTR对于召回的物料再重新进行一次排序。精排模型的预估是整个推荐系统中耗时最多的,因为特征十分复杂,特征维度很多

重排层

很多时候推荐系统仍然有一些其他业务规则进行干预。比如在电商推荐系统里面,就会有以下的一些策略:

  • 类目打散:对于给用户推荐的商品如果类目集中度过高,会进行一定程度的打散,具体按照类目打散的规则每家不一样,核心是基于业务场景。打散不是目的,目的是为了提升推荐系统的点击率。
  • 不同类型物料混合:比如淘宝,淘宝推荐场景里面有的内容类型有:店铺、活动、直播、商品、视频等等,为了降低用户的审美疲劳,很多时候针对不同类型的内容推荐系统也会进行重新打散。但同样打散不是目的,目的是为了提升推荐系统的点击率。
  • 实现全局最优:精排层是预估用户对于单个物料的CTR,这是一种局部最优的思想。但是用户在浏览时正常都会一次性浏览多个,怎么样的物料组合可以实现全局最优而不是局部最优。同样4个坑位,有可能精排排序在1,3,5,7的四个物料组合比精排排序在1,2,3,4的四个物料组合整体CTR更高。总的来说重排层是推荐系统最后一道策略和模型的调整
过滤层

重排层调整完的物料顺序还会再进行一些业务规则和策略的干预,比如电商领域会进行以下的过滤:

  • 未上架过滤:当前已经上架的商品不展示在APP前端。
  • 缺货过滤:当前已经缺货的商品不展示在APP前端。

推荐系统演变成先通过召回层初步筛选出用户可能感兴趣的一些物料,比如800个。然后再进入粗排和精排,其他几十亿的物料直接在召回阶段就被过滤了。这样的架构设计大大降低了推荐系统的计算压力,同时也不影响推荐系统的整体效果。


向量召回

1. 向量

具有大小和方向的量。向量召回的核心思想就是将用户特征和物料特征全部用向量来表示,然后基于向量来计算用户与物料的相似度、用户与用户的相似度、物料与物料的相似度。

2. Embedding

“嵌入”& “向量映射”,是一种用一个数值向量“表示”一个对象(Object)的方法。Embedding可以理解为是一种编码方式,把相关字符类值比如“安徽”通过编码的方式转化为可以供计算机使用的数字。

…待更新学习笔记


【阅读笔记】推荐系统相关推荐

  1. POI推荐文献阅读笔记3:Predicting Human Mobility via Graph Convolutional Dual-attentive Networks

    POI推荐文献阅读笔记3: Predicting Human Mobility via Graph Convolutional Dual-attentive Networks 1.摘要 2.贡献 3. ...

  2. Self-Attentive Sequential Recommendation论文阅读笔记

    SASRec论文阅读笔记 论文标题:Self-Attentive Sequential Recommendation 发表于:2018 ICDM 作者:Wang-Cheng Kang, Julian ...

  3. 基于深度学习的性格探测综述 阅读笔记

    Recent trends in deep learning based personality detection 目录 Recent trends in deep learning based p ...

  4. Personalized Bundle Recommendation in Online Games 阅读笔记

    Personalized Bundle Recommendation in Online Games 阅读笔记 CIKM 2020 Qilin Deng, Kai Wang, Minghao Zhao ...

  5. 【知识图谱】 | 《知识图谱——方法、实践与应用》阅读笔记

    <知识图谱--方法.实践与应用>的阅读笔记 知识图谱--方法.实践与应用 第1章 知识图谱概述 1.1 什么是知识图谱 1.2 知识图谱的发展历史 1.3 知识图谱的价值 1.4 国内外典 ...

  6. trainer setup_Detectron2源码阅读笔记-(一)Configamp;Trainer

    一.代码结构概览 1.核心部分 configs:储存各种网络的yaml配置文件 datasets:存放数据集的地方 detectron2:运行代码的核心组件 tools:提供了运行代码的入口以及一切可 ...

  7. VoxelNet阅读笔记

    作者:Tom Hardy Date:2020-02-11 来源:VoxelNet阅读笔记

  8. Transformers包tokenizer.encode()方法源码阅读笔记

    Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode

  9. 源码阅读笔记 BiLSTM+CRF做NER任务 流程图

    源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...

  10. Mina源码阅读笔记(一)-整体解读

    2019独角兽企业重金招聘Python工程师标准>>> 今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者 ...

最新文章

  1. python简史_命令行简史
  2. 东农计算机应用与技术离线作业,东农16春《计算机应用与技术》在线作业.doc
  3. SDL历程--课程设计之画图
  4. 字典树-01字典树基础
  5. js替换数组中字符串实例
  6. android shell检查是否锁屏_android打开关闭屏幕
  7. 两种思想实现基于jquery的延时导航菜单,可做延时触发器!
  8. eclipse反编译插件Jadclipse介绍
  9. python画雷达图-python使用matplotlib绘制雷达图
  10. Tarjan边的双联通
  11. Python绘制Excel图表
  12. ArcMap教程:合并ShapeFile中多个要素
  13. C语言 3习题6 请编程序将China译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。 3习题7 设圆半径r=1.5
  14. linux学习教程-硬盘介绍和磁盘管理v11
  15. python中round作用,python的round函数的解释
  16. JS-计算日期差,计算日期之间的月数
  17. 软考之软件设计师——计算机网络及知识产权
  18. matlab画一维波动方程,一维波动方程的数值解
  19. 基于ThinkPHP6+Layui通用后台管理框架
  20. 10 个优秀的占位图片生成服务

热门文章

  1. 帝都攒钱买房的哥们(zz)
  2. 上海拓盟计算机科技,邱兆文-东北林业大学信息与计算机工程学院
  3. 智能手表音频特性测试_“微纳结构动态特性测试仪”国家重大专项荣获舜宇智能光学2019年度优秀项目奖...
  4. 推进科技创新助力保险业电子商务发展
  5. 中央处理器 —— 数据通路
  6. 开战不到7天,马斯克与苹果光速「和好」!马院士:感谢最大金主爸爸回归!...
  7. Mac机上安装nvm遇到的坑--nvm command not found
  8. Unity 制作签名功能——使用LineRender实现UI上签名效果
  9. 基金训练营学习笔记2-债券基金
  10. 移远BC35-G连接阿里云