导航:首页 > 源码编译 > 推荐算法如何优化次留

推荐算法如何优化次留

发布时间:2022-07-31 04:21:19

1. 优化算法是什么呢

优化算法是指对算法的有关性能进行优化,如时间复杂度、空间复杂度、正确性、健壮性。

大数据时代到来,算法要处理数据的数量级也越来越大以及处理问题的场景千变万化。为了增强算法的处理问题的能力,对算法进行优化是必不可少的。算法优化一般是对算法结构和收敛性进行优化。

同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。

遗传算法

遗传算法也是受自然科学的启发。这类算法的运行过程是先随机生成一组解,称之为种群。在优化过程中的每一步,算法会计算整个种群的成本函数,从而得到一个有关题解的排序,在对题解排序之后,一个新的种群----称之为下一代就被创建出来了。首先,我们将当前种群中位于最顶端的题解加入其所在的新种群中,称之为精英选拔法。新种群中的余下部分是由修改最优解后形成的全新解组成。

常用的有两种修改题解的方法。其中一种称为变异,其做法是对一个既有解进行微小的、简单的、随机的改变;修改题解的另一种方法称为交叉或配对,这种方法是选取最优解种的两个解,然后将它们按某种方式进行组合。尔后,这一过程会一直重复进行,直到达到指定的迭代次数,或者连续经过数代后题解都没有改善时停止。

2. 论淘宝搜索推荐算法排序机制及2021年搜索的方向。

