初谈推荐算法:推荐基本流程

所谓的推荐算法啊就是利用用户的一些行为,通过一些数学算法,推测出用户可能喜欢的东西
本章博主主要介绍推荐的整个流程
初谈推荐算法:推荐基本流程_第1张图片
从上图可以看出在真个推荐的过程中有以下几大角色:用户、搜索引擎、数据库、排序模型。
下面具体介绍一下这几大角色:
1、用户:用户当然是指行为发起的人。
2、 推荐引擎系统:用来响应用户的请求,根据用户的行为、兴趣和不同的推荐策略返回给用户有限个物品列表。
其中推荐物品列表有两大来源:
1)推荐引擎自身计算,这就需要强大的计算能力,一般在中小公司,物品不是很多的情况下,可通过自身计算获取推荐列表。
2)来自后端数据库,一般像比较大的公司,数以亿计的物品信息就会存储在一个分布式的数据库上。推荐引擎实时的请求数据可以,通过层层多虑(打分,时间段,低于的限制,大部分物品被过滤掉),最后推荐出精品,这些精品都是经过激烈竞争后胜出的。
3、Nosql数据库:数据库中存储了大量的候选物品信息。搜索引擎不管请求那个数据库,都会有返回,不过每个数据库返回的候选物品是不一样的。
每个数据库存储的是经过不同的算法获取的候选物品,如图中通过三种方式获取候选物品信息
1)通过CB(基于内容的推荐算法)算法得到候选集
2)通过CF(协同过滤算法)算法得到的候选集
3)通过ALS(矩阵分解)得到的候选集
经过不同算法得到的候选集物品信息在灌入数据库之前必须经过一次排序和筛选,只有这样才能保证数据库中的数据具有意义,每个数据库都是一个信号(signal)
4、排序模型:排序模型主要是用来对召回的候选物品在去重之后进行排序,以便选出Top-N,展现给用户。
整个推荐常见就行一个金字塔模型:
初谈推荐算法:推荐基本流程_第2张图片
金子塔底部是一个召回阶段,顶部一个排序阶段
召回的目的:是为了提供更多的候选物品
筛选的目的:是过滤掉比较差的物品(和当前推荐场景距离比较远的)。
筛选有两个阶段粗排和精排,其中粗排是在推荐引擎从数据库召回数据的过程中,精排是在通过搜索引擎去重之后,根据权重排序返回Top-N给用户的过程。

下面以《刘德华的电影》为例来讲述一下推荐的过程:
1、用户点击了《刘德华的电影》
2、推荐引擎从数据库中召回和刘德华相关的物品,假设从CB算法的Nosql数据库中召回1000个候选物品,从CF算法的Nosql数据库中召回了500个候选物品,从ALS算法的Nosql数据库中召回了200个候选武平,那么推荐引擎从整个数据库中召回了1700个候选物品。
3、推荐引擎获取的这1700个候选物品中肯定会有重复的物品,对1700个候选物品进行过滤,假设过滤后剩余1000个候选物品。
4、推荐引擎对去重之后的1000个候选物品进行排序
5、对排序后的数据取Top-N就可以获取Top-N的推荐了。

你可能感兴趣的:(算法)