推荐

news/2024/11/17 6:55:54/文章来源:https://www.cnblogs.com/EIPsilly/p/18381958

DIN

在这里插入图片描述

假设 \(V_i^{shop},V_i^{good},V_i^{cate}\) 分别表示历史第 \(i\) 次点击的 shop_id,good_id,cate_id, \(V_a^{shop},V_a^{good},V_a^{cate}\) 分别表示候选商品的 shop_id,good_id,cate_id,则两个不同版本用户兴趣表达 \(V_u\) 计算方式如下

\[\begin{align} g\left( V_i^{shop},V_a^{shop} \right)&=FC\left( Concat\left( \left[ V_i^{shop},V_a^{shop},V_i^{shop}-V_a^{shop},V_i^{shop}\ast V_a^{shop} \right] \right) \right) \\ g\left( V_i^{good},V_a^{good} \right)&=FC\left( Concat\left( \left[ V_i^{good},V_a^{good}, V_i^{good}-V_a^{good}, V_i^{good}\ast V_a^{good} \right] \right) \right) \\ V_u^{shop}&=\sum_{i=1}^{N}{g\left( V_i^{shop},V_a^{shop} \right)V_i^{shop}} \\ V_u^{good}&=\sum_{i=1}^{N}{g\left( V_i^{good},V_a^{good} \right)V_i^{good}} \\ V_u&=Concat\left( \left[ V_u^{shop},V_u^{good} \right] \right) \end{align} \tag{2} \]

DIN的优缺点

  • 缺点
    • 用户兴趣应该是不断进化的。DIN抽取的用户兴趣是固定的,没有捕获到兴趣的这种进化性
    • 如何保证通过用户的显式的行为得到的兴趣是有效的(不太明白)

参考资料:

  • https://blog.csdn.net/u012328159/article/details/123043033
  • https://zhuanlan.zhihu.com/p/103092757?utm_medium=social&utm_psn=1811383167061475328&utm_source=wechat_session

GAUC

DIN在模型的评估上,定义了 GAUC:

\[GAUC=\frac{\sum_{i=1}^{n}{\text{impression}_i\times AUC_i}}{\sum_{i=1}^{n}\text{impression}_i}\tag4 \]

其中 \(n\)表示用户数, \(\text{impression}_i\)\(AUC_i\)分别表示第 \(i\) 个用户的曝光和 AUC,新的 AUC 更贴近线上真实情况,因为最终我们是按每个用户进行排序的。

GAUC的缺点:

  • GAUC是单用户的sample求auc以后再平均,但是单用户行为没有那么多的时候,会抖动

参考资料:https://blog.csdn.net/qfikh/article/details/105390002

AUC

  • ROC曲线:ROC曲线的横坐标是FPR(表示实际为负的样本有多少预测成了正),纵坐标是TPR(表示实际为正的样本有多少预测成了正)。对于一个分类器的输出通常是概率阈值。通过改变阈值大小,会输出不同的FPR和TPR的值,将其连接起来则得到ROC曲线

AUC 的计算公式

\[AUC = \frac{\sum_{a\in P}^{}{rank_i}-\frac{|P|*(|P|+1)}{2}}{|P|*|N|} \]

接下来,我们解释一下这个公式:

P:表示正样本

N:表示负样本

|P|:表示正样本数量

|N|:表示负样本数量

| \(rank_{i}\) |:表示根据模型的预测分数排行,i 号样本的顺序编号。

好的,我们来看一下,这个公式是怎么推演出来的?

编号样本模型预测值
1p10.25
2p20.3
3n10.4
4p40.80
5n20.80
6n30.80
7p50.85
8n40.89
9n50.95
10p30.96

假如我们现在存在 10 个样本,并且模型对 10 个正样本都给出了对应的预测值,最后我们还按照模型的预测值的大小进行了排序。那么 \(rank_{i}\)rank_{i} 即表示样本排序后的编号。

好,我们说:

AUC 等于随机挑选一个正样本和负样本时,模型对正样本的预测分数大于负样本的预测分数的概率。

对于预测概率第 1 大的正样本,也就是编号为 10 的样本,在上表中对应 P1,那么比他小的负样本的个数为 \(rank_{n} - (\left| P \right|)\)

对于预测概率第 2 大的正样本,也就是编号为 7 的样本,在上表中对应 P5,那么比他小的负样本的个数为 \(rank_{n-1} - (\left| P \right| - 1)\)

找规律一直下去:

对于预测概率最小的正样本,比他小的负样本的个数为 \(rank_{1} - 1\)

好的,那么这样其实分子就出来了,我们把他们加和处理。

\[rank_{n} - (\left| P \right|) + rank_{n-1} - (\left| P \right| - 1) + \cdots + rank_{1} - 1 = \sum_{a\in P}^{}{rank_i}-\frac{|P|*(|P|+1)}{2} \]

那我们只需要求解分母就可以了,任意去一个正样本和一个负样本,共有 \(|P|\times|N|\) 种方案。