[写在前面]淘宝搜索引擎至今反复多次,搜索顺序也从最初的统计模型升级到机械学习模型,到2010年为止没有标签没有基础标签,随着计算能力的提高,2010年后开始挖掘用户的基础标签,从3年到2013年开始使用大规模的机械学习和实时特征
但你有没有想过为什么2016-2017年的两年是各种各样的黑搜索盛行的一年,为什么今天几乎消失了?
最根本的原因是从统计算法模型到机械学习模型的转型期。
说白了,这时不收割就没有收割的机会。因为统计模型即将退出历史舞台。
因此,各路大神各自扩大了统计模型算法中的影响因素。统计算法无论在哪里,点击率和坑产都很容易搜索。
那两年成了中小卖家的狂欢盛宴,很多大神的烟火也是旺盛的。
今天推荐算法的第三代使用后,加上疫情的影响进行了鲜明的比较,真的很感慨。
淘宝真的没有流量了吗?电器商务真的做不到吗?还是大家的思维没有改变,停留在2016-2017年的黑搜宴会上不想醒来?
2017年、2018年、2019年是淘宝推荐算法反复最快的3年,每年的算法升级都不同,整体上到2019年9月为止统计算法模型的影响因素还很大,从2019年下半年开始第三代推荐算法后,全面的真正意义进入了以机械学习模型为中心的推荐算法时代。
各路大神也无法验证,加上百年疫情的影响,很多大神的隐蔽布也泄露了。
基本上以统计模型为主,训练基本上没有声音,典型的是坑产游戏。
如果现在还能看到的话,基本上可以判断他不是在训练,而是在制作印刷用纸,一定会推荐使用资源,资源是多么安全。
刷子的生产增加真的没有效果吗?不是我以前的文章说:不是不行,而是从坑产的角度思考,而是从改变竞争环境的角度思考,用补充书改变竞争环境,改变场地,有新的天地,任何手段都要为商业本质服务。
正文
概述统计算法模型时代。
统计模型时代搜索引擎的排名是最原始的排名思考,如果你的类别不错,关键词比较正确,就能得到很大的流量,当时产品需求少,只要上下架的优化就能使产品上升。
到2016年为止没有坑产游戏吗?黑色搜索的效果不好吗?其实,什么时候坑产是最核心的机密,谁来教大家,什么时候教的最多的是类别优化,关键词优化,大部分优化都围绕关键词,电器商的老人想起了你什么时候得到关键词的人得到了世界。
有人告诉我做坑产,关键词找到生意也来了。什么时候知道坑产也没有人给你刷子,大规模的补充书也出现在黑色搜索盛行的时期。
为什么关键词者得天下?
搜索关键词是用户目前意图最直观的表达,也是用户表达意图最直接的方式。
搜索的用户购物意图最强,成交意愿也最强,现在搜索也是转化率最高的流量来源。
统计时代关键词背后直接依赖的是类别商品,只要制作类别和关键词分词即可,哪个时代最出现的黑马通常是类别机会、关键词机会、黑科学技术机会。
最基本的是商业本质,什么时候产品需求少,没有很多现在的类别,自己找类别,现在想想什么概念。
记得什么时候类别错了,搜索也可以来。如果你的商品点击反馈好的话,错误的类别没有什么影响,现在试试吧
搜索类是搜索的基础。
什么时候能称霸,背后有商业逻辑,用户行为数据好就行了。
但无论如何发展检索都离不开关键词。例如,上述关键词是用户表达意图的最直接的方法,是当前消费者的检索行为和购买行为发生了根本性的变化。
检索依然根据消费者的行为数据和关键词来判断需求,这就是机械学习模型时代。
机器学习模式时代-推荐搜索算法。
现在的商品体积和消费者购物行为的丰富性,统计算法不能满足检索的本质要求。
所以现在搜索引擎开始发展深度学习模式更精细的建模-推荐搜索算法,搜索排名更智能。
在此重点讨论推荐检索算法,
2017、2018、2019是推荐检索算法真正意义发展的3年,3年3个系统版本每年更换一次,很多电器商人都不知道头脑。
推荐检索算法和统计算法模型的最大区别在于,Query的处理能力和算法有召回机制
简单表示推荐算法的程序:
1:对检索关键词进行分词、重写的处理进行类别预判
2:根据用户信息,即用户以前的行为数据记录和预测的性别、年龄、购买力、店铺喜好、品牌喜好、实时行动作等信息存档
3:根据检索用户信息,根据检索用户以前的行为数据检索引擎和预测的性别、年龄、购买力、店铺喜好、品牌喜好、实时行动作为等信息存档3:根据检索用户信息的检索用户信息
也就是说,在第一关召回阶段基本上与统计模型时代的最佳化途径相同,核心是标题分词和类别,现在最大的区别是根据用户信息推荐最佳化,这是标签和正确人群标签图像最佳化的基本意义。
为什么现在一直在谈论标签,谈论人标签图像?入池实际上是为了匹配真正的消费者用户信息,通过直通车测试来判断人群也是为了通过性别、年龄和购买力来优化匹配真正的消费者。
召回机制:
通过构建子单元索引方式加快商品检索,不必经历平台上亿级的所有商品。该索引是搜索引擎中的倒置索引,利用倒置索引初始筛选商品的过程是召回阶段。
在这个阶段,不会进行复杂的计算,主要是根据现在的搜索条件进行商品候选集的快速圈定。
之后再进行粗排和精排,计算的复杂程度越来越高,计算的商品集合逐渐减少,最后完成整个排序过程。
主要召回路径分为
1:语言召回
2:向量召回
这些都是商业秘密不方便的说明,有兴趣的是学习我们的在线会员课程标签重叠游戏6是基于语言和向量召回的基础逻辑实战落地的课程。
下一阶段进入粗行列,粗行列受这些因素的影响:
粗行列作为召回后的第一个门槛,希望用户体验以时间低的模型快速排序和筛选商品,第一关系将过滤到不适合本次检索词要求的商品
为了实现这个目的,首先要明确影响粗排名得分的因素
1:类别匹配得分和文本匹配得分,
2:商品信息质量(商品发布时间、商品等级、商品等级)
3:商品组合得分
点击得分
交易得分卖方服务商业得分
在粗排列框架下,系统粗排列算法根据商品类别的预测得分进行得分
点击得分交易得分
交易得分卖方服务商业得分粗排列框架下,系统粗排列的大排列
最后是精排,检索顺序的主要目标是高相关性、高个性化的正确性。
每个用户的喜好不同,系统会根据每个用户的Query结合用户信息进行召回。然后通过粗排后,商品数量从万级下降到千级。
千级商品经排后直接向用户展示,搜索过程中商品集合的思考和具体变化如下图

