深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解

news2024/11/19 15:33:12

在这里插入图片描述
【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等

在这里插入图片描述
专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等

本专栏主要方便入门同学快速掌握相关知识。后续会持续把深度学习涉及知识原理分析给大家,让大家在项目实操的同时也能知识储备,知其然、知其所以然、知何由以知其所以然。

声明:部分项目为网络经典项目方便大家快速学习,后续会不断增添实战环节(比赛、论文、现实应用等)

专栏订阅:

  • 深度学习入门到进阶专栏
  • 深度学习应用项目实战篇

深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解

1. 推荐系统介绍

在网络技术不断发展和电子商务规模不断扩大的背景下,商品数量和种类快速增长,用户需要花费大量时间才能找到自己想买的商品,这就是信息超载问题。为了解决这个难题,个性化推荐系统(Recommender System)应运而生。

个性化推荐系统是信息过滤系统(Information Filtering System)的子集,它可以用在很多领域,如电影、音乐、电商和 Feed 流推荐等。个性化推荐系统通过分析、挖掘用户行为,发现用户的个性化需求与兴趣特点,将用户可能感兴趣的信息或商品推荐给用户。与搜索引擎不同,个性化推荐系统不需要用户准确地描述出自己的需求,而是根据用户的历史行为进行建模,主动提供满足用户兴趣和需求的信息。

1994年明尼苏达大学推出的GroupLens系统一般被认为是个性化推荐系统成为一个相对独立的研究方向的标志。该系统首次提出了基于协同过滤来完成推荐任务的思想,此后,基于该模型的协同过滤推荐引领了个性化推荐系统十几年的发展方向。

1.1应用场景

  • 电商领域

在电商领域,比较典型的是亚马逊的个性化推荐系统,被称为“推荐系统之王”。亚马逊有 20%~30% 的销售额来自于推荐系统。主要形式包括个性化推荐列表、相关推荐列表及打包销售等。

  • 个性化推荐列表:将那些和用户喜欢的物品比较相似的物品,或者用户好友喜欢的物品推荐给用户。
  • 相关推荐列表:当用户购买一件物品后,将那些购买此物品的用户也经常购买的其他物品,或者浏览过此物品的用户也经常购买的其他物品推荐给用户。
  • 打包销售:当用户单击某个物品的购买按钮时,将那些其他用户在购买此物品时,连同购买的其他物品推荐给用户。
  • 电影视频

    • Netflix:基于物品的推荐
    • YouTube,Hulu
  • 音乐

    • Pandora:专家标记
    • Last.fm:用户行为
  • 社交网络

    • Facebook
    • Twitter
  • 阅读

    • Goodle Reader
  • 基于位置的服务

    • Foursquare
  • 个性化邮件

    • Tapestry
  • 广告

    • Facebook

1.2 推荐系统的方法

传统的个性化推荐系统方法主要有:

  • 协同过滤推荐(Collaborative Filtering Recommendation):该方法是应用最广泛的技术之一,需要收集和分析用户的历史行为、活动和偏好。它通常可以分为两个子类:基于用户 (User-Based)的推荐和基于物品(Item-Based)的推荐。该方法的一个关键优势是它不依赖于机器去分析物品的内容特征,因此它无需理解物品本身也能够准确地推荐诸如电影之类的复杂物品;缺点是对于没有任何行为的新用户存在冷启动的问题,同时也存在用户与商品之间的交互数据不够多造成的稀疏问题。值得一提的是,社交网络或地理位置等上下文信息都可以结合到协同过滤中去。

  • 基于内容过滤推荐(Content-based Filtering Recommendation):该方法利用商品的内容描述,抽象出有意义的特征,通过计算用户的兴趣和商品描述之间的相似度,来给用户做推荐。优点是简单直接,不需要依据其他用户对商品的评价,而是通过商品属性进行商品相似度度量,从而推荐给用户所感兴趣商品的相似商品;缺点是对于没有任何行为的新用户同样存在冷启动的问题。

  • 组合推荐(Hybrid Recommendation):运用不同的输入和技术共同进行推荐,以弥补各自推荐技术的缺点。
    近些年来,深度学习在很多领域都取得了巨大的成功。学术界和工业界都在尝试将深度学习应用于个性化推荐系统领域中。深度学习具有优秀的自动提取特征的能力,能够学习多层次的抽象特征表示,并对异质或跨域的内容信息进行学习,可以一定程度上处理个性化推荐系统冷启动问题

1.3 推荐系统的组成

(一)、画像

1、定义:画像指的是从用户产生的各种数据中挖掘和抽取用户在不同属性上的标签,如年龄、性别、职业、收入、兴趣等。

2、画像生成路径

  • 用户行为日志收集和存储(离线数据和实时数据)
  • 用户行为提取,特征加工,生成特征向量(静态特征和动态特征)
  • 利用有用户属性标签的数据作为有标注数据来训练画像预测模型
  • 对更多的有标签用户属性来进行预测

