推荐系统总结6(系统架构)

23 内容架构

内容架构

日志收集、内容发布、机器学习、信息流服务、监控。

日志收集,是所有排序训练的数据来源,要收集的最核心数据就是用用户在信息流上产生的行为,用于机器学习更新排序模型;

内容发布,就是用推或者拉的模式把信息流的内容从源头发布到受众端;

机器学习,从收集的用户行为日志中训练模型,然后为每一个用户即将收到的信息流内容提供打分服务;

信息流服务,为信息流的展示前端提供 Rest API;

监控,这是系统的运维标配,保证系统的安全和稳定等。


24 系统架构


1.离线:不用实时数据,不提供实时服务;

2.近线:使用实时数据,不保证实时服务;

3.在线:使用实时数据,要保证实时服务。

24.1 在线层

 在线层常常展现出的形式就是 Rest API 形式,后端则通常是 RPC 服务内部互相调用,以用户 ID、场景信息去请求,通常就在 ms 响应时间内返回Json 形式的推荐结果。那么哪些计算逻辑适合放在在线层呢.?

1.简单的算法逻辑;2.模型的预测阶段;3.商业目标相关的过滤或者调权逻辑;4.场景有关的一些逻辑;5.互动性强的一些算法。

比如说当用户访问一个物品详情页,需要做相关推荐,那么在线阶段给在线服务的 Rest API 传入用户身份及当前的物品 ID,实时地取出物品 ID 对应的相关物品ID 做一些重排和过滤,就可以输出了,整个过程都是在 ms 级别完成。这个实时响应的过程中,如果发生意外,比如说这个物品 ID 就没有相关的物品,那么这时候服务就需要降级,所谓的降级就是不能达到最好的效果了,但是不能低于最低要求,这里的最低要求就是必须要返回东西,不能开天窗。就降级为取出热门排行榜返回。虽然不是个性化的相关结果,但是总比开天窗要好。同时,还需要不断的使用产品过程中产生的用户行为,实时报送有关模块,例如不能重复推荐。

24.2 离线层

批量、周期性地执行一些计算任务。其特点是“不用实时数据,不提供实时服务”。


通过 Pig 或者 Hive 等工具,从全量日志中按照算法要求抽取出不同的数据,再加上其他数据变成了不同算法所需的数据源。

离线阶段的任务主要是两类:模型训练和推荐结果计算。通常机器学习类模型,尤其是监督学习和非监督学习,都需要大量的数据和多次迭代,这类型的模型训练任务最适合放在离线阶段

大多数推荐算法,实际上都是在离线阶段产生推荐结果的。离线阶段的推荐计算和模型训练,如果要用分布式框架,通常可以选择 Spark 等。


24.3 近线层

近线层的特点是“使用实时数据,不保证实时服务”。虽然这看上去蛮不讲理,但实际上这是一个非常重要的一层,它结合了离线层和在线层的好处,摒弃了两者的不足。近线层,也叫做准实时层,所谓“准实时”,就是接近实时,但不是真的实时。

这一层的数据来源是实时的行为事件队列,但是计算的结果并不是沿着输入数据的方向原路返回,而是进入了在线数据库中,得到用户真正发起请求时,再提供服务。一个典型的近线计算任务是这样的:从事件队列中获取最新的一个或少许几个用户反馈行为,首先将这些用户已经反馈过的物品从离线推荐结果中剔除,进一步,用这几个反馈行为作为样本,以小批量梯度下降的优化方法去更新融合模型的参数。这两个计算任务都不会也不需要立即对用户做出响应,也不必须在下一次用户请求时就产生效果,就是说当用户实时请求时,不需要去等待近线任务的最新结果,因为两者是异步的。近线计算任务一个核心的组件就是流计算,因为它要处理的实时数据流。常用的流计算框架有 Storm,SparkStreaming,FLink 等,Netflix 采用的内部流计算框架 Manhattan,这和 Storm 类似。略有区别的是 Spark Streaming,实际上并不是实时流计算,而是小批量计算。


24.4 简化


完全舍弃掉近线层;避免使用分布式系统。

在一个新产品的场景下, 当数据量还没有那么大时,使用分布式存储或者计算框架,非常不划算。



总结


25 数据采集


推荐算法形形色色,但是他们所需要的数据可以概括为两个字:矩阵。

基于这个分析,可以给要收集的数据归纳成下面几种。例如物品id,注意区分物品与物品之间的不同。

有几种方式可以获取数据

1.用SDK:友盟,google analytics,得到一些统计数据,但意义不大,可以自己仿照采集一些数据。

2.可视化:用开源的解决方案 mixpanel,指定收集

3.按自己自己方法


数据之外考虑的内容:

1.事件的设备信息,地理位置

2.从什么事件而来(上下文)

3.什么页面而来

4.事件发生的用户相关属性,物品相关属性。


总结,基本的推荐系统需要数据,如下,不会出错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容