推荐算法工程师需要掌握哪些核心技能点?(二)

简介: 推荐算法工程师需要掌握哪些核心技能点?(二)

五、大数据



在实际工业场景中,我们面临的都是海量数据,也就是所谓的大数据。再用上面提到的MySQL数据库、numpy、pandas等工具是不行的。这个时候就需要专业的大数据处理工具:Hadoop、Spark生态。有的同学想从这些生态的基本原理学起, 如果有时间,知其所以然是好的,但往往我们需要兼顾算法和大数据,时间并不是很充足,所以建议大数据这块可以先掌握到会用的层次,当做工具即可。


常用的:首先是Hive查询,也就是用HQL进行一些表数据的基础查询,这个和SQL有些类似,另外一个,就是sparkSQL以及spark的DataFrame, 这些相关操作常用来做数据分析和处理,处理完毕之后,写回到Hive表里面。其次,遇到复杂的处理逻辑,就需要写原生spark脚本去跑数据了。


推荐资料:


这一块实操性特别强,所以建议先看视频,跟着视频一步步来:


  1. 尚硅谷大数据Hadoop 3.x:https://www.bilibili.com/video/BV1Qp4y1n7EN


  1. 尚硅谷大数据Spark教程从入门到精通:https://www.bilibili.com/video/BV11A411L7CK


  1. 推荐系统算法基础+综合项目实战:https://www.bilibili.com/video/BV1qK4y1479r


六、推荐算法理论和实战



终于到了核心部分。再次强调一下,上面的知识不要求全掌握,既不需要,也不现实。如果为了快速入门,掌握机器学习、深度学习基础后就可以直接进入这一节了。


在实际的工业推荐系统中,一般会有四个环节:


ad61a20b7b3ee7015e17f838e9227fde.png


我梳理了这四个环节中用到的主流技术,整理成了如下导图:


9b5789cf008cec91460cb1ccd030f632.png


上图就是整个推荐算法的核心内容。这里先放出这个导图,一是让大家对推荐算法有个整体框架,二是告诉大家后续文章的内容:打算通过解读论文的形式,结合自身在工作中接触的工业场景,把里面的模型和知识点一一为大家解读。


这个系列我取名:"热追"推荐算法。主要包括以下四个部分:


1、召回


召回的目的是根据用户部分特征,从海量物品库快速找到小部分用户感兴趣的物品交给精排,重点是强调快。主要有两大类召回方式,一类是策略规则,一类是监督模型+embedding。


其中策略规则,往往和业务场景是强相关,不同的场景会有不同的召回方式,这部分知识"特异性"比较强,一篇文章讲不清楚。


这里可以简单讲讲比较普适的方法,也就是监督模型+embedding。该领域比较主流的方法, 比如FM系列(FM,FFM等), 用户行为序列,基于图和知识图谱系列,经典双塔系列等。这些方法看似很多很复杂,其实本质上还是给用户和物品打embedding而已,只不过考虑的角度方式不同。


这一块的内容,几乎每个模型都对应着经典paper,大家如果要学习推荐系统,这些经典paper是必须要去阅读学习的,并且在阅读过程中,对于一些重要模型,要会进行代码复现,并应用到一些真实的实践任务中。


2、粗排


有时候召回环节返回的物品数量太多,精排速度跟不上,所以需要在召回和精排之间加一个粗排环节,通过少量用户和物品特征,简单模型,来对召回的结果进行个粗略的排序,在保证一定精准的前提下,进一步减少往后传送的物品数量,这就是粗排的作用。


粗排用到的很多技术与召回重合,粗排不是必需的环节。如果你的候选数量非常少,那连召回都不需要了;如果你的精排能吃的下召回的输出,那可以考虑实验对比是不是需要粗排。但是假如不加粗排,总感觉欠缺点什么。有时候甚至会出现粗排输出候选变少,整个系统反而涨点的情况。像这样的情况出现,就说明整个链路设计存在不合理的地方。


3、精排