3、画像分类

按照数据类型划分:(目前使用较多的分类)

  • 静态画像:用户相对稳定的信息。缺点:实时性不够,过于粗糙
  • 动态画像:用户不断变化的行为信息,根据用户行为将物品的结构化结果传递给用户

按照画像性质进行划分

  • 定性画像(定性描述用户或内容的特征信息)
  • 定量画像(统计类标签,预测类标签)
  • 定性画像+定量验证

在以上的三种画像分类中定性画像,是通过用户的行为习惯,挖掘出的标签信息,一般可以深入继续挖掘用户的动机,但这类的画像标签,一般无法用数据直接验证,只能定性理解。与定性画像不同,定量画像有充分数据验证,可以通过数据统计和分析来进行验证,但他对统计的要求比较高,且一般难以挖掘用户情感倾向和行为操作背后的原因和深层次的动机。最优的方法就是第三种将二者结合起来的方法,这种方法既能通过数据描述也能从用户行为中验证画像的准确性,但将二者结合的方法会存在工作量大的问题,且定性画像与定量画像之间可能存在相悖的结论,需要较为丰富的经验进行论证。

4、画像验证

  • 准确率
  • 覆盖率

准确率指的是被打上正确标签的用户比例,准确率是用户画像最核心的指标,一个准确率非常低的标签是没有应用价值的。通常会通过以下两种方法来评估标签的准确率

  • 在标注数据集里留一部分测试数据用于计算模型的准确率
  • 在全量用户中抽一批用户,进行人工标注,评估准确率(数据更可信)
    覆盖率指的是被打上标签的用户占全量用户的比例,同理一个覆盖率太低的标签,是没有应用价值的。通常对于覆盖率的评估是以某一个标签覆盖的用户比例和覆盖用户的人均标签数作为评估标准

(二)、召回

1、定义: 从全量的文章库中按照一定的规则筛选出一个文章候选池,一般的规则有:按照机型,地域,热点和用户-文章协同过滤
2、召回的作用:从全量内容中,第一次粗过滤,筛选出大概率适合展示给用户的内容,减少后续计算的复杂度

3、常用召回方法:

基于热点召回:基于热点事件的召回,通过对热点事件相关的内容进行计算,同时匹配可能感兴趣的用户,进而进行推荐展示

基于地域召回:计算用户和内容的位置信息,以地理位置作为匹配关联的核心因素,进而圈选出相匹配的用户和内容

协同召回(基于用户和内容两种召回方法):主要分为基于用户的协同召回和基于内容的协同召回两种方法,以基于用户的协同召回为例进行说明:

当需要对用户A进行推荐时,找到和A有相似兴趣的其他用户群B,把B喜欢看的,而A还没有看过的内容进行召回,进而推荐给A用户

(三)、排序

1、定义: 是推荐系统中召回后的一个模块,主要是一个或多个指标为依据,进行打分,一般将得分按照倒序进行排列

2、排序的作用

高效:帮助用户找到想要的商品(新闻/音乐/……),发掘长尾
降噪:将重复的文章进行合并,剔除垃圾信息
提高用户访问的频次:让用户频繁访问,并总是能找到他们想要阅读和购买的物品

3、衡量指标

CTR (Click Through Rate):当给用户推荐他真实喜欢的内容时,用户就会产生比较大的点击意愿,进而产生较高的点击。

2.推荐系统评估指标

2.1场景转化指标

场景转化指标是将用户从一个场景转化到我们希望的场景的效果。这个过程主要是对用户的行为进行分析,这类指标关注推荐系统的漏斗效果,主要有:

pv点击率

PV(访问量):PageView,即页面浏览量或点击量,用户每次刷新即被计算一次。

p v 点击率 = p v 点击 p v pv点击率=\frac{pv点击}{pv} pv点击率=pvpv点击

pv点击率是比较经典的指标,计算用户每次进入页面的情况。他能粗略衡量转化的效果,但是它缺点也比较明显:少数用户贡献大量点击会影响这个指标的作用效果。

uv点击率

UV(独立访客):Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只会被计算一次。

u v 点击率 = 点击 u v 整个产品的 u v uv点击率=\frac{点击uv}{整个产品的uv} uv点击率=整个产品的uv点击uv

分母是整个产品的uv,而不是有点击行为的uv。uv点击率相对于pv点击率的优势在于,它不受用户行为路径影响(不受重复浏览某个产品的影响),能记录用户在一个完整session的点击效果。据了解好多互联网公司的分析指标也将pv点击率给为uv点击率了

曝光点击率

曝光点击率 = 点击量 曝光次数 曝光点击率=\frac{点击量}{曝光次数} 曝光点击率=曝光次数点击量

