1704849963
在线部分,其理亦然:量化用户的请求,完成内容的筛选和排序。
1704849964
1704849965
推荐与搜索最大的差异在于用户表意是否明确。因此,推荐系统需要尽可能地完善用户的长期画像(对哪些类目、实体词、话题感兴趣)和短期场景(时间、地点信息),这样才能够在用户每一次请求时更好地揣摩用户当下的意图,以进行后续的内容匹配。
1704849966
1704849967
当用户打开内容推荐应用时,提交给系统的信息包括时间、地理位置、网络环境、手机设备型号、登录用户ID(身份认证)等。基于用户ID,推荐系统会从数据库中取出用户的画像数据(User Profile)。如图1–4所示的推荐系统支持分类和实体词两个维度的用户画像:在分类维度,用户对体育和科技内容感兴趣;在实体词维度,用户对NBA感兴趣。基于体育、科技、NBA,推荐系统会进行下一步的内容召回和排序操作。
1704849968
1704849969
1704849970
1704849971
1704849972
图1–4 点击调权过程图
1704849973
1704849974
召回和排序操作与搜索系统比较相似,系统基于类目查询和实体词查询分别获得候选内容集合。排序模块按照特定预估目标(如点击导向、互动导向、停留时长导向等)对候选集统一排序,并经过规则层的处理后最终反馈给用户。
1704849975
1704849976
值得注意的是,在推荐系统中,用户的行为不仅像在搜索系统中那样具有针对内容价值的群体评估意义,而且还具有针对自身画像的个体进化意义。
1704849977
1704849978
在群体评估意义层面,每一个读者就像是一名陪审团成员,通过自己的行为来决定某篇内容的好坏。比如某篇关于NBA的内容,如果连偏好NBA的用户都不怎么点击,那么这篇内容在“NBA”这个实体词下的权重自然应该降低。这一部分的应用与搜索场景比较类似。
1704849979
1704849980
在个体进化意义层面,用户的阅读反馈行为在持续改进着自身的画像。比如,用户是热火队的粉丝,那么在行为层他就会更多地点击与热火队相关的NBA内容,系统捕捉到这一信息后,就会在他的画像中补充“热火”这个实体词,从而影响后续的推荐内容流。
1704849981
1704849982
YouTube和Netflix推荐架构参考
1704849983
1704849984
上述系统架构描述,为降低理解成本尽可能地简化了各个环节的算法复杂度。事实上,随着深度学习、神经网络的逐步工业化应用,尽管整体架构不变,但是各个环节的复杂度和算法的理解成本已经相对较高了。
1704849985
1704849986
以YouTube(世界上最大的视频网站)为例,2016年其已经将深度学习应用于自己的系统中,并获得了显著的效果。其系统架构如下:
1704849987
1704849988
YouTube的推荐架构,包含了两个神经网络,分别用于产出候选集(召回)和排序。召回层的神经网络将用户在YouTube上的历史行为作为输入内容,完成从百万量级到百量级的候选内容筛选。但其并非唯一的召回方式,YouTube历史上应用有效的其他召回方式也同时在线上运行,如基于用户观看历史相似性、基于搜索行为、基于协同行为等方式。多种召回方式共同构建的视频候选集会被一并送进排序环节。在排序环节中,神经网络基于用户个体的特征和视频的特征对候选集进行打分,最后给用户返回得分靠前的十余个视频。
1704849989
1704849990
1704849991
1704849992
1704849993
图1–5 YouTube内容推荐系统架构
1704849994
1704849995
相对YouTube较为抽象简化的数据流图,Netflix(网飞)的架构图就更复杂一些了,但整体上仍然保持了离线模型训练、在线召回排序、更新用户画像与内容画像的基础结构。系统在实时响应用户请求的在线层和负责数据处理、模型训练的离线层之间增加了NearLine(近线)层,以实现计算规模和时效性的折中。
1704849996
1704849997
1704849998
1704849999
1704850000
图1–6 Netflix内容推荐架构图
1704850001
1704850002
在数据流上,用户的所有动作(播放、评分、浏览等行为)共同构成了在线层的输入。根据业务需求,Netflix将用户行为拆分为数据和事件。其中,数据的时间敏感度更低,事件的时间敏感度更高。比如,在用户观看一部电影后,如果希望及时更新用户的推荐列表,那么这次观看动作就会被视作事件型进入NearLine层,以更快地更新用户画像数据。用户的请求经由多种召回方式从离线索引中获取结果后,经过在线的模型排序计算,将最终结果返回给用户。
1704850003
1704850004
基于推荐架构的优化启示
1704850005
1704850006
了解了推荐系统的基础架构后,站在不同角度的我们就有了不同的优化空间和迭代导向。
1704850007
1704850008
用户
1704850009
1704850010
我们常说要把用户当作小白来看待,以不断降低用户的使用成本。但不论如何让产品普世化、小白化,每一个产品都客观存在由浅入深的功能进阶。如果作为用户的你想享有更有效率、更贴心的服务,我建议你去“训练”推荐系统。
1704850011
1704850012
“训练”推荐系统就请你不吝表达和互动,用你的反馈支持服务提供商和内容创作者。对于令你满意的服务和产品,登录是最好的肯定,在登录后,你的所有行为轨迹就不会丢失,在更换设备之后仍然能够获得稳定的服务体验;对于令你满意的内容,请果断地点赞、评论;对于你喜欢的作者,可以关注他的后续动态。“赠人玫瑰、手有余香”,这些典型正向反馈能够让算法更快速地收敛并确定你的喜好。对于令你厌恶的内容,也请点个“×”,明确屏蔽掉特定关键字,让系统不再做无用的探索。
[
上一页 ]
[ :1.704849963e+09 ]
[
下一页 ]