精排阶段使用你能想到的任何特征,可以上你能承受速度极限的复杂模型,尽可能精准地对物品进行个性化排序,强调准确性。这一块关键技术主要分为三大块:


ad61a20b7b3ee7015e17f838e9227fde.png


CTR预估:LR、FM家族、自动特征交叉的DNN家族。


多任务学习(Multi-Task Learning,也称为多目标学习)。多任务是很常见的,比如视频推荐中,用户喜欢、收藏、评论。而不同的任务可能会互相冲突,互相影响,造成模型学习起来十分困难。所以这一块是重难点,也是很多大公司的研究重点,更是未来的一大发展趋势。但好在这里每个模型或者技术有对应paper,所以和召回一样,这里依然可以利用解读paper的方式,把这些模型和技术娓娓道来。



排序打分公式融合。


4、重排


考虑到上面的三块是核心,这块没有详细的展开整理,并且这块和业务场景策略强相关,很依赖工作经验,目前了解的也不是很多。后续先解读几篇重排模型的经典论文,等学习了相关技术,再来不断完善这块。


5、冷启动


冷启动问题是指对于新用户和新商品,他们没有历史交互数据,无法分析历史喜好,这个时候我们应该如何做推荐。冷启动技术会穿插到召回或者重排中,有时也会和上面推荐系统做成并行的两路,专门应对冷启动场景。


推荐资料:


首先当然是后续自己写的文章啦哈哈哈。主要是因为搞算法的人学习模型都是参考论文,这也是为什么我后面分享这一块内容都是以解读论文的形式。


一定要推荐一本书籍的话,我选王喆的《深度学习推荐系统》。这本书高屋建瓴的介绍了推荐系统整体架构,发展历史以及未来趋势,还有各种推荐模型的演化之路,很适合前期用来当做科普。但是具体的模型并没有深入讲解,还是得自己去看论文解读。


再就是一些我认为很优秀的开源项目:


好友整理的 https://github.com/zhongqiangwu960812/AI-RecommenderSystem


另一个好友潜心整理,star已过千 https://github.com/ZiyaoGeng/Recommender-System-with-TF2.0


6、推荐系统实战项目


理论一定要与实践结合,否则就是空中楼阁。在这里给大家推荐datawhale打造的一个新闻推荐项目:https://github.com/datawhalechina/fun-rec


项目规划图如下:


4351e6fab6a3d7eaf4f436e0348a745b.png


阶段一



物料池的构建:


  1. Mysql基础及python调用(简介、安装、简单的命令行基础、python如何调用mysql数据(增删改查,排序))


  1. MongoDB基础及python调用


  1. Redis基础及python调用


  1. Scrapy基础及新闻爬取


  1. 新闻画像构建(存入MongoDB)


前端展示:


  1. Vue简介及基本使用(对于我们做推荐算法的,了解一些前后端交互之类的就够了)


  1. 前后端如何交互


  1. 用户注册界面


  1. 新闻展示(内容、时间、点赞次数,收藏次数)


  1. 可以保留用户的行为(user_id, news_id, action(点赞、收藏、阅读),time)


阶段二



有了前端及物料池后,就需要设计简单的冷启动规则来收集用户的行为数据以及用户的基本属性特征。这一部分数据可能需要参加开源学习的同学来一起帮忙完善这个数据集,这样数据才是有意义的。


  1. 收集数据


  1. 在服务器上部署数据收集的系统(新闻数据+用户行为数据)


  1. 冷启动策略


  1. 冷启动


  1. 用户侧


  1. 物品侧


  1. 系统侧


阶段三



这个阶段就是推荐算法大展身手的地方啦。我们可以把上一节学到的推荐算法,在这里尽情尝试,吹拉弹唱任你挑选。


  1. 离线评估指标


  1. 多路召回


  1. 特征工程


  1. 规则类


  1. 模型类


  1. 召回评估


  1. 排序


  1. DeepFM


  1. 排序评估


  1. 规则+重排


阶段四