曝光点击率适合支持上拉、下拉翻页的产品。相比pv点击率,曝光点击率随用户刷屏次数增大而变大,能更真实记录每一屏的转化情况。

uv转化率

转化率:指在一个统计周期内,完成转化行为的次数占推广信息总点击次数的比率。

u v 转化率 = 点击 u v 进入 u v uv转化率=\frac{点击uv}{进入uv} uv转化率=进入uv点击uv

与uv转化率相对的是页面流失率。uv转化率衡量对用户的转化情况,通过我们的产品设计能把多大比例的用户从一个场景转化到我们希望的另一个场景里面去。uv转化率相对于前面两个指标,更靠得住,不容易受到挑战。

uv转化率尤其衡量入口型产品,比如视频app的首页,如果用uv点击率去衡量就不太科学,因为一般用户在首页点击某个视频后,会进入下一层页面深度消费,很少会返回首页继续消费,这个用户已经被转化,但不再贡献点击,所以uv转化率更加合理。

如果某页面的转化率较低,则表示大部分人对该页面不感兴趣,遵循“不行就分”的简单原则,这样的页面去掉可能对产品更好。

人均点击次数

人均点击次数 = 点击量 点击 u v 人均点击次数=\frac{点击量}{点击uv} 人均点击次数=点击uv点击量

人均点击次数与uv转化率相辅相成。uv转化率表示页面的消费宽度(吸引用户的比例),而人均点击次数表示页面的消费深度(每个用户的消费的次数)。

2.2消费满意度

留存率

留存率 = x 日后仍活跃的用户数 x 日前的用户数 留存率=\frac{x日后仍活跃的用户数}{x日前的用户数} 留存率=x日前的用户数x日后仍活跃的用户数

留存率很重要,每家公司都很重视,但它很艰难作为算法的优化指标,因为时间周期长,变量会很多。比如计算视频app首页的留存率就十分艰难,因为当中可能会上线大剧;和热门综艺。虽然难以衡量,但留存率是产品技术团队的重要指标:市场部负责拉新用户,产品技术团队负责服务用户,把客户留下来。

停留时间长

内容消费型产品,点击率很难反应推荐的真正效果,把用户骗进了希望的场景消费,但是发现真相的用户转身就走,这反而说明这个推荐是失败的。所以需要引入停留时长来量化用户消费效果。音频类的就对应播放时长。

播放完成率

播放完成率 = 播放时长 视频时长 播放完成率=\frac{播放时长}{视频时长} 播放完成率=视频时长播放时长

由于停留时长受视频时长的锚定效应影响,稍长一点的视频,即使用户不感兴趣,但是平均来说也会比短视频要停留更长一些。因此,播放完成指标就能一定程度上去弥补这个问题,但是短视频天然的完成率要比长视频高,也是需要在看指标时注意。

2.3 离线评估验证方法

Holdout检验

Holdout检验是基础的离线评估方法,它将原始的样本集合随机划分为训练集和验证集两部分,比如70%训练集,30%测试集(但现在很多机器学习框架、深度学习框架中都增加了验证集,即将整个数据集分成三份,70%训练集,10%验证集,20%测试集)。

Holdout检验的缺点也很明显,即在验证集上计算出来的评估指标与训练集和测试机的划分有直接关系,如果仅进行少量Holdout检验,则得到的结论存在很大的随机性(在划分数据集的时候尽量保证其随机性)。

交叉检验

k-fold交叉验证

先将全部样本划分成 k个大小相等的样本子集,依次遍历这k个子集,每次都把当前子集作为验证集,其余所有子集作为训练集,进行模型的训练和评估,最后将所有次的评估指标的平均值作为最终的评估指标,在实际经验中, 经常取值为 10。

留一验证

每次留下1个样本作为验证集,其余所有样本作为测试集,样本总数为n,依次遍历所有n个样本,进行n次验证,再将评估指标求平均得到最终指标。在样本总数较多的情况下,留一验证法的时间开销极大,事实上,留一验证是留p验证的特例,留p验证是指每次留下p个样本作为验证集,而从n个元素中选择 p个元素 有 C n p C_{n}^p Cnp种可能,因此它的时间开销远远高于留一验证,故很少在实际中使用。

自助法

不管是holdout检验还是交叉检验,都是基于划分训练集和测试集的方法进行模型评估的,当样本规模比较小时,将样本集进行划分,会进一步缩小训练集,有影响模型的训练效果。

自助法(Bootstrap)是基于自助采样法的检验方法:对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集,在n次采样过程中,有的样本会被重复采样,有的样本没有被抽出过,将这些没有被抽出的样本作为验证集进行模型验证,就是自助法的验证过程。

2.4离线评估的主要指标

离线评估是针对系统自身的推荐算法模型的评估,通过评估具体指标来选择合适的推荐算法;推荐系统从接收数据到产生推荐结果,再根据结果的硬性从新修改参数,而这个过程是通过机器学习训练得出的模型主要有以下评估指标:

