千人千面精准推荐机制之大白话细解协同算法

相信很多小伙伴都听说过大数据、AI推荐千人千面等高大上的话语;也经常看到很多App应用中,会经常推荐一些商品给我们,什么猜你喜欢,重点推荐等业务。

很多小伙伴应该也去网上进行了了解,发现真的是一头雾水,尤其看到了一些算法时,那些数学公式看了就头疼。今天就尝试着介绍一下精准推荐的整体架构,以及核心算法的实现原理,尽量能让小伙伴们能够看懂。

注意:看此篇文章的小伙伴需要有一定的java基础,以及elasticsearch知识哦

推荐架构

以下是常规的推荐系统架构图

千人千面精准推荐机制之大白话细解协同算法

上面架构图的流程从2个维度方面

从用户请求路径

1)用户终端发起请求,传入核心标记UserId

因为有些平台中会有很多地方有推荐业务,如:购物车下面【精品推荐】,商品详情里面的【猜你喜欢】,商品列表中的【热门推荐】等;所以终端会经常带上场景这个参数,不同的场景会对应不同模型数据

2)后台接口再发起调用推荐服务

3)任何的精准推荐都会三个阶段:召回、排序、业务重排;

这三个是什么意思呢?弄个图简要说明就明白了

千人千面精准推荐机制之大白话细解协同算法

通过已经步骤,我们就可以达到推荐的功效,千人千面;整个过程中的最核心的就是召回算法、排序算法;我们再从后台方面去看,数据分析维度的路径。

从数据分析路径

任何的分析都需要有素材,素材是什么?其实就是这几年小伙伴们听的最多的大数据;何为大数据?简单理解就是数据量多,数据维度多。我们可以通过这么多的数据去进行分析。

上面的推荐架构图中:

我们通过在终端进行埋点收集用户行为日志;存储到大数据平台。

集合业务数据,收集用户偏好行为数据,如:收藏、点赞、评论等;存储到大数据平台。

基于大数据平台的数据,通过一些算法对数据进行分析,得到一个训练模型

通过训练出来的模型,就可以获得相关的推荐数据。

把获得的推荐数据保存到mysql/redis等持久化工具中。

为了达到用户请求性能,会把推荐的数据提前存储到数据库中;保证用户体验。

算法模型

什么是算法?什么是模型? 给大家举个小学一年级的题目

Plain Text

题目:找出规律,填写下面的值

1、3、5、7、9、11、13、?、?

大家一看就知道答案了是吧,我们这里不是讨论的最终答案是什么,我们来分析一下答案是怎么来的?

看到上面的题目,我们来分解一下;我们已经知道一组数据

Plain Text

1、3、5、7、9、11、13

这些数据其实相当于我们采集过来的已知数据。

上面的题目现在我们需要根据已知的数据,推测出下2个数字是多少?

即相当于我们知道了用户的行为数据,然后预测推荐商品给用户。

算法

根据上面的题目我们一看就知道是第二个数比第一个数大2,即 x2 = x1 + 2;在数学上面专业名词,就是等差数列。这个就是简单的算法,也可以理解为算法公式。

训练模型

在我们推荐系统中会有个模型这个概念,那什么是模型呢? 我们继续沿用上面的题目。我们深入思考一下,为什么我们知道算法公式是 x2 = x1 + 2?

是不是因为我们发现 1和3之间相差2,然后在发现3和5之间相差2,5和7相差2,一直到11和13之间相差2;所以我们决策,我们发现了这列数据的规律,就是x2 = x1 + 2。

那在我们推荐系统中,训练模型的思路也是这样的,我们先从采集的数据中拿出部分数据如:1、3、5、7。我们先从这个部分数据中寻找规律,我们得到了类似x2 = x1 + 2的公式

然后我们在利用这个公式推导出剩余的已知数据,如:我们可以根据这个公式推导出后面的9、11、13。然后发现和我们数据是一致的,我们就可以认为这个算法可行

上面的第一次拿出来的部分测试专业术语就是训练数据,剩余的数据就叫测试数据

1、3、5、7为训练数据;9、11、13为测试数据

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygyyg.html