推荐系统简介(上)

1.推荐系统简介

1.1.互联网的发展

  1. 门户网站
  2. 搜索引擎
  3. 推荐系统

1.2.推荐系统

场景:

  1. 信息过载
  2. 用户需求不明

目标:

  1. 高效、持续的提供用户想要的内容
  2. 用户和内容生产者的留存和商业转化

评价指标:
准确度、满意度、覆盖度、信任度、 可扩展性、实时性、鲁棒性、商业目标、用户留存、多样性、惊喜性、新颖性

1.3显示反馈-隐式反馈

举例:

以抖音、B站等视频平台为例:

  1. 显示反馈
    收藏、下载、进入个人主页、关注、点赞、正向评论、观看评论、原声点击、标签点击、分享
  2. 隐式反馈
    播放时长、有效播放、播放完成率、完播

特点:
显示反馈:含义明确、量少(即时喜欢,不一定点赞)
隐式反馈:有噪音(挂机等)、量大

1.4推荐系统模块

释义: 推荐系统的算法能主要分为召回、排序两个大的部分,根据实际的物料库大小、模型效率、业务要求来设计推荐系统的更细的组成模块。
在这里插入图片描述
详细解析:

  1. 召回:就是从大量数据中,召回相关的材料,比如:冬天给客户推荐棉袜为例,电商平台:就是召回大量涉及棉袜和相关的商品
  2. 排序:就是讲召回内容,按照与客户最匹配的顺序,讲信息排序后展示到客户面前的顺序。大型的推荐系统还会做的更细致,比如:粗排、精排、重排
    2.1. 粗排,一般是为了效率考虑,先粗步筛选掉部分匹配度不高的内容,再交由精排模型。
    2.2. 精排:就是将粗排内容,按照当前用户的习惯、节庆等整理的优先级由高到低的内容
    2.3. 重排:即在精排的基础上添加一些新的元素,即相关的,比如:精排全是冬天的服装,重排会根据相应策略,在其中插入一些:女生–暖宝宝、暖手袋等的产品。

2.召回策略

2.1基于内容的召回Content Based

2.1.1介绍

概念: 基于用户喜欢、点击查看的内容,推荐相似/关联内容。

核心:

  1. 建立起每个内容的一种表示;比如向量、或者其他的方式,使得后续可以进行计算。
  2. 定义并计算内容的相似性/关联性

建立内容画像 item profile

2.1.2举例

电影推荐:

直观的可以理解到,通过下面的三个维度,就可以表示一个电影,从而计算两部电影的相似性:

  1. 电影的类型标签:动作、战争
  2. 电影的简介内容
  3. 电影的主演阵容

2.1.3 优缺点

优点:

1.不需要其他用户数据
2.可以很好的给有独特口味的用户推荐
3.能够推荐出冷门的内容
4.有较强的可解释性

缺点:

  1. 内容特征构建需要对内容的理解,有时很困难;比如金融产品等,本身产品的内容就专业且复杂,需要构建内容特征,就需要专业的人士
  2. 对于新用户不好推荐
  3. 始终在给用户推荐熟悉的东西,没有惊喜;并且会造成信息茧房;割裂观点。由于看到的都是同一类视频,加深观点。
  4. 没有利用其他用户的行为

2.2协同过滤Collaborative Filtering

简介: 利用兴趣相同、喜好相似的群体来为用户推荐产品。主要包含:UserCF、ItemCF、ModelCF;前两种下面会详细介绍;ModelCF是指:使用矩阵分解SVD等算法或模型预测缺失值。

2.2.1 UserCF

简介: 推荐相似用户喜欢的产品。
举例说明:
在这里插入图片描述

  1. 以看电影为例,即讲1-12个用户看的1-6部电影进行喜爱度打分;
  2. 通过喜欢分数,就可以构建对相似用户、相似兴趣进行分类。(分类的逻辑有多种,比如:高分相似、评分进行相似度计算等)
  3. 完成分类后,相似用户见,评分高,且未进行观看的,就可以进行推荐。

好处:

  1. 不需要对物理本身进行理解,可以放到任意一种场景下,比如金融产品
  2. 通过多维度的相似度,计算,还可以立体的建立客户群分类

人以群分:
在这里插入图片描述

Item_scores = {} 
for item in 候选物品集:
    for sim_user in m个最相似的用户: 
          item_scores[item] += sim_user对item的评分 * sim_user与userA的相似度

2.2.2 ItemCF

简介: 推荐与自己喜欢的产品相似的产品;本质还是通过不同的人,对产品的打分计算相似度,相似度相同的产品,就是应该是喜欢的,将产品进行推荐。

举例说明:
在这里插入图片描述

  1. 上面的产品1和3,根据用过的客户11、9都对他们进行打分,从而可以计算产品1、产品3的相似度。
  2. 对于用户6,对产品1也打高分,根据产品1、产品3相似,就会将产品3也推荐给用户6.
  3. 推荐的产品不一定是同一类别的产品,可以是衣服,推荐电子产品,实质是根据相同的口味用户,喜欢的产品进行推荐

物以类聚
在这里插入图片描述

item_scores = {}
for item in 候选物品集:
    for item_h in 用户喜欢物品集:
        item_scores[item] += 用户对item_h的评分 * item与item_h的相似度

2.2.3 相似度度量的方法

在这里插入图片描述

2.2.4 协调过滤优缺点

优点:

  1. 适用于任何内容的推荐,无需考虑物料特征,理解对应物理特征
  2. 利用其他用户行为信息

缺点:

1.冷启动困难,开始时,没有那么多的丰富的标注或者数据
2.User-Item矩阵稀疏,本质也是没有那么多数据,
3.新的内容很难被推荐出来,因为观看它的信息太少,从而相似计算值太低
4.小众爱好不容易被发现

2.3基于统计信息/热门召回

即热搜事件等;示例

  1. 1小时内高点击率
  2. 1小时内高点击率增长
  3. 高关注,高赞,高转发
  4. 热力榜单

2.4物料冷启动

问题场景:

  1. 无曝光导致无反馈,无反馈导致无曝光,就会进入恶性循环。
  2. 对于新出现的物料,应当主动分配一部分流量。

或者是根据统计原理,demographic特征(人口学特征)
1)用户注册信息
性别、年龄、地域
2)设备信息
定位、手机型号、app列表
3)社交信息
推广素材、安装来源
在创建账号时,会登记相关信息:
上述内容就会作为刚开始时,进行推荐的一些依据内容;其次,当前互联网企业间会有一些账户信息的同步,比如微信账号可以登录多个平台、阿里系等。

2.5运营手段等

简介: 由运营人员手动给出一些候选结果,属于一种强规则;在业务需要时使用。
释义: 比如说,投放广告等

2.6向量和模型召回

原理: 将用户信息和物料信息进行匹配训练出模型,对于下一个用户或者物料信息,就能通过模型输出匹配召回内容。或者说根据物料和用户,计算匹配分数

示意图:
在这里插入图片描述

即将人和物料信息输入到网络,训练其对应的向量表示,计算相似分数。

3.特征工程

简介: 即寻找实体的特点,并进行数值化表示。比如:人的身高、喜欢浏览擦边视频等等,并将其数值化表示。

特征影响:

  1. 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。
  2. 特征越好,灵活性越强;即可以预测对象的不同维度,比如喜欢听的音乐、爱好的视频题材等。
  3. 特征越好,构建的模型越简单,即模型能够更简单、更快的捕捉到规律。
  4. 特征越好,模型的性能越出色

3.1离散特征

简介: 就是数值可以枚举的特征。
比如: 性别、星座、颜色、商品、机器型号

3.1.1 特征处理 --编码

  1. one-shot:
    颜色 = {红,橙,黄,绿}
    红 = [1, 0, 0, 0]
    橙 = [0, 1, 0, 0]
    黄 = [0, 0, 1, 0]
    绿 = [0, 0, 0, 1]

  2. multi-hot:
    电影标签:{悬疑,惊悚,科幻,爱情,动作,搞笑,纪实,古装}

    电影A: 古装,搞笑
    [0, 0, 0, 0, 0, 1, 0, 1]

    电影B: 科幻,爱情
    [0, 0, 1, 1, 0, 0, 0, 0]

  3. 不同的离散特征进行结合等

3.1.2 特征处理 --向量化表示

类似于词向量的做法,解决类别过多的问题;每个特征值对应一个固定维度的向量

北京 -> [0.57, 0.18, 0.76, 0.23, 0.45, 0.98]
上海 -> [0.14, 0.92, 0.66, 0.21, 0.23, 0.79]
广州 -> [0.32, 0.85, 0.95, 0.35, 0.97, 0.14]

3.2 连续变量

简介: 即数值是一个范围
比如: 身高、时间、体重等

3.2.1 归一化

原因: 神经网络为代表的的模型对于数值是敏感的,过大的数值会对网络计算造成影响,通过归一化,将数值缩放到[0-1]之间有助于训练
在这里插入图片描述
归一化的方法: 选择需要根据数据的分布结合归一化函数的特性来确定。比如:sigmoid在较大/或较小值时,结果变化很小,就不利于极值较多的数据,不利于数据的区分。

3.2.2标准化

原因: 得到的数据有可能都是大于1的、或者都是正数,为了便于训练, 将数据分布转化为均值为0,方差为1,有助于训练。使得数据分布均匀,且符合原有数据特征。
在这里插入图片描述

3.2.3离散化

简介: 将连续值转化为离散值,用处理离散特征的方式处理。
原理: 例如身高对于一个人选择商品,在一定的区间内是没有太大影响的。1.81m、1.80m两个不同身高的人,在身高这个特征上面,没有什么区别。所以可以把一个小的区间内的数值,固定为一个,就变成离散的数据。

举例:
sample - 假设为10个人的考试成绩,取值0-1
[0.04, 0.05, 0.28, 0.44, 0.46, 0.78, 0.85, 0.86, 0.86, 0.89]

等频分割 - 将区间按样本数量换分成n段(按照上面的10个数值,给它按照频率赋值)
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4]

等距分割 - 将区间依照数值平均划分成n段(按照上面的10个数值,给它按照区间划分赋值)
[0, 0, 1, 2, 2, 3, 4, 4, 4, 4]

按照信息熵选择切分点。通过算法对数据进行计算,即决策树的思路,找到最佳的点位。

注意: 特征工程的特征处理,要求算法人员对具体的业务有深刻的认知,才能做好。比如,计算人的购买力,那么不同收入段的人群的数量差距是非常大的。需要综合考虑,不同阶段甚至可以采取不同的方案去处理。

3.3.1组合特征

简介: 有相互关联的特征,显式的标识并且组合,有利于降低模型的学习难度,更快的找到并且适配规律。

举例:
颜色 = {红,橙,黄,绿}
红 = [1, 0, 0, 0]
橙 = [0, 1, 0, 0]
黄 = [0, 0, 1, 0]
绿 = [0, 0, 0, 1]

形状 = {圆形,方形}
圆形 = [1, 0]
方形 = [0, 1]

红圆形 [1, 0, 0, 0,1, 0]
橙方形 [0, 1, 0, 0,0, 1]

再比如:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值