准确率

分类准确率是指分类正确的样本占总样本个数的比例:

a c c u r a c y = n c o r r e c t n t o t a l accuracy=\frac{n_{correct}}{n_{total}} accuracy=ntotalncorrect

n c o r r e c t n_{correct} ncorrect为被正确分类的样本个数, n t o t a l n_{total} ntotal为总样本个数,准确率是分类任务中比较直观的评价指标,但其优缺点也明显。

优点

  • 解释性强

缺点

  • 类别分布不均匀时,占比大的类别往往成为影响准确率的主要因素(极端的情况比如正样本 1%,负样本 99%时)

精确率和召回率

  • 精确率(Precision)是分类正确的正样本个数占分类器判定为正样本的样本个数的比例

  • 召回率(Recall)是分类正确的正样本个数占真正正样本个数的比例

排序模型中,通常没有一个确定的阈值把预测结果直接判定为正样本还是负样本,而是采用 Top N 排序结果的精确率(Precision@N)和召回率(Recall@N)来衡量排序模型的性能,即认为模型排序的Top N的结果就是模型排定的正样本,然后计算精确率和召回率。

精确率和召回率是矛盾统一的两个指标:为了提高精确率,分类器需要尽量再“更有把握时”才把样本预测为正样本,但往往因为过于保守而漏掉很多“没有把握”的正样本,导致召回率降低。

因此使用F1-score进行调和(也叫F-measure),定义为:

F 1 = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l F1=\frac{2*Precision*Recall}{Precision+Recall} F1=Precision+Recall2PrecisionRecall

均方根误差

Root Mean Square Error,RMSE 经常被用来衡量回归模型的好坏,使用点击率预估模型构建推荐系统时,推荐系统预测的其实是样本为正样本的概率,RMSE被定义为:

R M S E = 1 n ∑ i = 1 n ( y i − y p r e d ) RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^n(y_{i}-y_{pred})} RMSE=n1i=1n(yiypred)

y i y_{i} yi是第i个样本的真实值, y p r e d y_{pred} ypred是第i个样本的预测值,n为样本的个数。

缺点

一般情况下能够很好的反映回归模型预测值与真实值的偏离程度,但在实际应用时,如果存在个别偏离程度非常大的离群点,那么即使离群点的数量非常少,也会让RMSE指标变得很差

为了解决这个问题,引入了鲁棒性更强的平均绝对百分比误差(Mean Absolute Percent Error,MAPE)进行类似的评估,MAPE定义如下:

M A P E = ∑ i = 1 n ∣ y i − y p r e d y i ∣ ∗ 100 n MAPE=\sum_{i=1}^n |\frac{y_{i}-y_{pred}}{y_{i}}|*\frac{100}{n} MAPE=i=1nyiyiypredn100

相比RMSE,MAPE相当于把每个点的误差进行了归一化,降低了个别离群点带来的绝对误差的影响。

对数损失函数

LogLoss,在一个二分类问题中,LogLoss定义为:

L o g L o s s = − 1 N ∑ i = 1 N ( y i l o g P i + ( 1 − y i ) l o g ( 1 − P i ) ) LogLoss=-\frac{1}{N}\sum_{i=1}^N(y_{i}logP_{i}+(1-y_{i})log(1-P_{i})) LogLoss=N1i=1N(yilogPi+(1yi)log(1Pi))

其中 y i y_{i} yi为输入实例 x i x_{i} xi的真实类别, p i p_{i} pi为预测输入实例 x i x_{i} xi是正样本的概率,N为样本总数。

LogLoss 是逻辑回归的损失函数,大量深度学习模型的输出层是逻辑回归或softmax,因此采用LogLoss作为评估指标能够非常直观的反映模型损失函数的变化,站在模型的角度来讲,LogLoss非常适于观察模型的收敛情况。

P-R曲线

P-R曲线的横轴是召回率,纵轴是精确率,对于一个排序模型来说,其P-R曲线上的一个点代表在某一阈值下,模型将大于该阈值的结果判定为正样本,将小于该阈值的结果判定为负样本时,排序结果对应的召回率和精确率

整体P-R曲线是通过从高到低移动正样本阈值生成的,如下所示:

P-R曲线下的面积(Area Under Curve, AUC)能够量化P-R曲线的优劣,AUC越大,排序模型的性能越好。

ROC曲线

ROC曲线的全称时 the Receiver Operating Characteristic曲线,中文译为「受试者工作特征曲线」,ROC曲线最早诞生于军事领域,而后在医学领域应用甚广,「受试者工作特征曲线」也来源于该领域。

ROC曲线的横坐标时 False Posotive Rate(FPR, 假阳性率),纵坐标时True Positive Rate(TPR,真阳性率),FPR和TPR的计算方法如下:

F P R = F P N FPR=\frac{FP}{N} FPR=NFP
T P R = T P P TPR=\frac{TP}{P} TPR=PTP

上式中P是真实的正样本数量,N是真实的负样本数量,TP指的是P个正样本中被分类器预测为正样本的个数,FP指的是N个负样本中被分类器预测为正样本的个数。

ROC曲线的绘制和P-R曲线一样,通过不断移动模型正样本阈值生成的,ROC曲线下的面积就是AUC

平均精度均值

平均精度均值(Mean Average Precision,mAP)是另一个在推荐系统、信息检索领域常用的评估指标,该指标其实是对平均精度(Average Precision,AP)的再次平均。

假设推荐系统对某一用户测试集的排序结果如下所示:

推荐序列N=1N=2N=3N=4N=5N=6
真实标签100111

其中,1代表正样本,0代表负样本

那么对于上述的序列,precision@N分别是多少呢?

推荐序列N=1N=2N=3N=4N=5N=6
真实标签100111
precision@N1/11/21/32/43/54/6

AP的计算只取正样本处的precision进行平均,即 AP= (1/1 + 2/4 + 3/5 + 4/6) =0.6917

那么mAP是什么呢?

如果推荐系统对测试集中的每个用户都进行样本排序,那么每个用户都会计算出一个AP值,再对所有用户的AP值进行平均,就得到了mAP,也就是mAP是对精确度平均的平均。

需要注意的是,mAP的计算和P-R曲线、ROC曲线的计算方法完全不同,因为mAP需要对每个每个用户的样本进行分用户排序,而P-R曲线和ROC曲线均是对全量测试样本进行排序。

NDCG

CG

CG,cumulative,是DCG的前身,只考虑到了相关性的关联程度,没有考虑到位置的因素,它是一个搜索结果相关性分数的综合,指定位置p上的CG为:

C G p = ∑ i = 1 p r e l i CG_{p}=\sum_{i=1}^p rel_{i} CGp=i=1preli

r e l i rel_{i} reli代表i这个位置的相关度。

比如搜索“推荐系统”图书时,最理想的结果时R1、R2、R3,但出现的结果是 R2、R3、R1,CG值是没有变化的。

DCG

DCG, Discounted的CG,就是在每一个CG的结果上除以一个折损值,目的是为了让排名越考前的结果越能影响最后的结果,假设排序越靠后,价值越低,那么到第i个位置时,价值为 1 l o g 2 ( i + 1 ) \frac{1}{log_{2}(i+1)} log2(i+1)1,那么第i个结果产生的效益是 r e k i ∗ 1 / l o g 2 ( i + 1 ) rek_{i}*1/log_{2}(i+1) reki1/log2(i+1),所以DCG表达式为:

D C G p = ∑ i = 1 p r e l i l o g 2 ( i + 1 ) DCG_{p}=\sum_{i=1}^p \frac{rel_{i}}{log_{2}(i+1)} DCGp=i=1plog2(i+1)reli
= r e l i + ∑ i = 2 n r e l i l o g 2 ( i + 1 ) =rel_{i}+\sum_{i=2}^{n} \frac{rel_{i}}{log_{2}(i+1)} =reli+i=2nlog2(i+1)reli

另外一种比较常用的公式,增加相关度影响比重的DCG计算方式是:

D C G p = ∑ i = 1 p 2 r e l i − 1 l o g 2 ( i + 1 ) DCG_{p}=\sum_{i=1}^p \frac{2^{rel_{i}}-1}{log_{2}(i+1)} DCGp=i=1plog2(i+1)2reli1

百科中写到后一种更多用于工业。当然相关性值为二进制时,即 r e l i rel_{i} reli 在0,1,二者结果是一样的。当然CG相关性不止是两个,可以是实数的形式。

NDCG

NDCG,归一化的DCG,由于搜索结果随着检索词的不同,返回的数量是不一样的,而DCG是一个累加的值,没法针对两个不同的检索结果进行归一化出力,这里是除以IDCG。

N D C G p = D C G I D C G p NDCG_{p}=\frac{DCG}{IDCG_{p}} NDCGp=IDCGpDCG

IDCG为理想情况下的最大的DCG的值,为:
I D C G p = ∑ i = 1 R E L 2 r e l i − 1 l o g 2 ( i + 1 ) IDCG_{p}=\sum_{i=1}^{REL} \frac{2^{rel_{i}}-1}{log_{2}(i+1)} IDCGp=i=1RELlog2(i+1)2reli1
其中 ∣ R E L ∣ |REL| REL表示,结果按照相关性从大到小的顺序排序,取前个结果组成的集合,也就是按照最优的方式对结果进行排序。

覆盖率

覆盖率 = 推荐的物品数 总物品数 覆盖率=\frac{推荐的物品数}{总物品数} 覆盖率=总物品数推荐的物品数