那么现在这个公式是不是就表示,挑选一个正样本和负样本,正样本的预测分数大于负样本的预测分数的概率了呢?

\(AUC = \frac{\sum_{a\in P}^{}{rank_i}-\frac{|P|*(|P|+1)}{2}}{|P|*|N|}\)

那么,我们计算一下改表格对应的 AUC 是多少?

编号样本预测分数
1p10.25
2p20.3
3n10.4
4 --> 5p40.80
5 --> 5n20.80
6 --> 5n30.80
7p50.85
8n40.89
9n50.95
10p30.96

可以看到,这里面包含了一些预测分数相等的行,对于这样的数据,我们只需要对编号进行加和重新平均即可。将编号4、 5、6 替换成 5。

好的,代公式:

\[AUC = \frac{\sum_{a\in P}^{}{rank_i}-\frac{|P|*(|P|+1)}{2}}{|P|*|N|} = \frac{(1+2+5+7+10) - \frac{5*(5+1)}{2}}{5*5} = 0.4 \]

参考资料:https://zhuanlan.zhihu.com/p/361214293

AUC 含义的理解


注:下面的说明不是严格的证明,只是帮助通俗理解。

那么,应该怎么将 AUC 的值与概率联系起来呢?首先,我们知道整个区域的面积是 1。假设正样本的数量为 \(M\) ,负样本数量为 \(N\),并且在改变阈值的过程中,每当一个样本从被预测为正,变为被预测为负,则:

  • 若此样本为正样本,则 TPR 将减小 \(\frac{1}{M}\)
  • 若此样本为负样本,则 FPR 将减小 \(\frac{1}{N}\)

由于每让一个样本的预测结果发生变化,都画出了一条线段,因此让每个样本对应一条线段,负样本对应上方水平的线段,正样本对应右侧垂直的线段。于是可以将整个区域划分为 \(M\times N\) 个小区域,每个区域可以由一条垂直的线段和一条水平的线段通过平移组成,那么这个区域就可以代表这两条线段对应的一个正样本和一个负样本组成的样本对,如下图。

那么我们来理解一下图中黄色区域代表什么?这个黄色部分代表的其实是所有得分比 n2 的得分高的正样本与 n2 组成的样本对。也就是说黄色的部分由 4 个小块组成,每个小块是一个样本对,在这个样本对中,正样本的得分比负样本得分高。

所以,我们可以得到结论,ROC 曲线下面的所有小块代表的样本对都是正样本得分比负样本得分高的样本对。而我们也可以证明 ROC 上面的所有小块代表的样本对都是正样本得分比负样本得分低的样本对。

现在,你能否理解 AUC 的含义了呢:随机给定一个正样本和一个负样本,用一个分类器进行分类和预测,该正样本的得分比该负样本的得分要大的概率

而根据这一含义,我们也可以确定,AUC 越大(越接近 1),模型的分类效果越好。

参考资料:https://www.zhihu.com/question/39840928/answer/1085753375

线下AUC提升为什么不能带来线上效果提升?

  1. 样本
    • 线下评测基于历史出现样本,而线上测试存在新样本。因此线下AUC提升可能只是在历史出现样本上有提升,但是对于线上新样本可能并没有效果。
    • 数据本身由老模型产生,本身也是存在偏置的。
    • 和线下特征不一致。例如包含时间相关特征,存在特征穿越。或者线上部分特征缺失等等。
  2. 评估目标
    • AUC计算的时候,不仅会涉及同一个用户的不同item,也会涉及不同用户的不同item,而线上排序系统每次排序只针对同一个用户的不同item进行打分。
    • 线上效果只和用户看到后的点击的可能性有关,和position等偏置因素无关的。而线下一般是不同position的样本混合训练,因此线上和线下评估不对等。
  3. 分布变化:DNN模型相比传统模型,一般得分分布会更平滑,和传统模型相比打分布不一致。而线上有些出价策略依赖了打分分布,例如有一些相关阈值,那么就可能产生影响。这个可以绘制CTR概率分布图来检查。

参考资料:https://zhuanlan.zhihu.com/p/58152702

特征穿越

对于使用过去以及当下信息来预测未来的AI算法模型,特征穿越本质上是,特征中包含了未来的信息。

对于线上推理过程,构建特征所使用的信息只能来自当下或过去,自然不存在特征穿越问题。

而对于线下训练过程,构建特征时可能会误引入样本发生时刻之后的信息,导致特征穿越。

当训练过程中存在特征穿越问题时,训练评估结果极佳,但线上效果往往会迥然不同。因为模型在训练评估时,使用了特征中的未来信息,而在线上推理时,特征中不再包含未来信息,导致了显著的Training-Serving Skew。

参考资料:https://zhuanlan.zhihu.com/p/402812843

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优化器

优化器 目录优化器SGDAdagradAdadeltaRMSpropAdamAdamW SGD 随机梯度下降 问题:训练轨迹会呈现锯齿状,这无疑会大大延长训练时间。同时,由于存在摆动现象,学习率只能设置的较小,才不会因为步伐太大而偏离最小值。 Momentum:将一段时间内的梯度向量进行了加权平均,分别计…

