推荐系统

  • 这个领域要解决的根本问题是什么?
    • 在“信息过载”的情况下,用户如何高效获取感兴趣的信息。
    • 推荐系统要处理的其实是“人”和“信息”之间的关系问题。也就是基于“人”和“信息”,构建出一个找寻感兴趣信息的方法。
  • 这个领域有哪些主要技术?
  • 深度学习对这个领域的影响?
    • 深度学习应用于推荐系统,能够极大地增强推荐模型的拟合能力和表达能力。

推荐系统要处理的问题就可以被形式化地定义为:对于某个用户U(User),在特定场景C(Context)下,针对海量的“物品”信息构建一个函数 ,预测用户对特定候选物品I(Item)的喜好程度,再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题。

在实际的推荐系统中,工程师需要着重解决的问题有两类。

  • 一类问题与数据和信息相关,即“用户信息”“物品信息”“场景信息”分别是什么?如何存储、更新和处理数据?
    • 实时、准实时(flink)、离线(Spark)
  • 另一类问题与推荐系统算法和模型相关,即推荐系统模型如何训练、预测,以及如何达成更好的推荐效果?

召回-->精排-->补充策略(多样性、流行度、新鲜度)
离线训练:利用全量样本和特征,使模型逼近全局最优点
在线更新::准实时地“消化”新的数据样本,更快地反应新的数据变化趋势,满足模型实时性的需求。

为了评估推荐系统模型的效果,以及模型的迭代优化,推荐系统的模型部分还包括“离线评估”和“线上 A/B 测试”等多种评估模块,用来得出线下和线上评估指标,指导下一步的模型迭代优化。

详情页下的相似影片:基于内容的推荐(Embedding)

为你推荐的个性化推荐:用户的点击、评价历史进行个性化推荐。这几乎是所有推荐系统最经典和最主要的应用场景。能够动手完成个性化推荐中的每个关键步骤,包括但不限于特征的处理、候选集的召回、排序层主要模型等等。

构建推荐系统特征工程的原则:尽可能地让特征工程抽取出的一组特征,能够保留推荐环境及用户行为过程中的所有“有用“信息,并且尽量摒弃冗余信息。

  • 用户行为数据
  • 用户关系数据
  • 属性、标签类数据
  • 内容类数据(属性、标签类数据的延伸)
  • 场景信息(上下文信息)

广义上来讲,所有的特征都可以分为两大类。

  • 第一类是类别、ID 型特征(以下简称类别型特征)

  • 第二类是数值型特征,能用数字直接表示的特征就是数值型特征

特征处理的目的,是把所有的特征全部转换成一个数值型的特征向量,对于数值型特征,这个过程非常简单,直接把这个数值放到特征向量上相应的维度上就可以了,对于类别型特征,One-hot 编码(也被称为独热编码),它是将类别、ID 型特征转换成数值向量的一种最典型的编码方式。

数值型特征的处理 - 归一化和分桶,主要讨论两方面问题,一是特征的尺度,二是特征的分布。

归一化虽然能够解决特征取值范围不统一的问题,但无法改变特征值的分布。对于模型来说,特征的区分度高是模型喜欢的特征。

经常会用分桶的方式来解决特征值分布极不均匀的问题。所谓“分桶(Bucketing)”,就是将样本按照某特征的值从高到低排序,然后按照桶的数量找到分位数,将样本分到各自的桶中,再用桶 ID 作为特征值。

无论是平方还是开方操作,改变的还是这个特征值的分布,这些操作与分桶操作一样,都是希望通过改变特征的分布,让模型能够更好地学习到特征内包含的有价值信息。但由于我们没法通过人工的经验判断哪种特征处理方式更好,所以索性把它们都输入模型,让模型来做选择。

Embedding 就是用一个数值向量“表示”一个对象(Object)的方法

一个物品能被向量表示,是因为这个向量跟其他物品向量之间的距离反映了这些物品的相似性。更进一步来说,两个向量间的距离向量甚至能够反映它们之间的关系

首先,Embedding 是处理稀疏特征的利器。
其次,Embedding 可以融合大量有价值信息,本身就是极其重要的特征向量 。

把 Embedding 的相关内容放到特征工程篇的原因,因为它不仅是一种处理稀疏特征的方法,也是融合大量基本特征,生成高阶特征向量的有效手段。

posted @   一个正在奋斗的小bai  阅读(156)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示