如何设计一款百万日活的推荐系统(1)—大智慧RES从0到1实战

访客4年前黑客工具637

编辑导语:百万日活的推荐系统是许多人可望而不行求的,其系统的设计也并不简朴,那么该如何设计这样一款推荐系统呢?本文作者基于本身的实际搭建履历,为我们分享了他的产物设计过程,但愿可以或许辅佐各人在系统搭建的进程中少走一些弯路。

如何设计一款百万日活的推荐系统(1)—大伶俐RES从0到1实战

媒介

作者简介:本人3年金融行业产物履历,主攻python数据挖掘和呆板进修。今朝就职于上海大伶俐,主要认真大数据平台、用户画像、推荐搜索、常识图谱等偏向 。曾参加过ontrade数字金融生意业务所、区块链钱包、仙人掌股票证券投顾平台等多个项目。独自成立了datagrowth.cn数据驱动增长自媒体网站。

本系列专栏主要报告本人从0到1搭建RES推荐系统的一些履历,记录下产物设计的心途经程,以此鼓励本身不绝摸索新常识。

与市面上平常而谈的博客差异的是,本文主要从产物的角度,团结行业特性,分解踩过的坑。

一、产物架构

任何一款再简朴的产物,都需要贸易模式和产物架构的设计。架构不需要何等巨大、花哨,深入领略行业配景,适合产物筹划才是最重要。

如何设计一款百万日活的推荐系统(1)—大伶俐RES从0到1实战

用visio画的一个较量满足的产物图,根基能把要表达的思路全部画了出来。

差异于前任设计的基于法则的1.0版本,这次重构主要在于搭建一个可扩展的体系,同时引入数据驱动、算法赋能,而不是拍脑壳抉择。

从产物的角度看推荐,应属于业务应用层。

一切的一切,都是基于底层埋点到阐明流程、大数据平台、用户标签画像、自然语言处理惩罚等基本处事搭建较为完善的前提下开展。

推荐的整体流程分为召回、过滤、排序(因为数据量不长短常大,所以不需要粗排、精排)、重排序,这次主要讲召回层最易领略但最重要的热门召回。

二、整体流程

如何设计一款百万日活的推荐系统(1)—大伶俐RES从0到1实战

流程首先思量闭环:从app用户行为发生、大数据及时统计,到发生热门召回、过滤、排序后,形成热门推荐处事;又通过用户行为来评估推荐结果【产物指标,如PV/UV、人均阅读时长、转化率等 】。

按照整体流程,发明焦点在于热门值的计较方案。

新闻入到资讯的es库中,系统赋予一个初始热度值;进入推荐列表后,用户的点击、分享、点赞等交互行为可以晋升新闻的热度值。由于新闻有较强的时效性,新闻宣布后,热度非线性衰减。

资讯热度分=(初始热度值+用户交互发生热度值-低质量处罚分(暂无))*时间衰减系数。

1. 初始热度值

1)差异类此外文章给与差异的权重

按照用户数据反馈,选择个中某些热门主题范例的文章,同时综合思量高质量的类目,给与较高的权重。

种别初始热门值:

如何设计一款百万日活的推荐系统(1)—大伶俐RES从0到1实战

2)人工构建热门词库

新媒体运营的专家是最懂行业,最懂当前热点的了,引入人工法则,维护一张热门词库。

如何设计一款百万日活的推荐系统(1)—大伶俐RES从0到1实战

如何设计一款百万日活的推荐系统(1)—大伶俐RES从0到1实战

对文章举办提取要害字,举办匹配,按照匹配水平适当晋升热门权重。提取要害字的算法也很简朴,操作textrank,补充tf-idf无法提取上下文干系的劣势,取共现词topN。

def get_keywords(self,conntent):
key_words1 = jieba. *** yse.extract_tags(sentence=conntent,topK=50,withWeight=True,allowPOS=[‘n’,’v’,’f’])
key_words2 = jieba. *** yse.textrank(sentence=conntent,topK=50,withWeight=True,allowPOS=[‘n’,’f’,’v’])
key_words1 = dict(key_words1)
key_words2 = dict(key_words2)
df1 = pd.DataFrame([key_words1]).T
df2 = pd.DataFrame([key_words2]).T
#取两者共现词作为要害字,取内毗连
df = pd.merge(df1,df2,how=’inner’,left_index=True,right_index=True).head(10)
#取tf-idf算法的权重作为真实权重
df=df.drop(df.columns[1], axis = 1)
#重设索引
df.reset_index(inplace=True,drop=False)
df.columns=[‘feature’,’weight’]
print(df)
return df

作为要害词,虽然前置事情有去除停用词,后置事情有同义词合并等等,所以NLP的底层基本本领很重要。

3)自动发明热词

相关文章

需求分析:豆瓣用户期待的“屏蔽功能”,有必要做吗?

需求分析:豆瓣用户期待的“屏蔽功能”,有必要做吗?

编辑导读:“屏蔽”成果是豆瓣许多用户都等候上线的一个成果,作者通过对用户需求的梳理,对做“屏蔽成果”的大概性举办了阐明,并给出了本身一些思考和发起,与各人分享。 之前在微博和豆瓣里看到有不罕用户提出...

时间选择控件在不同场景下的应用

时间选择控件在不同场景下的应用

编辑导语:我们在利用许多产物时,都可以或许打仗到时间选择控件,这也是产物设计中常用的一个元素,也因此衍生出了各类百般的形式。时间选择控件的应用也需要代入到产物对应的实际场景,从而去选择最得当的时间选择...

从医护职责出发,聊聊数据分析、数据挖掘、数据运营的区别

从医护职责出发,聊聊数据分析、数据挖掘、数据运营的区别

数据阐明、数据挖掘和数据运营到底有什么区别?本文作者把从医护人员职责出发,形象地对这三者干系举办了梳理说明,一起来看看~ 各人都知道,要当大夫需要读一车的书,至少博士以上学历还得实习nnn年。然而这...

用平常心解读:CNNIC的9亿网民大数据报告

用平常心解读:CNNIC的9亿网民大数据报告

“全国9亿网民,超七成月入不敷5000。”这是中国互联网络信息中心(CNNIC)第45次宣布《中国互联网络成长状况统计陈诉》,让我们来针对一些我们所存眷的数据举办思考息争读 各大媒体都报道了“中国网...

猿辅导们有“缘”难“分”

猿辅导们有“缘”难“分”

编辑导语:固然线上教诲由来已久,可是本年疫情的溘然发作,将线上教诲行业推向了巅峰。个中,猿向导成为了行业巨头,入选“CCTV品牌强国工程”,成为2020年央视春晚特约相助同伴。本文作者为各人总结了:在...

一个套路,拆解常见数据分析需求

一个套路,拆解常见数据分析需求

编辑导语:在举办一项业务时,数据阐明往往是很重要的,业务人员会提出较量多的阐明需求,这时数据阐明师需要举办分类和阐明;本文作者按照本身的履历,整理了一套界说问题的要领,但愿对你有辅佐。 一、现实与K...