推荐算法愈来愈多的运用到咱们的生活中,特别是在网站中,当你浏览大大小小的网站,你的行为被时刻记录着,并根据一些依据对你推荐一些物品。下面会简单介绍一下推荐算法,后续会继续对这些算法进行补充。算法
1.协同过滤算法机器学习
2.基于流行度的算法函数
3.基于模型的算法学习
4.混合算法测试
协同过滤算法网站
协同过滤算法有两种,一种是基于用户的协同过滤算法,一种是基于物品的协同过滤算法。spa
该算法主要是找出用户的类似用户,将类似用户浏览或购买而用户没有购买的商品推荐给用户。.net
基于用户的协同过滤算法流程以下:blog
1.分析各个用户对item的评价(经过浏览记录、购买记录等);博客
2.依据用户对item的评价计算得出全部用户之间的类似度;
3.选出与当前用户最类似的N个用户;
4.将这N个用户评价最高而且当前用户又没有浏览过的item推荐给当前用户。
以下图:
基于物品的协同过滤算法原理为在计算邻居时采用物品自己,而不是从用户的角度,即基于用户对物品的偏好找到类似的物品,而后根据用户的历史偏好,推荐类似的物品给他。基于物品的协同过滤算法原理大同小异,只是主体在于物品:
1.分析各个用户对item的浏览记录。 依据浏览记录分析得出全部item之间的类似度;
2.对于当前用户评价高的item,找出与之类似度最高的N个item;
3.将这N个item推荐给用户。
以下图:
该方法比较简单粗暴,主要是把当前的流行物品或者时间推荐给用户,不考虑用户的偏好,这种算法比较适合应用在新用户上,这类用户没有任何历史数据,能够直接给他们推荐流行的东西,根据用户的点击,再进一步推荐。
基于模型的方法有不少,用到的诸如机器学习的方法也能够很深,这里只简单介绍下比较简单的方法——Logistics回归预测。咱们经过分析系统中用户的行为和购买记录等数据,获得以下表:
表中的行是一种物品,x1~xn是影响用户行为的各类特征属性,如用户年龄段、性别、地域、物品的价格、类别等等,y则是用户对于该物品的喜爱程度,能够是购买记录、浏览、收藏等等。经过大量这类的数据,咱们能够回归拟合出一个函数,计算出x1~xn对应的系数,这便是各特征属性对应的权重,权重值越大则代表该属性对于用户选择商品越重要。
在拟合函数的时候咱们会想到,单一的某种属性和另外一种属性可能并不存在强关联。好比,年龄与购买护肤品这个行为并不呈强关联,性别与购买护肤品也不强关联,但当咱们把年龄与性别综合在一块儿考虑时,它们便和购买行为产生了强关联。好比(我只是好比),20~30岁的女性用户更倾向于购买护肤品,这就叫交叉属性。经过反复测试和经验,咱们能够调整特征属性的组合,拟合出最准确的回归函数。最后得出的属性权重以下:
基于模型的算法因为快速、准确,适用于实时性比较高的业务如新闻、广告等,而如果须要这种算法达到更好的效果,则须要人工干预反复的进行属性的组合和筛选,也就是常说的Feature Engineering。而因为新闻的时效性,系统也须要反复更新线上的数学模型,以适应变化。
一般推荐算法中会使用多种算法的融合,每每会获得比单一算法更好的结果,算法融合可使用加权融合,赋予不一样算法不一样的权重,从而获得不一样的结果。
以上几类推荐算法中,基于流行度的算法比较适合使用在新用户群体中,不须要分析用户行为数据,就能够直接进行推荐。基于用户的协同过滤算法比较适合使用在用户数目较少的状况下,用户数过大会使得计算量过大。基于物品的协同过滤算法比较适合使用在用户数目大的状况下。基于模型的推荐算法,可使用多种不一样的模型来进行推荐,具体须要根据实际状况。在条件容许的状况下,可使用模型融合算法,或许会获得更好的结果。
参考博客:https://blog.csdn.net/u010670689/article/details/71513133/
参考博客:https://blog.csdn.net/xiaokang123456kao/article/details/74735992