读软件开发安全之道:概念、设计与实施10安全设计审查

安全设计审查1. 安全设计审查 1.1. Security Design Review,SDR 1.2. 将安全性融入软件设计的最佳方法之一是戴上“安全帽”进行单独的设计审查 1.3. 安全审查员是熟悉软件运行的系统和环境,以及知道如何使用它的人,但他们不参与设计工作,这能够给予他们距离感以保持客观性…

【Java】FastJson 利用JSONPath.eval快速获取目标json的属性值

一、需求场景: JSON串格式化之后,JSON树的属性深度太长了 二、代码实现: 语法等效MySQL的JSON读取方式 方法调用的返回类型为Object,强转至String进行处理/* 读取报告时间 */ Object reportDateEval = JSONPath.eval(jsonObject, "$.categories[0].children[0].data.…

10.网络安全技术

12-1 数据备份策略和盘阵列备备份方式12-2 加密技术12-3 入侵检测系统IDS12-4 入侵防护系统IPS脚本属于应用12-5 网络版防病毒软件的安装及配置12-6 防火墙PIX配置过程下面nameif常考内网100外网0下面管道第二常考www是默认的80端口C,监视模式TCPorUDPfixup nat global

30 分钟内了解 IEC 61850

30 分钟内了解 IEC 61850 索引术语——IEC 61850 配置、语义分层对象数据模型、客户端 - 服务器、发布 - 订阅。平时学习标准或调试IEC61850设备,需要IEC61850模拟器,推荐一款:客户端下载地址:IEC61850客户端模拟器 服务端下载地址:IEC61850服务端模拟器谣传 IEC 61850 过…

6.2K star!推荐一款开源混沌工程测试平台:Chaos Mesh

1、Chaos Mesh 介绍 Chaos Mesh是一个开源的混沌工程平台,旨在帮助用户在生产环境中测试、验证和优化其应用程序的可靠性和稳定性。通过引入故障注入和混沌工程原则,Chaos Mesh可以模拟各种故障场景,如网络延迟、节点故障、磁盘故障等,以帮助用户发现和解决系统中的潜在问题…

看图学 - Swift 并发

Swift 内置支持以结构化方式编写异步和并行代码。看着那些层层嵌套的闭包,你是不是很想把它们全都干掉? 本文首发于 Ficow Shens Blog,原文地址: 看图学 - Swift 并发。想第一时间获取对于自己有帮助的新内容? 欢迎关注 Ficow 的公众号: 看图学 - Swift 并发如需获取 PD…

《黑神话,悟空》研发公司的薪资水平

大家好,我是晓凡。 最近全网最火爆的要属《黑神话:悟空》了,即便是我这个平时不沾游戏、不追直播的人,也看直播看得津津有味。 一、销量与热度背后 首先,让我们来看看那些令人瞩目的数字。《黑神话:悟空》自发布以来,销量已经超过450万份,总销售额达到了惊人的15亿元人…

NetScaler Release 14.1 Build 29.63 (nCore, VPX, SDX, CPX, BLX) - 混合多云应用交付控制器

NetScaler Release 14.1 Build 29.63 (nCore, VPX, SDX, CPX, BLX) - 混合多云应用交付控制器NetScaler Release 14.1 Build 29.63 (nCore, VPX, SDX, CPX, BLX) - 混合多云应用交付控制器 NetScaler - 混合多云应用交付控制器 请访问原文链接:https://sysin.org/blog/netscal…

dotnet WinUI 3 修复非打包应用运行提示 Microsoft.ui.xaml.dll 找不到

本文记录一个 WinUI 3 的坑点,有时候开发者只是想拉下来代码跑一下,自己本机没有预先安装好 Windows App Runtime 导致缺失环境,进而在运行的时候提示 Unable to load DLL 找不到 Microsoft.ui.xaml.dll 启动失败详细的错误信息如下 System.DllNotFoundException:“Unable t…

读 dotnet 源代码 为何 Thread.Sleep 半毫秒和一毫秒等待时间差距如此之大

本文记录我读 dotnet 的源代码了解到为什么调用 Thread.Sleep 的时候,传入的是不足一毫秒,如半毫秒时或 0.99 毫秒,与传入是一毫秒时,两者的等待时间差距非常大大概如下的代码,分别进行两次传入给 Thread.Sleep 不同等待时间的循环测试。其中一次传入的是 0.99 毫秒,一次…

从零开始学会建网站,个人博客建设!一步步全程图文教程。

第一步,需要购买一个域名,当然,若是测试只用也可用ip暂时替代。 比如 .com .cn .net 等域名,比如以本站:70zhan.com 为例,70zhan是我选择的域名,而.com后缀是国际域名,目前推荐的国际域名后缀包括:.com .net .org,如果是国内则可以选择.cn! 目前国际域名都比较贵,…