前面的召回、粗排主要解决主题相关性,通过主题相关性的限制,首先缩小商品集合和我们的在线会员课程标签
精排阶段系是真正系统推荐算法发挥真正威力时,应根据用户行为反馈迅速进行机械学习建模,判断用户真实性、准确性和可持续控制性。
为什么现在的游戏和黑色技术暂时出现,核心是系统算法模型机械学习模型,系统分析用户有问题,不正确,不稳定,维持性差,可以迅速调整。
也就是说,即使发现脆弱性,研究快速有效的方法,系统也会根据你精排阶段的用户行为迅速分析学习建模,发现模型有问题,你的玩法就结束了。
猜机器学习建模的速度有多快?
想玩黑色的东西早点死去吧。
现在使用的检索顺序模型主要是
CTR模型和CVR模型,具体模型过于复杂也不需要深入,但影响这两种模型的最基本因素是用户行为数据
真的不能假的,假的也不能假的算法模型越来越智能化,算法越来越强,只有回归商业本质才能真正解决算法模型背后真正想解决的问题,算法基于商业逻辑。
2021年搜索向哪个方向发生变化:
2020年电器商人和蚂蚁是不平凡的一年。2020年也是蚂蚁从神坛上拉下来的元年,现在蚂蚁有各种各样的黑色。
基于中小卖家的走势无疑是阿里必须正面面对的现实。
如何让中小卖家回流或留在平台上,搜索该怎么做?
检索一定是基于三方的考虑,买方、卖方和平台本身,现在市场上又开始提倡坑产搜索逻辑,坑产妖风又开始,根据推荐搜索算法逻辑来谈这个问题。
为什么坑产思维是不死的小强,每次危机都会跳出来。
以统计模型为中心的坑产时代是淘宝从2003年到2015年一直使用的搜索算法模型长达13年。
同时也是淘宝和中国网分红的野蛮生长期,统计算法模式让太多电商赚钱。除了
之外,十年的奴役思维已经习惯了,在电器商圈,坑产游戏一定有人相信,其他人不一定被认可。所以,我们夹着尾巴发展的原因,时间真的可以证明一切,不用多说,做自己。
习惯性思维加上特殊时期的赚钱蝴蝶效应,使许多电器商人活在历史的长梦中。正确地说,统计算法模型的真正废除是在2019年下半年。
同学说坑产永远有效,我也这么想。
永远有效的是起爆模型坑产权重驱动和统计算法模型中的坑产排名不同。
起爆模型的坑产要素永远有效,这永远不会改变。
但是,如何有效地加上这个起爆模型的坑产权重,并不像模仿购物的意图那么简单。
坑产游戏在2021年绝对不行。淘宝不会把现在的算法系统换成15年前的。
基于三方利益:
购买者体验
卖方利益
平台的发展
搜索肯定会向高精度和高控制性发展。以标签为中心的用户标签图像仍然是影响流量精度的基本因素。
必须从标签的角度考虑和优化种子组的图像。
通过种子组的图像向相似人扩展到叶类人,业界喜好人最后向相关人扩展也是扩大流量的过程渠道。
基于推荐搜索算法逻辑:
精密排列阶段算法更强,精度更高,转化率更高,持续稳定性更强。
基于中小卖方流通的现状,优化精排阶段并非中小卖方能够简单接触。
推荐算法从搜索排名阶段出现在哪个阶段?
个人判断
一是召回阶段
二是粗排阶段
上述提到召回阶段的算法简单复盖商品为万级,排序规则也比较简单,中小卖方在召回阶段提高精度尤为重要。
在这个万级商品库中,如上下架的权重上升,中小卖方有机会上升到主页,从子单元的索引召回中寻找机会。
或者根据中小卖方的新产品和中小卖方的店铺水平进行特别优先搜索推荐,使中小卖方的新产品在低销售状态下显示,可以实现锦囊算法。
中小卖方有机会搜索主页,不调用用户信息直接打开主页的展示权可能是中小卖方最大的支持。
根据召回阶段的用户行为数据,在粗排阶段以比例融入用户信息,即标签的影响。
在初始召回阶段,类别和分词权重,看业者主图场景反应背后的人们反馈,用系统引导,给中小卖方真正参考的流量方向和成交方向。
谁疯狂地印刷用纸直接关闭黑屋,理解印刷用纸优化竞争场景,从优化人群的角度出发,适当放宽处罚。
通过召回阶段,得到的用户信息会影响粗体结果。在这个阶段,用户信息的权重比例不应该太大,流量卡也不应该太死。
在各检索顺序阶段用户信息,即用户标签对检索的影响权重的问题。
这个方向我的个人观点是可能的。

