当前位置: 首页 > news >正文

VCNet论文阅读笔记

VCNet论文阅读笔记

0、基本信息

信息细节
英文题目VCNet and Functional Targeted Regularization For Learning Causal Effects of Continuous Treatments
翻译VCNet和功能目标正则化用于学习连续处理的因果效应
单位芝加哥大学
年份2021
论文链接[2103.07861] VCNet和功能定向正则化用于学习连续处理的因果效应 (arxiv.org)
代码链接https://github.com/lushleaf/varying-coefficient-net-with-functional-tr
发表会议ICLR 2021 Conference Program Chairs

1、摘要

背景:因果推断(casual inference)在智能营销、药物治疗、决策上有广泛的应用,比如优惠券对用户购买意愿的影响、药品多大程度改善或治愈疾病、某项政策提高多少就业率等。(即,预估一种干预因素(treatment)对结果(outcome)的影响(treatment effect),本文的目标问题就是获得ADRF曲线(平均剂量反应曲线):x轴是药物浓度(treatment),y轴是患者效果(outcome)。

存在问题:

  • 大多数uplift相关的论文都是关于binary treatment的因果效应估计,然而现实生活中,我们却经常遇到连续treatment (continues treatment)的情况。比如电商发放优惠券的满减金额是连续的,医生给病人开药的剂量是连续。那么我们应该如何对continues treatment对情况进行因果效应估计呢?

  • 以前解决连续treatment的方法是将连续treatment分成多个blocks,使用不同的head处理不同的block,但是这样获得的outcome是不连续的(对应下图的Drnet曲线)。

image.png

  • 神经网络处理这个问题大多是,神经网络第一层是 ( t , x ) (t,x) (t,x),最后一层是 y y y,这样做会存在treatment可能会在高维度表征中丢失的问题,以前的处理方法是将 t t t,加到每个隐藏层上,但是这样做让预测更加的不连续。

文章贡献:

  • 提出一个可变系数神经网络VCNet能处理连续干预的网络结构

  • 推广了目标正则化,以获得整个ADRF曲线的双重鲁棒估计。

2、问题陈述和建模

iid 样本 { ( y _ i , x _ i , t _ i ) } _ i = 1 n \{(y\_i,\boldsymbol{x}\_i,t\_i)\}\_{i=1}^n {(y_i,x_i,t_i)}_i=1n,其中X是协变量向量,T是连续treatment[0,1],Y是结果

💎目标就是求平均剂量反应函数:

ψ ( t ) = E ( Y ∣ do ( T = t ) ) \psi(t)=\mathbb{E}(Y\mid\text{do}(T=t)) ψ(t)=E(Ydo(T=t))

这里的 do 操作符表示“干预”或“人为设置”处理变量 𝑇 为 𝑡。这意味着我们要考虑的是,如果我们强制将处理设置为 𝑡,在这种情况下 𝑌的期望值。

患者年龄 X治疗水平 T结果 Y
1300.52
2300.53
3500.54
4800.51

ψ ( 0.5 ) = E ( Y ∣ do ( T = 0.5 ) ) \psi(0.5)=\mathbb{E}(Y\mid\text{do}(T=0.5)) ψ(0.5)=E(Ydo(T=0.5))

但在实际应用中,我们通常不能直接进行干预实验,我们只能观察到变量间的关系。在观察性数据中,我们常常用条件期望来替代这个干预性期望。我们需要将这个理论性的期望转换为可实际计算的形式。

ψ ( t ) = E ( Y ∣ do ( T = t ) ) = E ( E ( Y ∣ X , T = t ) ) \psi(t)=\mathbb{E}(Y\mid\text{do}(T=t))=\mathbb{E}(\mathbb{E}(Y|X,T=t)) ψ(t)=E(Ydo(T=t))=E(E(YX,T=t))

ψ ( 0.5 ) = E ( Y ∣ do ( T = 0.5 ) ) = E ( E ( Y ∣ X , T = 0.5 ) ) \psi(0.5)=\mathbb{E}(Y\mid\text{do}(T=0.5))=\mathbb{E}(\mathbb{E}(Y|X,T=0.5)) ψ(0.5)=E(Ydo(T=0.5))=E(E(YX,T=0.5))

E ( Y ∣ 30 , T = 0.5 ) = ( 2 + 3 ) / 2 = 2.5 \mathbb{E}(Y|30,T=0.5) = (2+3)/2 = 2.5 E(Y∣30,T=0.5)=(2+3)/2=2.5

E ( Y ∣ 50 , T = 0.5 ) = 4 \mathbb{E}(Y|50,T=0.5) =4 E(Y∣50,T=0.5)=4

E ( Y ∣ 80 , T = 0.5 ) = 1 \mathbb{E}(Y|80,T=0.5) =1 E(Y∣80,T=0.5)=1

ψ ( 0.5 ) = E ( E ( Y ∣ X , T = 0.5 ) ) = E ( E ( Y ∣ 30 , T = 0.5 ) + E ( Y ∣ 50 , T = 0.5 ) + E ( Y ∣ 80 , T = 0.5 ) ) \psi(0.5)=\mathbb{E}(\mathbb{E}(Y|X,T=0.5)) = \mathbb{E}(\mathbb{E}(Y|30,T=0.5)+\mathbb{E}(Y|50,T=0.5)+\mathbb{E}(Y|80,T=0.5)) ψ(0.5)=E(E(YX,T=0.5))=E(E(Y∣30,T=0.5)+E(Y∣50,T=0.5)+E(Y∣80,T=0.5))

ψ ( 0.5 ) = \psi(0.5) = ψ(0.5)= ( 2.5 + 4 + 1 ) / 3 = 2.42 (2.5+4+1)/3 = 2.42 (2.5+4+1)/3=2.42

但是这里面存在一个问题:年长的患者可能更容易在同一治疗水平下有不同的结果(X存在混杂因素)。

解决方案:

提出一个广义倾向性得分的概念

E ( E ( Y ∣ X , T = t ) ) \mathbb{E}(\mathbb{E}(Y|X,T=t)) E(E(YX,T=t))需要结合所有与 𝑋 相关的信息来进行计算。然而,当你面对的是复杂的数据,有时通过所有的 𝑋 来进行估计会引入噪声或混杂因素。

使用 π ( t ∣ x ) \pi(t|x) π(tx)代表患者接受treatment的概率( P ( t ∣ x ) P(t|x) P(tx)

倾向评分提供了一种将多维数据(特征 𝑋)映射到一维(治疗概率)的方法。这一映射使得我们能够更有效地建模和学习潜在的因果关系。

ψ ( t ) = E ( Y ∣ do ( T = t ) ) = E ( E ( Y ∣ X , T = t ) ) = E ( E ( Y ∣ π ( t ∣ x ) , T = t ) ) \psi(t)=\mathbb{E}(Y\mid\text{do}(T=t))=\mathbb{E}(\mathbb{E}(Y|X,T=t)) = \mathbb{E}(\mathbb{E}(Y|\pi(t|x),T=t)) ψ(t)=E(Ydo(T=t))=E(E(YX,T=t))=E(E(Yπ(tx),T=t))

π ( 0.5 ∣ 30 ) = 0.4 \pi(0.5|30) = 0.4 π(0.5∣30)=0.4

π ( 0.5 ∣ 50 ) = 0.3 \pi(0.5|50) = 0.3 π(0.5∣50)=0.3

π ( 0.5 ∣ 80 ) = 0.3 \pi(0.5|80) = 0.3 π(0.5∣80)=0.3

ψ ( 0.5 ) = E ( E ( Y ∣ π ( t ∣ x ) , T = t ) ) = ( 2.5 ∗ 0.4 + 4 ∗ 0.3 + 1 ∗ 0.3 ) / 1 = 2.5 \psi(0.5)= \mathbb{E}(\mathbb{E}(Y|\pi(t|x),T=t))=(2.5* 0.4+4* 0.3+1* 0.3)/1 = 2.5 ψ(0.5)=E(E(Yπ(tx),T=t))=(2.50.4+40.3+10.3)/1=2.5

通过这个过程,我们减少了由 𝑋引入的潜在偏倚,使得结果 𝑌 更好地反映了治疗的真实效果。

3、VCNet模型原理

3.1 基本结构

image.png

先使用简单的神经网络估计 π ( t ∣ x ) \pi(t|x) π(tx),之后使用VCNet得到预测结果

3.1 𝜋(𝑡|𝑋)估计

由于本文所提到的treatment是连续的,因此本文将treatment分成了B个grid区间,通过softmax转化成一个多分类问题,再通过差值估计得到最后的估计结果。

π _ g r i d N N ( x ) = s o f t m a x ( w z ) \pi\_{grid}^{NN}(x)=softmax(wz) π_gridNN(x)=softmax(wz)

π N N ( t ∣ x ) = π _ g r i d t _ 1 , N N ( x ) + B ( π _ g r i d t _ 2 , N N ( x ) − π _ g r i d t _ 1 , N N ( x ) ) ( t − t _ 1 ) \\\pi^{NN}(t|x)=\pi\_{grid}^{t\_1,NN}(x)+B(\pi\_{grid}^{t\_2,NN}(x)-\pi\_{grid}^{t\_1,NN}(x))(t-t\_1) πNN(tx)=π_gridt_1,NN(x)+B(π_gridt_2,NN(x)π_gridt_1,NN(x))(tt_1)

image.png

3.2 VCNet变系数估计

那如何得到变系数?VCNet中采用样条估计得到 𝜃(𝑡),样条通过对间断点处的导数进行约束,可以实现间断点处的连续性。

一些简单的数学知识可以参考:码农小哥:一文读懂三次样条、曲线连续

假设 θ _ i ( t ) = ∑ _ l = 1 L a _ i , l ϕ _ l N N ( t ) \theta\_i(t)=\sum\_{l=1}^La\_{i,l}\phi\_l^{NN}(t) θ_i(t)=_l=1La_i,lϕ_lNN(t)KaTeX parse error: Undefined control sequence: \[ at position 11: \theta(t)=\̲[̲\theta\_{1}(t),…, 𝑑𝜃(𝑡) 是 𝜃(𝑡) 的维度。

其中, { ϕ _ l N N ( t ) } _ l = 1 L \left\{\phi\_{l}^{NN}(t)\right\}\_{l=1}^{L} {ϕ_lNN(t)}_l=1L为样条基, 𝑎𝑖,𝑙 为系数。则我们有

image

这里样条基的形式可以任意选择,假设以DRNet的多头形式估计变系数,DRNet其实也是VCNet的一个特例。

image.png

3.3 损失函数

同时优化π和μ

image.png

得到最优解

4、结果

从论文实验效果上看,VCNet对连续treatment的估计效果确实挺好的,同时加上DR也能很好的提升效果。

image

image

参考

  • 连续干预下的深度因果推断 – VCNet解读 - 知乎 (zhihu.com)

  • 因果推断笔记 | 连续型treatment因果效应估计之DRNet&VCNet - 知乎 (zhihu.com)

相关文章:

VCNet论文阅读笔记

VCNet论文阅读笔记 0、基本信息 信息细节英文题目VCNet and Functional Targeted Regularization For Learning Causal Effects of Continuous Treatments翻译VCNet和功能目标正则化用于学习连续处理的因果效应单位芝加哥大学年份2021论文链接[2103.07861] VCNet和功能定向正…...

Python 装饰器使用详解

文章目录 0. 引言1. 什么是装饰器?2. 装饰器的基本语法3. 装饰器的工作原理4. 常见装饰器应用场景4.1. 日志记录4.2. 权限校验4.3. 缓存 5. 多重装饰器的执行顺序6. 装饰器的高级用法6.1. 带参数的装饰器6.2. 使用 functools.wraps6.3. 类装饰器 7. 图示说明7.1. 单…...

Vue使用qrcodejs2-fix生成网页二维码

安装qrcodejs2-fix npm install qrcodejs2-fix核心代码 在指定父view中生成一个二维码通过id找到父布局 //通过id找到父布局let codeView document.getElementById("qrcode")new QRCode(codeView, {text: "测试",width: 128,height: 128,colorDark: #00…...

兼容多个AI应用接口,支持用户自定义切换AI接口

项目背景 2023年ChatGPT横空出世,给IT行业造成了巨大的反响。我第一次发现这个ChatGPT有着如此神奇的功能(智能对话,知识问答,代码生成,逻辑推理等),我感到非常吃惊!经过一番学习和…...

[docker]入门

本文章主要讲述的是,docker基本实现原理,docker概念的解释,docker的使用场景以及docker打包与部署的应用。 文章中docker所运行的系统:CentOS Linux release 7.9.2009 (Core) 目录 docker是什么,什么时候需要去使用 …...

《让手机秒变超级电脑!ToDesk云电脑、易腾云、青椒云移动端评测》

前言 科技发展到如今2024年,可以说每一年都在发生翻天覆地的变化。而云上这个词时常都被大家提起,从个人设备连接到云端在如今在也不是梦了。而云电脑这个市场近年来迅速发展,无需购买和维护额外的硬件就可以体验到电脑端顶配的性能和体验&am…...

Nginx处理带有分号“;“的路径

一、背景 安全渗透测试发现springboot 未授权访问的actuator和Swagger-ui 信息泄露的漏洞,需要规避。解决方案中较简单的就是通过Nginx将相关的接口转发到403页面。 在配置的过程当中,遇到了带有…;的路径:http://{ip:port}/{path}/…;/actu…...

Spring Boot框架下的心理教育辅导系统开发

1绪 论 1.1研究背景 随着计算机和网络技术的不断发展,计算机网络已经逐渐深入人们的生活,网络已经能够覆盖我们生活的每一个角落,给用户的网上交流和学习提供了巨大的方便。 当今社会处在一个高速发展的信息时代,计算机网络的发展…...

PyTorch 图像分割模型教程

PyTorch 图像分割模型教程 在图像分割任务中,目标是将图像的每个像素归类为某一类,以分割出特定的物体。PyTorch 提供了非常灵活的工具,可以用于构建和训练图像分割模型。我们将使用 PyTorch 的经典网络架构,如 UNet 和 DeepLabV…...

物联网——USART协议

接口 串口通信 硬件电路 电平标准 串口参数、时序 USART USART主要框图 TXE: 判断发送寄存器是否为空 RXNE: 判断接收寄存器是否非空 RTS为输出信号,用于表示MCU串口是否准备好接收数据,若输出信号为低电平,则说明MCU串口可以接收数据&#…...

前端框架对比与选择:如何在现代Web开发中做出最佳决策

随着互联网技术的迅速发展,前端开发在现代Web应用开发中扮演了至关重要的角色。对于开发者来说,选择合适的前端框架不仅能够提高开发效率,还能确保项目的可维护性和可扩展性。目前市面上有多种主流的前端框架和库,每一种都有其独特…...

【浅水模型MATLAB】尝试复刻SCI论文中的溃坝流算例

【浅水模型MATLAB】尝试复刻SCI论文中的溃坝流算例 前言问题描述控制方程及数值方法浅水方程及其数值计算方法边界条件的实现 代码框架与关键代码模拟结果 更新于2024年9月17日 前言 这篇博客算是学习浅水方程,并利用MATLAB复刻Liang (2004)1中溃坝流算例的一个记录…...

探索云计算:IT行业的未来趋势

探索云计算:IT行业的未来趋势 在当今快速发展的科技世界,云计算已成为IT行业的核心趋势之一。无论是大企业还是初创公司,越来越多的组织正在转向云计算,以实现更高效的运营和更快的创新。在这篇博文中,我们将探讨云计算…...

[PICO VR眼镜]眼动追踪串流Unity开发与使用方法,眼动追踪打包报错问题解决(Eye Tracking/手势跟踪)

前言 最近在做一个工作需要用到PICO4 Enterprise VR头盔里的眼动追踪功能,但是遇到了如下问题: 在Unity里面没法串流调试眼动追踪功能,根本获取不到Device,只能将整个场景build成APK,安装到头盔里,才能在…...

一周热门|比GPT-4强100倍,OpenAI有望年底发布GPT-Next;1个GPU,1分钟,16K图像

大模型周报将从【企业动态】【技术前瞻】【政策法规】【专家观点】四部分,带你快速跟进大模型行业热门动态。 01 企业动态 Ilya 新公司 SSI 官宣融资 10 亿美元 据路透社报道,由 OpenAI 联合创始人、前首席科学家 Ilya Sutskever 在 2 个多月前共同创…...

软考流水线计算

某计算机系统输入/输出采用双缓冲工作方式,其工作过程如下图所示,假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间T为10μs,由缓冲区送至用户区的时间M为6μs,系统对每个磁盘块数据的处理时间C为2μs。若用户需要…...

1份可以派上用场丢失数据恢复的应用程序列表

无论如何,丢失您的宝贵数据是可怕的。您的 Android 或 iOS 设备可能由于事故、硬件损坏、存储卡问题等而丢失了数据。这就是为什么我们编制了一份可以派上用场以恢复丢失数据的应用程序列表。 如果您四处走动,您大多会随身携带手机或其他移动设备。这些…...

MySQL Workbench 超详细安装教程(一步一图解,保姆级安装)

前言: MySQL Workbench 是一款强大的数据库设计和管理工具,它提供了图形化界面,使得数据库的设计、管理、查询等操作变得更加直观和便捷。本文将详细介绍如何在 Windows 系统上安装 MySQL Workbench。相信读者看这篇文章前一定安装了MySQL数…...

深度学习常见面试题及答案(16~20)

算法学习、4对1辅导、论文辅导或核心期刊以及其他学习资源可以通过公众号滴滴我 文章目录 16. 简述深度学习中的批量归一化(Batch Normalization)的目的和工作原理。一、批量归一化的目的1. 加速训练收敛:2. 提高模型泛化能力:3. …...

Packet Tracer - IPv4 ACL 的实施挑战(完美解析)

目标 在路由器上配置命名的标准ACL。 在路由器上配置命名的扩展ACL。 在路由器上配置扩展ACL来满足特定的 通信需求。 配置ACL来控制对网络设备终端线路的 访问。 在适当的路由器接口上,在适当的方向上 配置ACL。…...

Langchain-chatchat源码部署及测试实验

一年多前接触到Langchain-chatchat的0.2版本,对0.2版本进行了本地部署和大量更新,但0.2版本对最新的大模型支持不够好,部署框架支持也不好且不太稳定,特别是多模态大模型,因此本次主要介绍0.3版本的源码部署,希望对大家有所帮助。Langchain-chatchat从0.3版本开始,支持更…...

【Linux】线程(第十六篇)

目录 线程 1.线程基本概述: 2.线程类型: 3.线程间的共享资源与非共享资源 4.线程原语 1.线程创建函数 2.获取当前线程id的函数 3.回收线程资源 4.将线程设置为分离态 5.结束线程 6.退出线程 线程 1.线程基本概述: 是操作系统能够…...

2024华为杯研赛E题保姆级教程思路分析

E题题目:高速公路应急车道紧急启用模型 今年的E题设计到图像/视频处理,实际上,E题的难度相对来说较低,大家不用畏惧视频的处理,被这个吓到。实际上,这个不难,解决了视频的处理问题,…...

国内可以使用的ChatGPT服务【9月持续更新】

首先基础知识还是要介绍得~ 一、模型知识: GPT-4o:最新的版本模型,支持视觉等多模态,OpenAI 文档中已经更新了 GPT-4o 的介绍:128k 上下文,训练截止 2023 年 10 月(作为对比,GPT-4…...

Linux环境Docker安装Mongodb

Linux环境Docker安装Mongodb 环境要求拉取指定版本镜像创建映射目录(相当于数据存放于容器外,容器被删除不会影响数据)启动容器 进入mongo命令行为指定db创建新用户查看mongodb的容器id进入命令行查看所有db切换db为指定db创建新用户使用新账…...

PyTorch 池化层详解

在深度学习中,池化层(Pooling Layer)是卷积神经网络(CNN)中的关键组成部分。池化层的主要功能是对特征图进行降维和减少计算量,同时增强模型的鲁棒性。本文将详细介绍池化层的作用、种类、实现方法&#xf…...

Intel架构的基本知识

1.字节序 CPU的字节序分为LittleEndian和BigEndian。 所谓Endian,就是多字节数据在内存中的排列方式。 例如,假设有一个整数0x11223344: LittleEndian的排列方式是,从内存的低地址开始,依次存放 0x44 0x33 0x22 0x11; BigEndian的排列方式是,从内存的低地址开始,依…...

Element Plus 中Input输入框

通过鼠标或键盘输入字符 input为受控组件,他总会显示Vue绑定值,正常情况下,input的输入事件会正常被响应,他的处理程序应该更新组件的绑定值(或使用v-model)。否则,输入框的值将不会改变 不支…...

大模型中常见 loss 函数

loss 函数 首先,Loss 是允许不降到 0 的,模型计算的 loss 最终结果可以接近 0。 可以成为 loss 函数的条件## 常用 loss 以下函数调用基于 Pytorch,头文件导入: import torch.nn as nn 均方差(MSE) nn.…...

(十六)Ubuntu 20.04 下搭建PX4+MATLAB 仿真环境(HITL)

在文章(十五)Ubuntu 20.04 下搭建PX4MATLAB 仿真环境我们学习了如何配置仿真环境,在本节,主要进行HITL的仿真环境搭建。 根据(十五)Ubuntu 20.04 下搭建PX4MATLAB 仿真环境完成配置到如下界面:…...