覆盖率最简单的定义是,推荐系统能够推荐出来的物品占总物品的比例,将更多的物品推荐(曝光)出去,只有曝光出去才有被用户“消费”的可能;覆盖率越高表明模型能够针对更多的item产生推荐,从而促进长尾效应挖掘。

挖掘长尾的能力

通过日志分析,我们可以知道哪些推荐的物品是流行的,哪些是长尾。拿视频推荐来举例,我们可以根据二八定律,将电影播放量降序排列,播放量占总播放量80%的前面的电影,算作热门电影,后面的当做长尾。

在度量推荐系统长尾能力时,我们可以从如下三个维度来度量:

  1. 所有长尾推荐物品中每天有多少比例被分发出去了
  2. 有多少比例的用户,推荐过了长尾物品
  3. 长尾内容的转化情况和产生的商业价值

多样性

用户的兴趣会改变的,而且有些产品的用户不止一个,同一个用户的兴趣也会受到时间段、心情、节日等多种因素的影响,在推荐列表中插入不同类别的产品来提高多样性。

时效性

不同的产品有不同的时效性,比如电商类需要的时效性不是很高,但是新闻资讯、短视频这类产品,就需要很高的时效性、所以针对不同产品甚至产品下不同的类别,设置不同的时效性,这也是提高推荐质量的途径之一。

所以时效性一般分为四个级别:日级、小时级、分钟级、秒级。我们可以根据不同的产品形态,不同的业务场景等因素来进行评估,选出产品所属的时效性。

2.5 Replay

动态离线评估方法

传统离线评估方法和动态离线方法对比

传统离线方法:模型不会随着评估的进行而更新,假设用一个月得测试数据评估一个推荐系统,如果评估过程是静态的,这就意味着当模型对月末得数据进行预测时,模型已经停止更新近30天了,这不仅不符合工程实践,而且会导致模型效果评估得失真
动态离线评估方法:先根据样本产生时间对测试样本由早到晚进行排序,再用模型根据样本时间依次进行预测,在模型更新的时间点上,模型需要增量学习更新时间点前的测试样本,更新后继续进行后续的评估。

毫无疑问,动态评估的过程更接近真实的线上环境,评测结果也更接近客观情况,如果模型更新的频率持续增加,快到接收到样本就更新,整个动态评估的过程也变成逐一样本回放的精准线上仿真过程,这就是经典的仿真式离线评估方法-Replay。

Replay方法不仅适用于几乎所有推荐模型的离线评估,而且是强化学习类模型唯一的离线评估方法。

Replay的实际实现中有一点需要特别注意的是:样本中不能包含任何「未来信息」,要避免数据穿越的现象发生

A/B测试与线上评估

上文介绍的离线评估指标无法还原真实的线上环境,几乎所有的互联网公司,线上A/B 测试都是验证新模块、新功能、新产品是否有效的主要方法。

又称「分流测试」或「分桶测试」,是一个随机实验,通常被分为实验组和对照组。利用控制变量法,保持单一变量进行A、B两组的数据对比,并得到结论。

线上A/B测试无法被替代的原因主要有以下三点:

离线评估无法完全消除数据有偏(data bias)现象的影响,因此得到的离线评估结果无法完全替代线上评估结果
离线评估无法完全还原线上的工程环境,比如请求延迟、数据丢失、标签数据缺失等,离线评估比较理想化,结果存在失真现象
线上系统的某些商业指标再离线评估中无法计算

A/B测试的分桶原则

需要注意样本等独立性和无偏性,同一用户在测试的全程中只能被分到同一个桶中。

在实际的场景中,同一App或者网站需要进行多组不同类型的A/B测试,统同一业务的不同模块也会进行A/B测试(比如推荐系统中的召回层、排序层、展示层等),这种情况下不同层之间势必会产生干扰,同层之间也可能因为分流策略不当导致指标失真。

谷歌在其实验平台论文:Overlapping Experimen Infrastructure: More, Bette, Faster Experimentation 详细介绍了实验流量分层和分流的机制。A/B测试分流和分层的机制可以概括为:

层与层之间的流量正交,即层与层之间的独立实验的流量是正交的,即实验中每组的流量穿越该层后,都会被再次随机打散,且均匀的分布再下层的每个实验中
同层之间的流量互斥,即
同层之间进行多组A/B测试,不同测试之间的流量是不重叠的
一组A/B测试中实验组和对照组的流量是不重叠的,是互斥的

线上A/B测试的评估指标

不同业务背景关注的指标可能不一样,同一类型不同模块的业务下关注的指标也不一样,电商中经常关注的是:点击率、转化率、下单率、GMV、复购率等,娱乐咨询类平台关注的是:点击率、阅读时长、留存率等。