3. 如何理解算法多样化和算法优化之间的关系

1.算法多样化是“群体多样化”
算法多样化不是要求每个学生都想出或都掌握两种或多种算法。“一个学生也许只想到了一种算法,许多学生也许就有多种算法,实施算法多样法时,教师不必将每一种算法都挖掘出来,更不能凭教师自己的想象给学生列举出千奇百怪、不合逻辑的算法;教师不要生硬地套出学生的多种算法;也不要求学生都要掌握多种算法。”也就是说算法多样化是指“群体多样化”,而不是“个体多样化”。
2.算法多样化与算法优化
有教师认为算法优化就是跟着课本走,就是“算法唯一化”。我们说的算法优化有两条标准,一是尽可能地选择通法、通则,具有一般性,而不是适用于特殊数据的特殊算法。二是尽可能选择便于大多数同学接受、理解、掌握的算法。第二条标准再具体些,又可细化为两个方面:即算理上容易解释,容易理解;算法上简捷,容易操作,容易掌握。有必要指出,这里的“优化”,不同于数学上的“最优化”,它是相对而言的,但又难以或者说不必精确刻画的,其结果还常常不是唯一的。
算法的优化可以是算法多样化的一个后继步骤,算法只有在优化后多样化才有意义。新课标提倡算法的多样化,允许学生选择自己喜爱的算法,使得有些教师误在课堂教学时,片面追求形式各异的算法。虽说培养了学生的思维能力和创新精神,但明显地思维难度太大,导致当堂课的教学内容不能完成。并且一些思维能力欠缺的学生脑筋转不过来,直被说得云里雾里,教学效果不够理想。算法的多样化应是学生在探索算法的过程中自然形成的,而不是生硬地套出多种算法。在引导学生“群体算法多样化”后可以问一句:“你觉得哪种方法比较好?为什么?”这样,学生就在不知不觉中学会优化的方法了。

4. 阅读以下程序,尝试阐述如何对该算法进行优化。(无需写出代码,文字说明即可)如果可以说明详细

可以将三个for循环合并成一个,取最大的n作为循环边界值,内部用if判断来控制三个result的循环次数

5. 如何做好“推荐算法”有哪些常见的错误需要避免

