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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 推荐算法工程师需要掌握哪些核心技能点?(二)

五、大数据



在实际工业场景中,我们面临的都是海量数据,也就是所谓的大数据。再用上面提到的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. 规范类修改


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


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
4月前
|
机器学习/深度学习 人工智能 算法
「AI工程师」算法研发与优化-工作指导
**工作指导书摘要:** 设计与优化算法,提升性能效率;负责模型训练及测试,确保准确稳定;跟踪业界最新技术并应用;提供内部技术支持,解决使用问题。要求扎实的数学和机器学习基础,熟悉深度学习框架,具备良好编程及数据分析能力,注重团队协作。遵循代码、文档和测试规范,持续学习创新,优化算法以支持业务发展。
210 0
「AI工程师」算法研发与优化-工作指导
|
3月前
|
算法
测试工程师的技能升级:LeetCode算法挑战与职业成长
这篇文章通过作者亲身体验LeetCode算法题的过程,探讨了测试工程师学习算法的重要性,并强调了算法技能对于测试职业成长的必要性。
68 1
测试工程师的技能升级:LeetCode算法挑战与职业成长
|
5月前
|
人工智能 数据可视化 算法
算法金 | 让数据讲故事:数据可视化的艺术与科学,几乎是每个领域都需要掌握的技能
本文探讨了数据可视化的重要性,强调了其在决策中的作用。数据可视化应清晰传达信息,避免误导,如错误的颜色对比、过多数据、省略基线、偏见性文字和不合适图表类型。建议使用高对比色,限制图表数据量,正确选择图表类型,并注意相关性与因果的区分。此外,要警惕3D图形的误解和过度展示信息。好的可视化能提升决策效率。
44 6
算法金 | 让数据讲故事:数据可视化的艺术与科学,几乎是每个领域都需要掌握的技能
|
4月前
|
存储 算法 C语言
软考中级之数据库系统工程师笔记总结(二)数据结构与算法
软考中级之数据库系统工程师笔记总结(二)数据结构与算法
35 0
|
机器学习/深度学习 人工智能 JSON
在LLM浪潮下,prompt工程师需要很懂算法吗?
最近AI大神吴恩达推出prompt教程并给出了prompt构建三大原则,Prompt Engineering Guide也提出了诸多技巧,受AI技术的快速发展的影响,你觉得在LLM浪潮下,prompt工程师需要很懂算法吗?欢迎一起来聊一聊~
25517 50
在LLM浪潮下,prompt工程师需要很懂算法吗?
|
算法
增强能力:提升专业知识、熟练职业技能、持续总结面试题、英语词汇、学习数据结构和算法(提升逻辑思维)
增强能力:提升专业知识、熟练职业技能、持续总结面试题、英语词汇、学习数据结构和算法(提升逻辑思维)
|
算法 搜索推荐
开发工程师-常用算法基本思想 -分类-时间复杂度与空间复杂度概述
开发工程师-常用算法基本思想 -分类-时间复杂度与空间复杂度概述
|
缓存 算法 大数据
架构、框架侃侃而谈算法望而却步?吃透这份笔记轻松掌握算法技能
腾讯、百度阿里等国内的一线名企,在招聘工程师的过程中,对算法和数据结构都会重点考察。但算法易学难精,让很多程序员都望而却步,面试时总败在算法这一关,拿不到好 Offer。 面试时很多候选人,聊起架构、框架侃侃而谈,但一写代码,就暴露真实水平。说白了,还是基本功不够扎实。 其实,不管你是什么语言,基本功一定要扎实,最核心的一定是数据结构与算法。也因此,所有大厂面试,都必考算法题。
|
机器学习/深度学习 存储 人工智能
从产线到星空,这些AI工程师带着算法上天入地
从产线到星空,这些AI工程师带着算法上天入地
219 0
|
算法 NoSQL 数据挖掘
工程师应该学点算法——图论2
工程师应该学点算法——图论2
工程师应该学点算法——图论2