[推荐系统与机器学习导读] 总结了一个 RD 工程师的推荐系统学习之路, 更多推荐系统知识请关注 RecomAI
作为一个 CS 专业的本科毕业生, 当初进入互联网领域时只是一个电商业务的 RD 开发工程师, 后来机缘巧合之下转向了大数据领域, 后来又进入到了推荐系统的相关开发工作。回顾这些年的工作, 总结了一些经验, 希望对那些有志于进入推荐系统相关领域的同学有一些帮助。
推荐 /搜索 /广告 是目前机器学习成熟落地的三大马车, 对各个互联网公司商业变现有着重要的意义, 这三个业务在维度上有一些区别,比如搜索的目标是降低延时增大 query 的相关性, 广告的目标是增大 CTR, 视频推荐系统的目标是播放时长点击等综合指标。但是从数据流和系统工程架构上看, 又非常相似。
对于想接触或者刚接触推荐系统的同学来说, 应该都看过下面这两本书
一个比较大的问题是, 如果没有参与到实际的推荐系统开发, 或者没有牛逼实验室的 Buff 下, 感觉每一章都能看的明明白白, 但是想自己写一个简单的推荐系统时却无从下手, 无法想象像美团阿里头条的推荐系统到底是如何落地的。
个人观点认为导致这种情况的原因有以下几点
-
推荐系统是一个系统 推荐系统首先是一个系统, 作为有盈利的互联网公司的核心, 就注定在整体架构上十分的复杂, 比如涉及到 NLP, 召回, 排序, 接日志洗日志算模型, 书上说的推荐方式都是单一的, 比如利用 CF(协同过滤) 进行推荐, 在实际落地中推荐的召回一般是有多路的, 这样才会有多样性。(书中甚至几乎没有提到过候选集这种每个推荐系统都存在的东西)
-
与算法关联紧密 推荐系统是算法落地比较早的领域之一, 对于 LR, GBDT, FM 这类传统机器学习算法有着大规模的应用, 传统机器学习的一大基础能力就是特征工程, 这个跟个人的领域知识极为相关, 网上的资料很少, 几乎是小圈子里的屠龙之技, 具体的工业实现各家又不一样,可供参考资料特别少。而对于深度学习模型来说, 要是想 tf 写个代码一跑 ctr 直接就升几个点, 哪个是痴人说梦, 具体的网络设计到底能有什么效果与你的业务模式, 行为数据有很大关系, 有很大可能你上的 deepFM 还不如你的 LR+GBDT
-
数据问题 对数据的重视程度, 首先, 如果是一个小系统, 比如只有几万 PV, 根本谈不上用推荐系统提升效果, 工业界的推荐系统, 日志就是血液, 包括曝光日志, 点击日志, 收藏日志等等行为日志, 每天的日志量会很大, 这些日志一方面用于更新模型, 另一方面进入实验统计平台, 计算各个算法在过去时间的效果。另外诸如 FM 因子分解机模型, 如果你的日志很少, 那就是一个超级超级稀疏的矩阵, 最后算出来的模型效果也不会很好, 特别是现在深度学习在工业街广泛落地的情况下(Wide & Deep), 缺少大规模日志的推荐系统就是无水之源无根之木。
因为这些原因, 所以我创建了这个公众号 [推荐系统与机器学习] , 希望能够分享一下工业界推荐系统的一些常用架构, 基础知识, 以及在信息检索领域前沿的一些研究和进展,希望与大家共同进步。
长按二维码关注 推荐系统与机器学习 ID: RecomAI