头条资讯网_今日热点_娱乐才是你关心的时事

今日热点 时事资讯
娱乐头条才是你关心的新闻
首页 > 头条资讯 > 科技

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

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

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

留意:看此篇文章的小伙伴需要有一定的java基础,以及elasticsearch知识哦推荐架构以下是常规的推荐系统架构图

上面架构图的流程从2个维度方面看从用户哀求路径1)用户终端发起哀求,传入核心标记UserId由于有些平台中会有许多地方有推荐业务,如:购物车下面【精品推荐】,商品详情里面的【猜你喜欢】,商品列表中的【热点推荐】等;所以终端会常常带上场景这个参数,不同的场景会对应不同模型数据2)后台接口再发起调用推荐服务3)任何的精准推荐都会三个阶段:召回、排序、业务重排;

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

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

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

上面的推荐架构图中:1)我们通过在终端进行埋点,收集用户行为日志;存储到大数据平台。

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

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

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

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

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

算法模型什么是算法?什么是模型?给大家举个小学一年级的题目题目:找出规律,填写下面的值1、3、5、7、9、11、13、?、?

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

看到上面的题目,我们来分解一下;我们已经知道一组数据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为测试数据在推荐系统中这个整个过程就可以理解为模型的练习,由于真实的场景中数据维度许多,不可能像我们这个简朴的例子;真实场景中我们需要用到的如协同过滤LFM、ALS算法、LR逻辑回归等算法,

总结一下算法就是一种解决问题的思路算法公式。

模型:理解为一段程序是通过算法+数据进行分析过程的一段程序。需要数据作为入参,程序体作为算法;执行后返回详细的推荐数据。所以数据量、维度的多少会直接影响模型的准确率下面我们来先容一下在推荐系统中常用到的算法传统推荐算法我们仍是来举个案例,有个图书平台,需要开发个推荐系统,现在拥有的已知数据如下

我们发现上图中列为书名,行为用户;里面的值1代表已读。值为空的代表没有读过。那么现在基于这些数据如何进行推荐呢?我们来看看传统的推荐思路基于用户的协同过滤算法(UserCF)本质从用户角度出发首先需要找到和他们看了同样书的其他用户,然后给他们推荐那些用户喜欢的其他书,也就是从用户共性出发。这种思路专业术语就是UserCF如上面的例子,张三和李四都看了《java编程思惟》,那么系统就以为二者有共性。

所以就推荐给张三,李四曾经看过的书《孙子兵法》。

那推荐给李四的书,即是张三曾经看过的《人人都是产品经理》基于物品的协同过滤算法(ItemCF)本质从商品角度出发需要给他们推荐和他们已经看的书相似的书。

就是从书的共性出发,张三看了《JAVA编程思惟》,属于IT方面的书籍,那么系统可以推荐给张三《大前端自我涵养》或《游戏开发》。这种思路专业术语就是ItemCFUserCF与ItemCF从两个算法的原理可以看到,UserCF的推荐结果着重于反映和用户爱好相似的小群体的热门,而ItemCF的推荐结果着重于维系用户的历史爱好。换句话说,UserCF的推荐更社会化,反映了用户所在的小型爱好群体中物品的热点程度,而ItemCF的推荐更加个性化,反映了用户自己的爱好传承。

UserCF合用场景1)在新闻网站中,用户的爱好不是特别细化,绝大多数用户都喜欢看热点的新闻。即使是个性化,也是比较粗粒度的,好比有些用户喜欢体育新闻,有些喜欢社会新闻,UserCF可以给用户推荐和他有相似兴趣的一群其他用户今天都在看的新闻,这样在捉住热门和时效性的同时,保证了一定程度的个性化。2)UserCF适合用于新闻推荐的另一个原因是从技术角度考量的。由于作为一种物品,新闻的更新非常快,每时每刻都有新内容泛起,而ItemCF需要维护一张物品相关度的表,假如物品更新很快,那么这张表也需要很快更新,这在技术上很难实现。绝大多数物品相关度表都只能做到一天一次更新,这在新闻领域是不可以接受的。而UserCF只需要用户相似性表,固然UserCF对于新用户也需要更新相似度表,但在新闻网站中,物品的更新速度远远快于新用户的加入速度,而且对于新用户,完全可以给他推荐最热点的新闻,因此UserCF显然是利大于弊。

ItemCF合用场景1)在图书、电子商务和片子网站,好比亚马逊、豆瓣、Netflix中,ItemCF则能极大地发挥优势。首先,在这些网站中,用户的爱好是比较固定和持久的。这些系统中的用户大都不太需要流行度来辅助他们判定一个物品的好坏,而是可以通过自己认识领域的知识自己判定物品的质量。因此,这些网站中个性化推荐的任务是匡助用户发现和他研究领域相关的物品。此外,这些网站的物品更新速度不会特别快,一天一次更新物品相似度矩阵对它们来说不会造成太大的损失,是可以接受的。

总结上面先容了UserCF和ItemCF协同算法,也是在之前常用的推荐算法;不外这几年又出来了一个协同算法LFM(隐语义模型),隐语义模型的核心思想是通过隐含特征(latentfactor)联系用户爱好和物品。

举个例子,用户A的爱好涉及侦探小说、科普图书以及一些计算机技术书,而用户B的爱好比较集中在数学和机器学习方面。

要给A和B推荐图书:对于UserCF,首先需要找到和他们看了同样书的其他用户(爱好相似的用户),然后给他们推荐那些用户喜欢的其他书;

对于ItemCF,需要给他们推荐和他们已经看的书相似的书,好比作者B看了许多关于数据挖掘的书,可以给他推荐机器学习或者模式识别方面的书。

实在上面的推荐缺少了用户爱好和物品之间的关系,也就是用户A和用户B之间有一定的相似度,但不是完全一样如:用户A爱好侦探小说,计算机技术;用户B爱好侦探小说,经济学;那很有可能会把经济学类的书推荐给用户A。

那如何解决呢?我们只要加上用户爱好和物品之间的关系就可以了。可以先对书和物品的爱好进行分类。对于某个用户,首先得到他的爱好分类,然后从分类中挑选他可能喜欢的物品。

这个基于爱好分类的方法大概需要解决三个问题:(1)如何给物品进行分类?

(2)如何确定用户对哪些类的物品感兴趣,以及感兴趣的程度?

(3)对于一个给定的类,选择哪些属于这个类的物品推荐给用户,以及如何确定这些物品在一个类中的权重?

这个就是LFM所要解决的问题,我们会在下一篇文章中给大家进行分享,谢谢!!!

未经允许不得转载:头条资讯网_今日热点_娱乐才是你关心的时事 » 千人千面精准推荐之大白话讲解协同算法

分享到:更多 ()
来源:生活里的创意 编辑:科技

评论

留言/评论 共有条点评
昵称:
验证码:
匿名发表