在进行A/B测试时,进行指标的对比和模型策略等的验证是比较有说服力的。

Interleaving线上评估方法

2013年微软提出了Interleaving线上评估方法,被当作时线上A/B测试的预选阶段进行候选算法的快速筛选,从大量初始想法中筛选出少量优秀的推荐算法,再对缩小的算法集合进行传统的A/B测试,以侧拉他们对用户行为的长期影响。

使用 Inter leaving 进行快速线上测试。用灯泡代表候选算法。其中,最优的获胜算法用红色表示。Interleaving 能够快速地将最初的候选算法集合进行缩减,相比传统的 AB Test 更快地确定最优算法。

A/B测试存在的统计学问题

A/B测试虽然是样本进行随机分配,但是难免会存在分布不均匀得情况,我们都知道二八原则,当对平台用户进行分流时,没有办法保证活跃用户也能被均分,因此一种可行的方法就是不对测试人群进行分组,而是让所有测试者都可以自由的选择要测试的物品,在实验结束时,统计每个人选择不同物品的比例,进行相关的数据统计(有点像做选择题哈哈),这种方案的优点在于:

消除了A/B测试者自身属性分布不均的问题
通过给予每个人相同的权重,降低了活跃用户对结果的影响

Interleaving

这种不区分A/B组,而是把不同的被测对象同时提供给受试者,最后根据守试者的选择得出评估结果的方法称为——Interleaving方法。

Interleaving 方法的优缺点

优点:

  • 所需样本少
  • 测试速度快
  • 结果与A/B测试无明显差异

缺点:

  • 工程实现的框架较A/B测试复杂,实验逻辑和业务逻辑纠缠在一起,业务逻辑会被干扰
  • Interleaving方法只是对“用户对算法推荐结果偏好程度”的相对测量,不能得出一个算法真实的表现,如果需要知道某个算法的具体指标提升,不适合使用Interleaving

2.6 用户数据指标

所谓的用户指标就是从用户的角度去衡量所推荐产品的效果,是否满足用户的需求,能不能给用户带来惊喜,或者引发用户搜索更多产品等,可以从以下几个标准来衡量:

推荐命中率/准确度

推荐命中率/准确度就是所推荐的产品用户喜不喜欢的最直观的指标,比如推荐的商品,用户有没有加入购物车或者下单,推荐的音乐用户有没有收藏或收听,推荐的课程用户有没有学习等,都可以用来衡量用推荐的命中率。

用户的喜欢程度

用户的行为反应出用户对于推荐产品的喜爱程度,比如:推荐的歌曲用户听了之后有没有收藏,收藏之后有没有分享出去;推荐的商品有没有浏览,浏览后有没有加入购物车,加入购物车后有没有购买等;不同的行为体现了不同的喜欢程度,这一指标很好的衡量推荐产品的效果。

产品对于用户的新颖性

推荐用户没有接触过的产品,不一定是用户喜欢的,但是可以提升用户的探索欲望,从而获取更完整的用户兴趣。

多样性

用户的兴趣是多样的,在做推荐的时候需要给用户提供多样的物品,可以挖掘新用户的兴趣点,拓展用户的兴趣范围,提升用户的体验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/641291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Socket TCP/IP协议数据传输过程中的粘包和分包问题

Socket TCP/IP协议数据传输过程中的粘包和分包问题 一:通过图解法来描述一下分包和粘包,这样客户更清晰直观的了解: 下面对上面的图进行解释: 1.正常情况:如果Socket Client 发送的数据包,在Socket Server…

PowerBI 开发 第23篇:共享数据集

