/RS_paper_study

推荐系统学习笔记

Primary LanguagePython

【关于 推荐系统】 那些你不知道的事

作者:杨夕

推荐系统 论文学习项目地址:https://github.com/km1994/RS_paper_study

NLP 论文学习项目地址:https://github.com/km1994/nlp_paper_study

个人介绍:大佬们好,我叫杨夕,该项目主要是本人在研读顶会论文和复现经典论文过程中,所见、所思、所想、所闻,可能存在一些理解错误,希望大佬们多多指正。

NLP 面经地址:https://github.com/km1994/NLP-Interview-Notes

NLP && 推荐学习群

目录

什么是推荐系统?

“啤酒与尿布” 的故事相信很多人都听过,年轻爸爸去超市购买尿布时,经常会买点啤酒犒劳自己。因此,沃尔玛将这两种商品进行了捆绑销售,最终获得了更好的销量。

这个故事背后的理论依据就是 “推荐算法”,因为尿布和啤酒经常出现在同一个购物车中,那么向购买尿布的年轻爸爸推荐啤酒确实有一定道理。

推荐系统到底解决的是什么问题?

  • 问题:信息过载,如何 从 从众多信息中找到用户感兴趣的信息?
  • 价值:精准推荐解决了用户痛点,提升了用户体验,最终便能留住用户。

推荐系统 的 流程是什么?

  • 本质:信息过滤系统;
  • 流程:召回->排序->重排序
  • 目标:每个环节逐层过滤,最终从海量的物料库中筛选出几十个用户可能感兴趣的物品推荐给用户

推荐系统 的 应用场景?

  • 场景:
    • 资讯类:今日头条、腾讯新闻等
    • 电商类:淘宝、京东、拼多多、亚马逊等
    • 娱乐类:抖音、快手、爱奇艺等
    • 生活服务类:美团、大众点评、携程等
    • 社交类:微信、陌陌、脉脉等
  • 按类别分类:
    • 基于用户维度的推荐:根据用户的历史行为和兴趣进行推荐,比如淘宝首页的猜你喜欢、抖音的首页推荐等;
    • 基于物品维度的推荐:根据用户当前浏览的标的物进行推荐,比如打开京东APP的商品详情页,会推荐和主商品相关的商品给你;

推荐系统 与 搜索、广告 的 异同?

  • 搜索:有明确的搜索意图,搜索出来的结果和用户的搜索词相关
  • 推荐:不具有目的性,依赖用户的历史行为和画像数据进行个性化推荐
  • 广告:借助搜索和推荐技术实现广告的精准投放,可以将广告理解成搜索推荐的一种应用场景,技术方案更复杂,涉及到智能预算控制、广告竞价等;

推荐系统 整体架构?

  • 数据源:推荐算法所依赖的各种数据源,包括物品数据、用户数据、行为日志、其他可利用的业务数据、甚至公司外部的数据。
  • 计算平台:负责对底层的各种异构数据进行清洗、加工,离线计算和实时计算。
  • 数据存储层:存储计算平台处理后的数据,根据需要可落地到不同的存储系统中,比如Redis中可以存储用户特征和用户画像数据,ES中可以用来索引物品数据,Faiss中可以存储用户或者物品的embedding向量等。
  • 召回层:包括各种推荐策略或者算法,比如经典的协同过滤,基于内容的召回,基于向量的召回,用于托底的热门推荐等。为了应对线上高并发的流量,召回结果通常会预计算好,建立好倒排索引后存入缓存中。
  • 融合过滤层:触发多路召回,由于召回层的每个召回源都会返回一个候选集,因此这一层需要进行融合和过滤。
  • 排序层:利用机器学习或者深度学习模型,以及更丰富的特征进行重排序,筛选出更小、更精准的推荐集合返回给上层业务。

推荐系统 核心部分?

  • 核心部分
    • 特征:由于数据量大,通常采用大数据的离线和实时处理技术,像Spark、Flink等,然后将计算结果保存在Redis或者其他存储系统中(比如HBase、MongoDB或者ES),供召回和排序模块使用;
    • 算法:
      • 召回算法:从海量数据中快速获取一批候选数据,要求是快和尽可能的准。这一层通常有丰富的策略和算法,用来确保多样性,为了更好的推荐效果,某些算法也会做成近实时的
      • 排序算法:对多路召回的候选集进行精细化排序。它会利用物品、用户以及它们之间的交叉特征,然后通过复杂的机器学习或者深度学习模型进行打分排序,这一层的特点是计算复杂但是结果更精准

内容介绍

  • CTR
    • 【关于 GBDT+LR】 那些你不知道的事
    • 【关于 DeepCF】那些你不知道的事
    • 【关于 DeepFM 】那些你不知道的事
    • 【关于 DIEN】 那些你不知道的事
    • 【关于 ESMM 】 那些你不知道的事
    • 【关于 FiBiNET】那些你不知道的事
      • 论文:FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction(结合特征重要性和双线性特征相互作用进行点击率预测)
    • 【关于 阿里深度兴趣网络(DIN)】 那些你不知道的事
      • 任务:点击率预测

      • 前沿方法介绍:基于深度学习的模型,该模型遵循类似的嵌入ding和MLP范式。

        • 思路:
          • 首先将大规模稀疏输入特征映射为低维嵌入向量;
          • 然后分组变换为定长向量;
          • 最后拼接成多层感知器(MLP),学习特征之间的非线性关系。
        • 优点:通过这种方式,用户特征被压缩成一个固定长度的表示向量,而不管候选广告是什么。
        • 缺点:固定长度向量的使用将成为一个瓶颈,这给嵌入和MLP方法从丰富的历史行为中有效地捕获用户的不同兴趣带来了困难。
      • 论文方法:深度兴趣网络(Deep Interest Network,DIN)

        • 思路:通过设计一个局部激活单元,自适应地学习用户兴趣的表示,从历史行为到某个特定的广告,这种表示向量在不同的状态下变化,大大提高了模型的表达能力。
        • 开发了两种技术:小批量感知正则化和数据自适应激活函数,可以帮助训练具有数亿参数的工业深度网络。
        • 实验结果:在两个公共数据集和一个超过20亿样本的阿里巴巴真实生产数据集上的实验表明了所提方法的有效性,其性能优于现有的方法。目前,DIN已成功部署在阿里巴巴的在线展示广告系统中,服务于主要业务。