在这里share一下。
1、推荐算法的构成
一套标准的推荐算法,需要四个组成部分
第一:数据源,行为基础数据的筛选;通常,推荐算法来源于用户行为的采集,简单说就是行为数据越丰富,样本覆盖率越全面,结果越准确;如果采样有偏差,那么结果就会有偏差。
举例1:游戏推荐算法,我们之前限于采样技术水平和处理能力,用的是登陆用户玩过的游戏历史,那么推荐结果就会偏重于需要登陆的游戏。而随着技术提升用全部用户玩过的游戏历史,就更全面了。
举例2:在搜索引擎中,对关键词做推荐,有两种方案,一种是基于广告主的竞价记录;另一种是基于网民的搜索行为;前一种专业性更强,噪音小;后一种覆盖面广,噪音大,各有利弊,根据业务诉求选择。
推荐算法,通常来源于用户的行为记录,比如关键词推荐用用户搜索历史,电商推荐用用户购物历史,游戏推荐用玩家玩游戏的历史,然后基于算法给出相关度,再排序展示 ;但这不绝对,也有并非基于用户行为记录的推荐原理,比如基于用户身份特征或其他地区、网络环境等特征,限于篇幅和常见的业务诉求,这里就不展开说明了。
行为基础数据必要时要做一些去除噪音的工作,比如你通过日志分析玩家游戏历史,或用户购物历史,至少知道把各搜索引擎和工具的抓取痕迹过滤出去,否则结果是很难看的。
算法很多种,网上可以搜到很多,就算搜不到,或者搜到了看不懂,自己编也不难的(我就编过,效果自以为还不错,但是的确不如人家专业的算法效果好,所以适合练手,不适合出去吹牛)
不同算法差异还是蛮大的,需要理解一下业务诉求和目标特征来选择。这个我真心不是高手,我们同事讲的算法我都没能理解,就不多说了。微博上的“张栋_机器学习"和"梁斌penny"都是算法高手,大家可以多关心他们的微博。
第三:参数!
绝对不要认为用到了好的算法就可以了!算法往往会基于一些参数来调优,这些参数哪里来?很不好意思的告诉你,大部分是拍脑袋出来的。但是你拍脑袋出来后,要知道去分析结果,去看哪里对,哪里错,哪里可以改,好的算法可以自动调优,机器学习,不断自动调整参数达到最优,但是通常可能需要你不断手工去看,去看badcase,想想是什么参数因素导致的,改一下是否变好?是否引入新的bad case?
第四:校验!
校验一种是人工做盲测,A算法,B算法的结果混淆,选案例集,看哪个效果好;或A参数、B参数混淆,同理测试。通过盲测选择认为更合理的算法、更适宜的参数.
以上是个人认为,做好推荐算法的步骤
下面说一下常见问题
1、以为有了算法就ok了,不对参数优化,不做后续的校验和数据跟踪,效果不好就说算法有问题,这种基本属于工作态度的问题了。
2、对样本数据的筛选有问题,或缺乏必要的噪音筛查,导致结果噪音多。比如你有个推广位天天摆着,导致用户点击多,然后导致后台行为数据里它和谁的关联都高,然后不管用户到哪里都推荐这个玩意,这就是没有足够筛查。
3、热度影响
我说一下最简单的推荐算法
同时选择了A和B的人数作为A与B的关联度。
这个实现最简单,也最容易理解,但是很容易受热度影响
我曾经注意过某个热门图书电商网站,推荐的关联书籍一水的热门书籍,就是这个问题。
这些是非常简单但是又非常容易出现的,关联误区。
4、过于求全
现在也遇到一些朋友,一提到推荐算法或者推荐系统,就说我这个要考虑,那个要考虑,不管是行为记录,还是用户特征,以至于各种节日效应,等等等等,想通过一个推荐系统完全搞定,目标很大,所以动作就极慢,构思洋洋洒洒做了很多,实现起来无从下手,或者难以寸进;我觉得,还是量力而行,从最容易下手的地方开始,先做到比没有强,然后根据不断地数据校验跟踪,逐渐加入其他考虑因素,步步前进,而不要一上来就定一个宏伟的庞大的目标;此外要考虑实现成本和开发周期,对于大部分技术实力没有网络,腾讯,淘宝那么强的公司而言,先把简单的东西搞好,已经足够有效了,然后在运营数据的基础上逐次推进,会越来越好;有些公司是被自己宏大的目标搞的焦头烂额,最后说,哎,没牛人搞不定啊。嗯,反正他们的目标,我显着是搞不定的。就这些,希望有所帮助

6. 矩阵分解在协同过滤推荐算法中的应用

矩阵分解在协同过滤推荐算法中的应用
推荐系统是当下越来越热的一个研究问题,无论在学术界还是在工业界都有很多优秀的人才参与其中。近几年举办的推荐系统比赛更是一次又一次地把推荐系统的研究推向了高潮,比如几年前的Neflix百万大奖赛,KDD CUP 2011的音乐推荐比赛,去年的网络电影推荐竞赛,还有最近的阿里巴巴大数据竞赛。这些比赛对推荐系统的发展都起到了很大的推动作用,使我们有机会接触到真实的工业界数据。我们利用这些数据可以更好地学习掌握推荐系统,这些数据网上很多,大家可以到网上下载。
推荐系统在工业领域中取得了巨大的成功,尤其是在电子商务中。很多电子商务网站利用推荐系统来提高销售收入,推荐系统为Amazon网站每年带来30%的销售收入。推荐系统在不同网站上应用的方式不同,这个不是本文的重点,如果感兴趣可以阅读《推荐系统实践》(人民邮电出版社,项亮)第一章内容。下面进入主题。
为了方便介绍,假设推荐系统中有用户集合有6个用户,即U={u1,u2,u3,u4,u5,u6},项目(物品)集合有7个项目,即V={v1,v2,v3,v4,v5,v6,v7},用户对项目的评分结合为R,用户对项目的评分范围是[0, 5]。R具体表示如下:

推荐系统的目标就是预测出符号“?”对应位置的分值。推荐系统基于这样一个假设:用户对项目的打分越高,表明用户越喜欢。因此,预测出用户对未评分项目的评分后,根据分值大小排序,把分值高的项目推荐给用户。怎么预测这些评分呢,方法大体上可以分为基于内容的推荐、协同过滤推荐和混合推荐三类,协同过滤算法进一步划分又可分为基于基于内存的推荐(memory-based)和基于模型的推荐(model-based),本文介绍的矩阵分解算法属于基于模型的推荐。
矩阵分解算法的数学理论基础是矩阵的行列变换。在《线性代数》中,我们知道矩阵A进行行变换相当于A左乘一个矩阵,矩阵A进行列变换等价于矩阵A右乘一个矩阵,因此矩阵A可以表示为A=PEQ=PQ(E是标准阵)。
矩阵分解目标就是把用户-项目评分矩阵R分解成用户因子矩阵和项目因子矩阵乘的形式,即R=UV,这里R是n×m, n =6, m =7,U是n×k,V是k×m。直观地表示如下:

高维的用户-项目评分矩阵分解成为两个低维的用户因子矩阵和项目因子矩阵,因此矩阵分解和PCA不同,不是为了降维。用户i对项目j的评分r_ij =innerproct(u_i, v_j),更一般的情况是r_ij =f(U_i, V_j),这里为了介绍方便就是用u_i和v_j内积的形式。下面介绍评估低维矩阵乘积拟合评分矩阵的方法。
首先假设,用户对项目的真实评分和预测评分之间的差服从高斯分布,基于这一假设,可推导出目标函数如下:

最后得到矩阵分解的目标函数如下:

从最终得到得目标函数可以直观地理解,预测的分值就是尽量逼近真实的已知评分值。有了目标函数之后,下面就开始谈优化方法了,通常的优化方法分为两种:交叉最小二乘法(alternative least squares)和随机梯度下降法(stochastic gradient descent)。
首先介绍交叉最小二乘法,之所以交叉最小二乘法能够应用到这个目标函数主要是因为L对U和V都是凸函数。首先分别对用户因子向量和项目因子向量求偏导,令偏导等于0求驻点,具体解法如下:

上面就是用户因子向量和项目因子向量的更新公式,迭代更新公式即可找到可接受的局部最优解。迭代终止的条件下面会讲到。
接下来讲解随机梯度下降法,这个方法应用的最多。大致思想是让变量沿着目标函数负梯度的方向移动,直到移动到极小值点。直观的表示如下:

其实负梯度的负方向,当函数是凸函数时是函数值减小的方向走;当函数是凹函数时是往函数值增大的方向移动。而矩阵分解的目标函数L是凸函数,因此,通过梯度下降法我们能够得到目标函数L的极小值(理想情况是最小值)。
言归正传,通过上面的讲解,我们可以获取梯度下降算法的因子矩阵更新公式,具体如下:

(3)和(4)中的γ指的是步长,也即是学习速率,它是一个超参数,需要调参确定。对于梯度见(1)和(2)。
下面说下迭代终止的条件。迭代终止的条件有很多种,就目前我了解的主要有
1) 设置一个阈值,当L函数值小于阈值时就停止迭代,不常用
2) 设置一个阈值,当前后两次函数值变化绝对值小于阈值时,停止迭代
3) 设置固定迭代次数
另外还有一个问题,当用户-项目评分矩阵R非常稀疏时,就会出现过拟合(overfitting)的问题,过拟合问题的解决方法就是正则化(regularization)。正则化其实就是在目标函数中加上用户因子向量和项目因子向量的二范数,当然也可以加上一范数。至于加上一范数还是二范数要看具体情况,一范数会使很多因子为0,从而减小模型大小,而二范数则不会它只能使因子接近于0,而不能使其为0,关于这个的介绍可参考论文Regression Shrinkage and Selection via the Lasso。引入正则化项后目标函数变为:

(5)中λ_1和λ_2是指正则项的权重,这两个值可以取一样,具体取值也需要根据数据集调参得到。优化方法和前面一样,只是梯度公式需要更新一下。
矩阵分解算法目前在推荐系统中应用非常广泛,对于使用RMSE作为评价指标的系统尤为明显,因为矩阵分解的目标就是使RMSE取值最小。但矩阵分解有其弱点,就是解释性差,不能很好为推荐结果做出解释。
后面会继续介绍矩阵分解算法的扩展性问题,就是如何加入隐反馈信息,加入时间信息等。

7. 推荐算法如何提前划分制造同类目日志

