我的推荐系统学习之路

1,036 阅读4分钟
【推荐系统与机器学习导读】总结了一个RD工程师的推荐系统学习之路, 更多推荐系统知识请关注 RecomAI


作为一个CS专业的本科毕业生, 当初进入互联网领域时只是一个电商业务的RD开发工程师, 后来机缘巧合之下转向了大数据领域, 后来又进入到了推荐系统的相关开发工作。回顾这些年的工作, 总结了一些经验, 希望对那些有志于进入推荐系统相关领域的同学有一些帮助。


推荐/搜索/广告 是目前机器学习成熟落地的三大马车, 对各个互联网公司商业变现有着重要的意义, 这三个业务在维度上有一些区别,比如搜索的目标是降低延时增大query的相关性, 广告的目标是增大CTR, 视频推荐系统的目标是播放时长点击等综合指标。但是从数据流和系统工程架构上看, 又非常相似。


对于想接触或者刚接触推荐系统的同学来说, 应该都看过下面这两本书





一个比较大的问题是, 如果没有参与到实际的推荐系统开发, 或者没有牛逼实验室的Buff下, 感觉每一章都能看的明明白白, 但是想自己写一个简单的推荐系统时却无从下手, 无法想象像美团阿里头条的推荐系统到底是如何落地的。


个人观点认为导致这种情况的原因有以下几点


1. 推荐系统是一个系统

推荐系统首先是一个系统, 作为有盈利的互联网公司的核心, 就注定在整体架构上十分的复杂, 比如涉及到NLP, 召回, 排序, 接日志洗日志算模型, 书上说的推荐方式都是单一的, 比如利用CF(协同过滤) 进行推荐, 在实际落地中推荐的召回一般是有多路的, 这样才会有多样性。(书中甚至几乎没有提到过候选集这种每个推荐系统都存在的东西)


2. 与算法关联紧密

推荐系统是算法落地比较早的领域之一, 对于 LR, GBDT, FM 这类传统机器学习算法有着大规模的应用, 传统机器学习的一大基础能力就是特征工程, 这个跟个人的领域知识极为相关, 网上的资料很少, 几乎是小圈子里的屠龙之技, 具体的工业实现各家又不一样,可供参考资料特别少。而对于深度学习模型来说, 要是想tf写个代码一跑ctr直接就升几个点, 哪个是痴人说梦, 具体的网络设计到底能有什么效果与你的业务模式, 行为数据有很大关系, 有很大可能你上的deepFM还不如你的LR+GBDT


3. 数据问题

对数据的重视程度, 首先, 如果是一个小系统, 比如只有几万PV, 根本谈不上用推荐系统提升效果, 工业界的推荐系统, 日志就是血液, 包括曝光日志, 点击日志, 收藏日志等等行为日志, 每天的日志量会很大, 这些日志一方面用于更新模型, 另一方面进入实验统计平台, 计算各个算法在过去时间的效果。另外诸如FM因子分解机模型, 如果你的日志很少, 那就是一个超级超级稀疏的矩阵, 最后算出来的模型效果也不会很好, 特别是现在深度学习在工业街广泛落地的情况下(Wide & Deep), 缺少大规模日志的推荐系统就是无水之源无根之木。


因为这些原因, 所以我创建了这个公众号 【推荐系统与机器学习】, 希望能够分享一下工业界推荐系统的一些常用架构, 基础知识, 以及在信息检索领域前沿的一些研究和进展,希望与大家共同进步。


长按二维码关注

推荐系统与机器学习

ID: RecomAI