概要设计和详细设计区别_一个新闻推荐系统的概要设计

本文探讨了一个新闻推荐系统的概要设计方案,旨在解决用户快速增长、用户粘性和转化率问题。方案分为三期,一期关注用户增长,通过基础算法和实时推荐策略;二期以协同过滤提升用户粘性;三期采用基于模型的推荐策略提高转化率。关键技术包括热度推荐、内容推荐、协同过滤和基于模型的推荐。
摘要由CSDN通过智能技术生成

ec3299414e8088107c447b3537966623.png

1、问题假设

假定为某新闻App实现个性化推荐能力,设计目标如下:

(1)高留存。通过个性化的内容或全局热点性内容提升用户对该新闻App的粘性。

(2)高使用时长。在用户愿意看该App的条件下,提升用户在该App上停留的时长。

(3)高实时性。实时热点或用户实时兴趣能够得到及时的推送。

基于上述三个设计目标,简单设计和思考一个推荐系统的概要方案。

2、方案综述

通过对数据(资讯数据、用户行为日志)的特征分析,制定推荐系统的召回策略以及排序策略,并通过feed流或者定向推送等形式输出用户资讯列表,通过收集用户对资讯的行为日志,不断完善用户的特征,优化策略,进而进入一个数据的闭环,如下图所示。

2d956697d9b09046818f69996f8a065b.png

需要解决用户数据多样性问题(避免单一),才能使得推荐系统发挥其价值,因此:

 首先,通过各种方式解决用户增长问题,通过多样用户积累原始数据,并通过一些简单的推荐策略,刺激用户增长;

 其次,当用户增长到一定阶段,考虑利用协同过滤增加用户粘性,一方面验证算法,另一方面更贴切的认识用户,形成初步的用户特征;

 然后,完善对用户的理解,形成用户画像,并提供基于模型的推荐方式,提升用户的转化率。


3、分阶段实施:一期解决用户快速增长为主

解决用户快速增长的问题,肯定不能完全靠技术层面解决(产品设计+商业模式)。但在技术层面,解决用户增长的关键因素在于:

  • 基础设施能够支撑用户的快速增长。
  • 推荐策略具备实时性,能够及时形成推送,并让用户及时看到焦点实时资讯或资讯事件流。

一期工作以打通完整业务流程为主,以热点研究、用户与资讯标签关联度(内容推荐)为核心的刺激用户增长策略(忽略产品设计带来的用户增长),主要特点如下:

(1)业务特点

以搭建平台为基础,贯穿业务流程,专注于刺激用户量增长。

(2)数据特点

a.用户数据量和历史记录积累还不足。

b.大部分处于冷启动,拥有可控制灵活使用的数据比较少。

c.平均日活远低于现有资讯量。

(3)技术特点

a.实现基础算法(例如SimHash、Bloom Filter、关键词提取、摘要抽取等)以及实现用户增长策略算法。

b.搭建基础计算平台,包括离线和实时计算部分。

(4) 技术方案

46c1ae97313f5ffa7648ff1e152f90a7.png

(5)关键算法

在项目早期,用户的行为数据偏少,而资讯内容相对丰富,因此基于内容相关度以及内容本身的热度的推荐策略比较容易实施,且能够辅助完成早期数据积累。

  • 基于热度的推荐策略。可以比较好的解决冷启动问题,此外热度的推荐可以刺激用户使用。热度包括:全局热度、分类热度(例如NBA球赛)、主题热度(例如娱乐明星类)、关键词热度等,热度的推荐策略主要影响的是资讯列表排序的结果。资讯入库后,系统为之赋予一个初始热度值,该资讯就进入了推荐列表进行排序;随着资讯不断被用户点击阅读,收藏,分享等,这些用户行为被视作帮助资讯提升热度,系统需要为每一种资讯赋予热度值;同时,资讯是有较强时效性的内容,因此资讯发布之后,热度必须随着资讯变得陈旧而衰减。
  • 基于内容的推荐策略。使用TF/IDF或TextRank的方法来计算每篇资讯的关键词,结合用户的浏览记录,然后使用这些关键字作为描述用户特征的向量,然后再根据被推荐的资讯中的权重高的关键字来作为推荐资讯的属性特征,然后再将这个两个向量最相近的(与用户特征的向量计算得分最高的Top-N)的资讯推送给用户。在计算用户特征向量和被推荐资讯的特征向量的相似性时,可以使用cosine方法。用户的特征向量来源于阅读的资讯标签的组合,如下图。

9de9a9340f6488198c493007d6c1befd.png

(6)阶段性问题及应对

  • 用户与资讯两两相似度计算量大问题。如果用户的特征向量(标签)与所有的资讯进行计算,则计算量非常大,因此对资讯进行聚类可以减少这类计算量,通过聚类后的资讯,只需要同一聚簇或者KNN中相近的资讯与用户计算相似度,属于计算量和召回率效果的折中计算,但是早期资讯量远大于用户量,因此影响相对比较小。
  • 热度最开始启动时,无法准确预估问题。早期的人工运营可能必不可少,通过运营的发现实时热点,并及时在最短时间内完成推送或插入到feed流,可以作为人工参与的一种方式。
  • 基于热度和内容的推荐方式,无法发现用户潜在兴趣问题。基于热度和内容的推荐方式会让推荐的范围越来越狭窄,但是用户的兴趣一般不会仅仅集中在一小块儿,但两种算法都无法有效的发现用户的潜在阅读兴趣,因此建议推送的内容中,依然需要按照比例保留一部分非推荐产生的资讯。


4、分阶段实施:二期解决用户粘性为主

