王喆《深度学习推荐系统》 推荐系统架构

推荐系统要解决什么问题?----让每个人都用着舒心

        对于用户来说,他在他此时浏览的每个软件场景下,能不能很快地获得让他感兴趣的信息,甚至会出现一些“惊喜”,让他知道,呀,这个好!

        网络的产品、信息浩如烟海,每个人的喜好还不一样,有的人根本不知道自己喜欢什么,想要什么;有的人大概知道,但是本身就很犹豫;有的人确实比较坚定(比如我就想看看机械键盘,想买一个)。

        所以,一个好的推荐系统要以尽可能全覆盖的满足每一个使用这个软件或产品的人,让尽可能全的人觉得,嗯,这里的内容挺好,竟然是个小机灵鬼,让我节省不少时间。

        更进一步地:从系统角度讲:

        对于某个user, 在特定的场景(context)下,针对海量“物品信息”构建一个函数,to 预测用户对特定候选物品们的喜好程度,再根据喜好程度进行排序,生成推荐的列表;并通过用户的行为及时的更新推荐列表。

注 : 推荐系统中的数据 :

  • 用户信息                        : 
  • 物品信息                         :
  • 上下文(场景)信息      :

为什么深度学习对推荐系统重要?

  1. 深度学习能拟合出更加泛化的模型,能满足更多场景和更多不同喜好的人的要求。
  2. 让深度学习模型的神经网络模拟很多用户兴趣的变迁过程,甚至用户做出决定的思考过程。
  3. 大数据与深度学习相互需要相互促进,最终共同发展,能在一起处理更加海量的信息。

推荐系统的通用架构:

  • 推荐系统 = 数据 + 模型
  • 数据部分 =  收集 + 处理
    • 通用主流框架  = 大数据离线批处理 + 在线实时流处理
    • 实时性  大-> 小    ||    处理数据量 小 -> 大
      • 客户端与服务器端实时数据处理
      • 流平台准实时
      • 大数据平台离线批处理
    • 这些数据用来干什么?
      • 用于训练和预估: 生成模型需要的样本数据
      • 用户线上推断:生成用户特征、物品特征和一部分场景特征 
      • 用于统计和监控的数据
    • 其实 数据的质量决定了推荐系统的上限,模型只能逼近这个上限
  • 模型部分:  召回 + 排序 + 重排序 (一般来说)  也有 召回+粗排+精排+重排
    • 召回层: 得到用户可能感兴趣的物品
      • 海量----几万
      • 用一些规则算法 + 简单的模型 的 多模型联合召回方式
      • 主要在离线时处理
      • embedding技术可以实现快速召回
    • 排序层;利用一些排序模型对召回候选集进行精排
      • 几万-----几千  (只是举例啦)
      • 用到机器学习算法(GBDT +LR最常见)+ 一些深度学习算法(deepFM DIN 等)
      • 近似在线层
    • 重排序:也称为补充策略层
      • 几千-200 
      • 返回给用户的推荐列表前,需要做的多样性处理 即
        • 推荐列表应组成: 算法结果 + 运营指定 + 热点物品 + 广告 + 推荐一些冷门 等等
      • 效果:让推荐列表 看着 多样、流行、新鲜、惊喜,同时也能满足投资广告方的曝光需求
    • 模型评估:
      • 离线时 有离线评估指标
      • 在线主要用到线上A/B测试

问题

  1. 如今主流数据处理框架是 flink做 流计算,spark做全量数据批量处理,目前能形成真正的批流一体么?
    1. 现在很难,但在往那方向走;
    2. 历史遗留:以前只有spark,没用flink,很多公司的数据体系都是在spark基础上的,这就跟TensorFlow1的代码想改成TensorFlow2 也会有很多意想不到的问题。
    3. spark本身也在发展,有flink的竞品spark streaming。 而且spark社区和积累很成熟。
  2. 用户实时行为后,生成实时推荐列表的数据是如何走的?
    1. 实时用户请求里边包含的特征一般是直接在服务器内部(很多用redis)提取出的,肯定不用再在数据流中重新走一遍。
    2. 但线上请求数据最终会落盘到日志数据中。这时流处理批处理的平台会对这些数据进行处理,生成今后可供使用的特征及训练用样本。
  3.  一般来说,近线层处理好的数据、特征会存储到redis等内存型数据库供online service使用。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习推荐系统领域有着广泛的应用。下面是一些关于深度学习推荐系统的笔记: 1. 数据表示:深度学习推荐系统通常使用向量表示用户和物品,将它们映射到低维空间中。常见的方法包括使用Embedding层将用户和物品ID转换为密集向量表示。 2. 神经网络模型:深度学习推荐系统使用神经网络模型来学习用户和物品之间的复杂交互关系。常见的模型包括多层感知机(Multi-Layer Perceptron,MLP)、卷积神经网络(Convolutional Neural Networks,CNN)和循环神经网络(Recurrent Neural Networks,RNN)等。 3. 个性化排序:深度学习推荐系统可以通过学习用户行为数据,预测用户对物品的喜好程度,并根据预测结果对物品进行个性化排序。常见的模型包括基于DNN的排序模型和序列模型,如Wide & Deep模型、DeepFM模型和Transformer模型等。 4. 强化学习:深度学习推荐系统可以与强化学习相结合,通过与环境交互来优化推荐策略。常见的方法包括使用深度Q网络(Deep Q-Network,DQN)和策略梯度方法等。 5. 多任务学习:深度学习推荐系统可以同时处理多个任务,如点击率预测、商品推荐和用户画像等。多任务学习可以通过共享模型参数来提高模型的泛化能力和效果。 6. 可解释性:深度学习模型在推荐系统中通常具有较强的表达能力,但其可解释性较差。为了提高可解释性,可以

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值