Power BI共享数据集的优点是:只要数据集刷新,那么引用该数据集的报表都会自动刷新,节省了报表数据刷新的时间和算力,缺点是:使用共享数据集的报表,虽然可以新增Measure(Measure仅存在于本地报表中&#xff…

The baby-bust economy “婴儿荒”经济 | 经济学人20230603版社论双语精翻

2023年6月3日《经济学人》(The Economist)封面文章暨社论(Leaders)精选:《“婴儿荒”经济》(“The baby-bust economy”)。 baby-bust即“婴儿荒”(生育低谷)&#xff0c…

Unity Shader Graph Ase三者分别有什么不一样的地方?

什么是Shader? 着色器 (Shader) 应用于计算机图形学领域,指一组供计算机图形资源在执行渲染任务的时使用的指令,用于计算机图形的颜色或明暗。但近来,它也能用于处理一些特殊的效果,或者视频后处理。通俗的说&#xf…

机器学习:基于AdaBoost算法模型对信用卡是否违约进行识别

系列文章目录 作者:i阿极 作者简介:数据分析领域优质创作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒…

低代码开发重要工具:jvs-form(表单引擎)2.1.7功能清单及新增功能介绍

jvs-form 2.1.7 版本功能清单 在低代码开发平台中,表单是用于收集和编辑数据的页面。它通常用于创建、更新或查看单个记录的详细信息。 jvs-form是jvs快速开发平台的8大引擎的其中之一,它的特点: 与动态模型联动,支持动态的调整…

Python心经(6)

目录 callable super type()获取对应类型 isinstance判断对象是否是某个类或者子类的实例 issubclass,判断对象是不是类的子孙类 python3的异常处理 反射: 心经第三节和第五节都写了些面向对象的,这一节补充一…

黑苹果 或者 Mac 因 mds资源占用过高,导致频繁死机

开机后不久,风扇狂转,温度升高,然后死机,关机。 1. 使用 “Apple 诊断”测试 Mac 先看看硬件层面是否有问题。 使用“Apple 诊断”测试 Mac。 这款 Mac 的处理器是 Intel ,开启 Mac,然后在 Mac 启动时立…

java的File

一、File (一)新建File对象 File对象表示一个路径,可以是文件路径,也可以是文件夹路径;这个路径可以是存在的,也可以是不存在的。 File类常见的构造方法: 例如: 注意:因…

母线差动保护(一)

与其他的主设备保护相比,母线保护的要求更为苛刻。当变电站母线发生故障时,如不及时切除故障,将会损坏众多电力设备,破坏系统的稳定性,甚至导致电力系统瓦解。如果母线保护拒动,也会造成大面积的停电。因此…

微服务外网部署灵活配置方案(不改代码适配apm和日志中心)

1.综述 之前微服务在进行部署时,有关日志中心和apm相关的配置都是放在代码相应的配置文件中的。 日志中心: /src/main/resources/logback-spring.xml /PIPELINE/docker/flume/hosts apm: /PIPELINE/docker/apm/apm_agent_dev.config /PIPELINE/docker/apm/ap…

TensorFlowLite 声音识别

开发 添加tensorflow的核心依赖 implementation org.tensorflow:tensorflow-lite-task-audio:0.4.0将训练模型放到main/assets文件夹下 在build.gradle中配置 因为打包时tflite文件可能会被压缩,所以需要配置如下 buildFeatures {viewBinding true}androidResources {noComp…

2023 开放原子全球开源峰会高峰论坛成功举办

6 月 11 日,以 “开源赋能,普惠未来” 为主题的 2023 开放原子全球开源峰会高峰论坛在北京成功举办。工业和信息化部相关司局、北京市经济和信息化局、北京经济技术开发区管理委员会相关领导出席并致辞。 北京市经济和信息化局副局长王磊在致辞中表示&am…

4、5类LSA案例

拓扑 需求 实现PC1和PC3互联互通 配置步骤 1)配置接口信息 - 配置PC的IP地址 - 配置路由器的接口 2)配置OSPF单区域 - 创建ospf进程,定义router-id - 指定相应区域 - 宣告网段进入ospf 3)配置OSPF多区域 4) R6配置去往PC3的静…

Matlab论文插图绘制模板第103期—分组散点图

在之前的文章中,分享了Matlab散点图的绘制模板: 进一步,再来分享一下分组散点图的绘制模板。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以…

【裸机开发】按键输入实验

目录 一、硬件原理分析 二、寄存器分析 1、时钟源初始化 2、设置 IO 复用 3、初始化 IO 复用引脚(设置电气属性) 4、初始化GPIO 三、汇编代码(start.s) 四、公共头文件(imx6u.h) 四、C 代码编写 …

【6.13 代随_56day】 两个字符串的删除操作、编辑距离

两个字符串的删除操作、编辑距离 两个字符串的删除操作1.方法图解步骤代码 编辑距离1.方法图解步骤代码 两个字符串的删除操作 力扣连接:583. 两个字符串的删除操作(中等) 1.方法 确定递推公式 当word1[i - 1] 与 word2[j - 1]相同的时候 …

STL之list

目录 list模拟实现一. list的基本框架二. list_node类1.构造函数2.其他函数 三. 迭代器(iterator)1.结构2. 构造函数3. 运算符重载operator-> 四.反向迭代器1.结构2.构造函数3.运算符重载 五. list常用方法及实现1. 默认构造函数a.empty_init 2.迭代器…

8. WebGPU 平移变换

我们将开始编写与顶点缓冲区文章中的示例类似的代码,但这次将绘制单个 F 而不是一堆圆,并使用索引缓冲区来保持数据更小。 让我们在像素空间而不是裁剪空间中工作,就像 Canvas 2D API 我们将制作一个 F,将从 6 个三角形构建它 …

啥?PCB拼版对SMT组装有影响!

PCB为什么要拼版? 拼版主要是为了满足生产的需求,有些PCB板太小,不满足做夹具的要求,所以需要拼在一起进行生产。 拼版也可以提高SMT贴片的焊接效率,如只需要过一次SMT,即可完成多块PCB的焊接。 同时也可…