推荐系统实战(概念与架构)

概念与架构

推荐系统概念:

推荐系统主要用于信息过载&用户需求不明确,对用户进行项目推荐。
推荐与Web项目的区别:
Web项目:处理高并发实现高可用,提供稳定的服务(信息流)
推荐:追求指标增长,留存率,GMV(商品交易总额)等
推荐与搜索的区别:
搜索:马太效应、用户主动、需求明确、个性化弱且快速满足;
推荐:长尾效应、用户被动、需求模糊、个性化强且持续服务;

推荐系统的要素:

  1. UI、UE(前端)
  2. 数据(Lambda架构)
  3. 业务知识
  4. 算法
    在这里插入图片描述

前端部分和业务知识不是重点内容(略)

Lambda架构(数据部分)

Twitter提出来的应该提供 实时数据离线预先计算 的数据环境混合平台
在这里插入图片描述
分为上下两个部分:

离线批处理(延迟达min级):

Flume是一个分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输(数据日志采集收集)

***Haddop(HDFS)***提供了高可靠性、高扩展性和高吞吐率的数据存储服务(分布式存储框架)

Haddop(MapReduce)spark 由于计算过程需要反复操作磁盘,适用于离线计算,批计算,大规模的数据量计算(分布式计算框架)

Haddop(HBase) 和 HDFS 类似, 核心区别,在于分布适用于不同的应用负载类型,分别适用于随机访问低延迟与数据分析场景;

实时处理层(延迟达s级):

kafka是一个可持久的分布式消息队列,自带存储,提供push和pull两种存储数据功能(数据日志缓存)
spark streamingStormFlink实时流处理计算框架(三种框架各有优缺实时性也有所不同)

算法部分

算法基本分为以下的四类:
①基于机器学习与协同过滤的推荐(详见UsersCF等)
②基于矩阵分解的推荐(详见MF)
③基于深度学习的推荐(详见深度学习推荐系统)
④基于图模型的推荐(详见cs224w 图机器学习与图神经网络)

推荐系统架构(总体架构)

#mermaid-svg-kGiCDQ1sXLRNKPHd {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kGiCDQ1sXLRNKPHd .error-icon{fill:#552222;}#mermaid-svg-kGiCDQ1sXLRNKPHd .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-kGiCDQ1sXLRNKPHd .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-kGiCDQ1sXLRNKPHd .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-kGiCDQ1sXLRNKPHd .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-kGiCDQ1sXLRNKPHd .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-kGiCDQ1sXLRNKPHd .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-kGiCDQ1sXLRNKPHd .marker{fill:#333333;stroke:#333333;}#mermaid-svg-kGiCDQ1sXLRNKPHd .marker.cross{stroke:#333333;}#mermaid-svg-kGiCDQ1sXLRNKPHd svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-kGiCDQ1sXLRNKPHd .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-kGiCDQ1sXLRNKPHd .cluster-label text{fill:#333;}#mermaid-svg-kGiCDQ1sXLRNKPHd .cluster-label span{color:#333;}#mermaid-svg-kGiCDQ1sXLRNKPHd .label text,#mermaid-svg-kGiCDQ1sXLRNKPHd span{fill:#333;color:#333;}#mermaid-svg-kGiCDQ1sXLRNKPHd .node rect,#mermaid-svg-kGiCDQ1sXLRNKPHd .node circle,#mermaid-svg-kGiCDQ1sXLRNKPHd .node ellipse,#mermaid-svg-kGiCDQ1sXLRNKPHd .node polygon,#mermaid-svg-kGiCDQ1sXLRNKPHd .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-kGiCDQ1sXLRNKPHd .node .label{text-align:center;}#mermaid-svg-kGiCDQ1sXLRNKPHd .node.clickable{cursor:pointer;}#mermaid-svg-kGiCDQ1sXLRNKPHd .arrowheadPath{fill:#333333;}#mermaid-svg-kGiCDQ1sXLRNKPHd .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-kGiCDQ1sXLRNKPHd .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-kGiCDQ1sXLRNKPHd .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-kGiCDQ1sXLRNKPHd .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-kGiCDQ1sXLRNKPHd .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-kGiCDQ1sXLRNKPHd .cluster text{fill:#333;}#mermaid-svg-kGiCDQ1sXLRNKPHd .cluster span{color:#333;}#mermaid-svg-kGiCDQ1sXLRNKPHd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-kGiCDQ1sXLRNKPHd :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

候选合集
排序列表
TOP-N
海量item
召回
排序
策略
展示

一般是从海量item选出部分item(召回),再候选item中进行排序,再结合最后的推送策略进行重排,最后推送排名的前N个item

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>