做推荐算法的质量工作将近一年,这一年尝试了很多东西,踩了不少坑,也对推荐的评测工作稍微有了些自己的心得,现在分享出来,希望能和做这块工作的同学一起交流、探讨,也欢迎多拍砖,多提意见。

推荐系统

目前推荐技术的应用已经非常较普及了,新闻、商品、问答、音乐,几乎都会用到推荐算法来为你呈现内容。下面是淘宝、知乎、微博三个app的推荐模型,可以看到推荐都在非常重要的位置。

在介绍推荐算法评测之前,我先简单说下推荐系统,这里我以商品为例,简单描述下推流程,让大家更明白一些,一般推荐主要包含以下步骤:
召回->打分排序->透出

召回

召回阶段通常的手段是协同过滤比较场景的i2i,u2i等这种x2x(有兴趣可以看下我写的基于itembase的推荐),也有使用embedding的方式通过向量之间的距离进行召回。以i2i为例,假如现在要针对我推荐一个商品,那么首先要找到我感兴趣的物品 ,这些数据是通过我的历史行为来进行获取,比如拿到我最近一段时间内的点击、加购、收藏、购买的物品,将这些商品做为trigger进行召回,协同算法的具体就不再这里叙述了,有兴趣可以看下链接,最终我们按照协同过滤算法算出商品之间的相似分值,然后按照一定数量进行截断,因为这里截断也是依靠分数来进行的,所以一般这一步也称粗排。这样召回截断就完成了。

打分

召回完商品后,我们需要对这些商品进行再一次的精排,这里需要用模型来预估ctr,一般情况下LR、GBDT、FM用的比较多,这里深度网络相对用的少,主要为了考虑到性能,尤其是rt,因为绝大部分的精排都是需要实时预测的,所有对耗时有一定的要求。继续说下模型预测的步骤,首先针对召回的商品进行特征的补充,例如该商品的一级类目、叶子类目(一级类目代表比较,叶子类目代表最细分的类目)、被多少用户购买等,然后再加入人的特征,例如性别、年龄、收入、对类目的偏好等,然后将这些信息做为feature,用模型进行预测,然后根据模型预测的结果进行排序,输出。

模型

打分过程中的模型是需要提前训练和部署,训练集的来源就是用户的实时行为加上用户和商品的特征。feature的构成是用户的特征和商品的特征,label则是用户是否点击了该商品。

质量方案

接下来说下如何保证这块的质量。由于推荐系统最终对用户需要提供实时的服务化,因此免不了有工程端的技术需要一起配合。因此我这块主要分为两个维度来开展,一方面是工程端的质量保证,一方面是算法侧的质量保证。

工程端质量

这一块可以将算法当成一个黑盒子,只把他当成一个有结果返回的接口。针对这方面前人已经有了丰富的经验,我们可以做接口的单元测试和冒烟测试,另外就是压测,在预估的qps下看rt是否满足业务方的要求,load是否过大,超时和错误的比例是否符合一定的预期。这里就不细说了,重点说说第二部分。

算法端质量

这里我再进行细分一下,分为三部分介绍:算法数据、算法模型、算法效果;

算法数据:

大家都知道算法在做训练前数据的处理部分非常的重要,有兴趣可以看下特征工程相关的内容,数据的来源,特征的构造,数据抽取、加工整个的过程都有可能会出现错误,而且数据一般都是存储在分布式系统数据库里,因此需要借助类似hive这样的工具将sql转换成MapRece的任务去进行离线的计算,离线任务的产出通常会耗费不少的时间,而对于一些日更新的模型通过对数据对产出时间有一定的要求。因此数据这块最主要的保证点为:数据本身的质量,和数据的产出时间。数据本身的质量一般可以通过数据大小的整体抖动,以及关键字段是否为空,主键是否重复,做法比较简单可以通过简单sql或者udf来完成,然后借助工程能力做到预警、检查、出报表等。

算法模型:

模型的本身在迭代过程中也是需要关注的,不过通常算法同学的训练优化也是参考这些指标,所以我们也可以把这几个指标做为模型本身好坏的评估。具体为:准确率、召回率、AUC。

算法效果:

那么这个算法推荐出的效果究竟好不好呢,这个是一个非常主观的事情,每个人的感受也不是一样的,但是我们仍然要衡量它的好坏,这里我参考业内学者的推荐书籍以及自己的一些摸索,总结出下面一些方法,供大家参考。