最后就是一些运营类知识,保证系统的高可用性


  1. 推荐服务,前后端交互(flask)


  1. 任务调度


  1. 系统部署


  1. 规范类修改


以上便是全文了。不知不觉码字这么多,整理不易呀,虽然嘴上说不在乎点赞到底有多少,但其实内心还是希望点赞高一点的,因为好看啊!人总不能拒绝内心真实的想法吧。所以脸皮厚一点跟大家说:求大家来个赞,鼓励一下,也扩散给更多的对推荐算法感兴趣的同学,帮助到更多的人!!~


相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
6月前
|
机器学习/深度学习 算法 Java
算法工程师的工作内容和岗位技能要求
算法工程师的工作内容和岗位技能要求
407 0
|
10月前
|
缓存 算法 大数据
架构、框架侃侃而谈算法望而却步?吃透这份笔记轻松掌握算法技能
腾讯、百度阿里等国内的一线名企,在招聘工程师的过程中,对算法和数据结构都会重点考察。但算法易学难精,让很多程序员都望而却步,面试时总败在算法这一关,拿不到好 Offer。 面试时很多候选人,聊起架构、框架侃侃而谈,但一写代码,就暴露真实水平。说白了,还是基本功不够扎实。 其实,不管你是什么语言,基本功一定要扎实,最核心的一定是数据结构与算法。也因此,所有大厂面试,都必考算法题。
|
机器学习/深度学习 人工智能 算法
Interview:机器学习算法工程师求职九大必备技能之【数学基础、工程能力、特征工程、模型评估、优化算法、机器学习基本概念、经典机器学习模型、深度学习模型、业务与应用】(建议收藏,持续更新)
Interview:机器学习算法工程师求职九大必备技能之【数学基础、工程能力、特征工程、模型评估、优化算法、机器学习基本概念、经典机器学习模型、深度学习模型、业务与应用】(建议收藏,持续更新)
Interview:机器学习算法工程师求职九大必备技能之【数学基础、工程能力、特征工程、模型评估、优化算法、机器学习基本概念、经典机器学习模型、深度学习模型、业务与应用】(建议收藏,持续更新)
|
机器学习/深度学习 人工智能 算法
推荐算法工程师需要掌握哪些核心技能点?(一)
推荐算法工程师需要掌握哪些核心技能点?(一)
661 0
推荐算法工程师需要掌握哪些核心技能点?(一)
|
人工智能 运维 算法
算法博士平均月入4万,数据可视化技能全球吃香 | 2020年《顶级数据团队建设全景报告》重磅发布
算法博士平均月入4万,数据可视化技能全球吃香 | 2020年《顶级数据团队建设全景报告》重磅发布
141 0
|
机器学习/深度学习 人工智能 算法
BAIR论文:通过“元学习”和“一次性学习”算法,让机器人快速掌握新技能
并且已经成功应用到包括计算机视觉和药物研发在内的具有高维数据的领域。今年5月,OpenAI也发布了类似的在虚拟场景下通过一次性学习,完成堆叠方块等任务的论文。
910 0
|
3天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
4天前
|
存储 算法 数据可视化
基于harris角点和RANSAC算法的图像拼接matlab仿真
本文介绍了使用MATLAB2022a进行图像拼接的流程,涉及Harris角点检测和RANSAC算法。Harris角点检测寻找图像中局部曲率变化显著的点,RANSAC则用于排除噪声和异常点,找到最佳匹配。核心程序包括自定义的Harris角点计算函数,RANSAC参数设置,以及匹配点的可视化和仿射变换矩阵计算,最终生成全景图像。
|
4天前
|
算法 Serverless
m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB 2022a仿真实现了遗传优化的归一化最小和(NMS)译码算法,应用于低密度奇偶校验(LDPC)码。结果显示了遗传优化的迭代过程和误码率对比。遗传算法通过选择、交叉和变异操作寻找最佳归一化因子,以提升NMS译码性能。核心程序包括迭代优化、目标函数计算及性能绘图。最终,展示了SNR与误码率的关系,并保存了关键数据。
12 1