用户的快速增长带来的问题是如何留住用户,因此二期将关键工作定位为如何提升用户粘性,提高用户留存,使得用户平均获取成本降低,并积累大量用户的有效数据,为用户转化率提供数据基础。

(1)功能关键点

二期的主要推荐方案采用协同过滤的方式,一方面协同过滤算法的新颖性较高,推荐结果可能是用户感兴趣的;另一方面协同过滤算法同时考虑了当前用户和其他用户的相关信息,这样能够增加产生推荐可利用的信息量,从而提高推荐的质量与效率。

(2)业务特点

增加用户粘性,提升用户留存,在技术方面提升用户留存则包括提升用户点击率、用户平均每篇资讯阅读时长。

(3)数据特点

  • 资讯库已经比较丰富;
  • 通过刺激的用户增长,大量用户的行为已经有一定的积累,无论是短暂使用用户,还是长期使用用户,平均日活用户与资讯库的量相当或超过。
  • 已经具备了分析用户的群体行为数据基础;

(4)技术特点

  • 以算法为主的粘性分析,对用户的理解,从标签化逐步形成到用户特征化,具备分析用户综合特征的能力。
  • 通过全文索引帮助用户去主动搜索发现自己关注的资讯内容。

(5)技术方案

ea24916980e2dac9d0c7c109f44847a6.png

(6)关键算法

  • 协同过滤:User-Based推荐策略。基于用户的行为历史记录,分析用户的群体特征,找出相似用户的一些偏好,通过群体的特征挖掘出可能用户潜在的阅读兴趣和相关的资讯内容。用户的群体分析可以采用聚类的方式,例如K-Means或KNN的方式。
  • 协同过滤:Item-based 推荐策略。通过计算每篇资讯之间的关联度,结合用户的资讯阅读、分享、评论等历史记录,给用户生成推荐的阅读资讯列表,Item-based可以预先计算好资讯的关联度,相对于User-Based计算效率略高。
  • 基于地理位置的推荐策略。通过用户的地理位置信息以及咨询集合中的地理位置标签信息进行批评,如果匹配为同一位置,为用户生成该地理位置相关的资讯列表。

(7)阶段性问题及应对

  • User-Based新用户启动问题。若新用户对资讯阅读太少,则不能立即对该用户进行个性化推荐,推荐效果反而会有折扣,因此用户相似度表每隔一段时间需要进行离线计算。也正是因为如此,可以优先启动Item-Based,然后再启动User-Based,对于Item-Based,新用户只要阅读若干资讯,就可以给该用户推荐已阅读资讯相关的其它资讯。
  • 数据稀疏性问题。每一个用户均不可能阅读完百万级的资讯内容,因此用户与资讯的对应关系则会形成比较严重的数据稀疏问题。稀疏性问题直接影响推荐质量,解决稀疏性问题的方式,可以采用简单填值、聚类、降维、结合内容的过滤方法等,但是需要充分理解用户资讯阅读的数据特征分布。

5、分阶段实施:三期解决转化率为主

三期的转化率不仅仅是针对变现的转换率,此处也是针对资讯阅读的转化率。在深度的了解用户基础上(表现形式为用户画像),给与用户推荐的资讯列表,用户的阅读时长和点击率均应有所提升。

(1)关键功能

三期在提升User-Based和Item-Based的效果基础上,还采用了基于模型的推荐策略,从而强化认识用户,提升效率。

(2)业务特点

提升用户对于产品的使用时长,影响时长的两个因素分别为平均每篇资讯阅读时长,以及资讯的点击率(阅读数)。

(3)数据特点

  • 单用户长期稳定的数据已经积累,并形成了用户画像。
  • 用户数据处于稳定增长阶段。
  • 平均日活用户规模远大于资讯库的量。

(4)技术特点

以用户画像的形式呈现用户,更全面的表达用户的特征信息,不仅在传统的User-Based和Item-Based可以做一些提升,在新的基于模型推荐中也可能比较针对性的实现推荐,用户对资讯的阅读时长可以作为用户对该资讯的一项评分。

(5)技术方案

4f17726806fe6e2c0ff9fc038fe0c9ea.png

(6)关键算法

基于模型的推荐策略相对而言,技术复杂度更高,主流模型的方法可以分为:用关联算法、聚类算法、分类算法、回归算法、矩阵分解、神经网络、图模型等算法来解决。以关联算法为例,通过分析资讯阅读的前后关系,给用户推荐资讯中事件的后续相关报道。排序策略(含重排序)等均以提升转化率为主。

(7)阶段风险及应对

  • 基于模型推荐的实时性问题。基于模型的推荐方式基本上都会包括离线训练和在线推荐两部分,离线训练依靠大量的数据形成推荐的模型,然后在在线推荐过程中由于使用了模型可能会导致实时性产生延迟,但是可以通过以下两个方面解决:一方面在不影响效果的情况下尽量采用传统机器学习的方式(如果是能做到降维、线性推荐则更好);另一方面若采用深度学习模型,则在线推荐的服务器配置GPU。
  • 基于模型推荐的增量训练问题。虽然基于模型的推荐能够比较精准的推荐,但是如何将用户实时或者近期新增的喜好信息反馈给训练好的模型,从而保证推荐系统更及时的了解用户。解决此问题虽然可以简单的采用增加模型的训练频率的方式,但是这样服务器的负荷量则会增加,因此可以采用模型+增量模型的形式,增量模型通过简单的少量近期数据生成模型(类似于深度学习的迁移学习)。
本文为概要简述,未尽事宜,欢迎探讨。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值