人工评测:

顾名思义,邀请一帮人来对你的推荐系统的结果进行评测。这里想法来自于我在做翻译评测时期的经验,首先这个成本比较高,另外就是参杂了人的主观性非常的高,翻译的好坏我们可以通过制定一些细致的规则来进行约束,但是推荐的好坏我们却不好制定详细的规则,另外就是推荐之前的用户行为如何模拟,如何让评测者进行感知,这些都是比较难的,并且和基准的对比也不是很好做,所以这里不是很推荐用这个方法,但是还是要提一下。

指标评估:

指标化推荐结果,也就是将推荐的结果用不同的指标来进行说明,通过这些指标,你可以更加的了解你的推荐系统,部分指标不一定越高越好,但是你需要让它保持在一定的范围内。说到具体的例子的时候,我会提一下。下面我们看下这些指标。

覆盖率

定义:
推荐系统能够推荐出来的“商品/类目”占“总商品/类目”集合的比例。假设系统的用户集合为U,推荐系统给每个用户推荐一个长度为N的物品列表R(u) ,总物品为N。那么:
覆盖率 = ΣR(u)N
Σ
R
(
u
)
N

意义:
描述推荐结系统对物品长尾发掘能力;
举个例子,淘宝上商品千千万万,推荐系统能否保证让新的一些商品有足够的机会曝光出去呢?还是有些商品永远都无法得到推荐曝光的机会。这个指标反应的就是这个情况,显然物品的覆盖率是达不到100%的,但是我们可以看类目的覆盖率来进行衡量,假设全网所有的一级大类目一共2千个(和全网上亿的物品相比非常的少),那么推荐系统一天之内推荐出去的商品对应的一级类目,这个就是我们要衡量的标准。如果覆盖率

8. 想要更好的做好抖音号,应该如何利用好抖音的推荐算法呢

对推荐算法的几个核心指标分别建议如下

1、完播率

当你发布一个视频后,如果初始分配的用户里有超过80%的用户看完了视频,说明这个视频的质量是很高的,另外完播率对应的是抖音用户时长的要求,所以我们在不影响视频质量的前提下,要尽量缩短视频的时长,一句话能说清楚的话,绝对不用两句话去说, 时长能少多少是多少。
2、观赞比

看点赞数的重点是观赞比, 也就是看你视频的用户,有多少比例点赞了,如果点赞比例比较高, 代表了用户对你视频的认可,这个是抖音推荐算法判断视频质量的重要依据, 在复盘的角度,发布者也可以根据点赞数来推倒视频受用户喜爱的原因。
3、评论数

评论区是粉丝和视频创作者的互动区域,做得好,会大大增加粉丝对创作者的粘性,所以评论的互动引导及其关键,可以在视频里留下一些问题来引导评论区的讨论,这样评论数自然就上去了。

4、转发数

对于任何一个平台而言,用户增长一定是首要的,视频的转发数,意味的用户愿意将平台的内容裂变出去,这个意味着你这个视频对抖音这个平台的用户增长贡献,自然也会得到推荐算法的重视。

9. 如何优化易语言这个随机算法,使每次随机更好一点

先10个编辑框赋值给数组,然后随机1-3决定这次出现几个数,之后按刚才随机的次数计次循环,再进行排序,最后加入文本就行了,试试吧

阅读全文

与推荐算法如何优化次留相关的资料

热点内容
起源编译器适配第二款应用 浏览:433
cad弄断线条命令 浏览:463
怎么恢复手机app的安装包 浏览:300
idea重启项目不编译 浏览:495
程序员那么可爱演员表陆漓妈妈 浏览:127
linuxgadget驱动 浏览:592
华三调用acl的命令 浏览:7
资金流pdf 浏览:929
金融结算法补充条款 浏览:289
什么叫服务器怎么连接 浏览:519
空调压缩机有制冷但室内不是很冷 浏览:837
如何查解压成功 浏览:648
代码编译服务器硬件配置2021 浏览:413
php如何选中相同的进行修改 浏览:623
工行app个人怎么给企业账户转账 浏览:149
汇编与程序员 浏览:666
压缩包解码器下载 浏览:130
爱旅行的预备程序员 浏览:111
安卓qq浏览器怎么转换到ios 浏览:294
不同编译器的库可以调用吗 浏览:457