精华内容
下载资源
问答
  • 前馈控制与反馈控制

    千次阅读 2021-01-20 16:48:07
    前馈控制系统运用得当,可以使被控变量的扰动消灭在萌芽之中,使被控变量不会因扰动作用或给定值变化而产生偏差,它较之反馈控制能更加及时地进行控制,并且不受系统滞后的影响。 单纯的前馈控制是开环的,

    前馈控制

    前馈控制是在前苏联学者所倡导的不变性原理的基础上发展而成的。20世纪50年代以后,在工程上,前馈控制系统逐渐得到了广泛的应用。前馈控制系统是根据扰动或给定值的变化按补偿原理来工作的控制系统,其特点是当扰动产生后,被控变量还未变化以前,根据扰动作用的大小进行控制,以补偿扰动作用对被控变量的影响。前馈控制系统运用得当,可以使被控变量的扰动消灭在萌芽之中,使被控变量不会因扰动作用或给定值变化而产生偏差,它较之反馈控制能更加及时地进行控制,并且不受系统滞后的影响。

    单纯的前馈控制是开环的,是按扰动进行补偿的,因此根据一种扰动设置的前馈控制就只能克服这一扰动对被控变量的影响,而对于其他扰动对被控变量的影响,由于这个前馈控制器无法感受到,也就无能为力了。所以在实际工业过程中单独使用前馈控制很难达到工艺要求,因此为了克服其他扰动对被控变量的影响,就必须将前馈控制和反馈控制结合起来,构成前馈反馈控制系统。前馈反馈控制系统有两种结构形式,一种是前馈控制作用与反馈控制作用相乘;另一种是前馈控制作用与反馈控制作用相加,这是前馈反馈控制系统中最典型的结构形式。

    采用前馈控制系统的条件是:
    1、扰动可测但是不可控。
    2、变化频繁且变化幅度大的扰动。
    3、扰动对被控变量的影响显著,反馈控制难以及时克服,且过程控制精度要求又十分严格的情况。

    反馈控制

    反馈控制是指在某一行动和任务完成之后,将实际结果进行比较,从而对下一步行动的进行产生影响,起到控制的作用。其特点是:对计划决策在实施过程中的每一步骤所引起的客观效果,能够及时做出反应,并据此调整、修改下一步的实施方案,使计划决策的实施与原计划本身在动态中达到协调。当然,反馈控制主要是对后果的反馈,而已铸成的事实是难以改变,且用新计划代替旧计划、用新决策代替原有决策有一个过程需要一定的时间,由于系统不能适应情况的变化,将会给工作带来不必要的损失。这就是反馈控制不及预先控制之处。

    反馈控制是指将系统的输出信息返送到输入端,与输入信息进行比较,并利用二者的偏差进行控制的过程。反馈控制其实是用过去的情况来指导现在和将来。在控制系统中,如果返回的信息的作用是抵消输入信息,称为负反馈,负反馈可以使系统趋于稳定;若其作用是增强输入信息,则称为正反馈,正反馈可以使信号得到加强。
    在自动控制理论中,“反馈控制”是信号沿前向通道(或称前向通路)和反馈通道进行闭路传递,从而形成一个闭合回路的控制方法。反馈信号分“正反馈”和“负反馈”两种。为了和给定信号比较,必须把反馈信号转换成与给定信号具有相同量刚和相同量级的信号。控制器根据反馈信号和给定信号相比较后得到的偏差信zido号,经运算后输出控制作用去消除偏差,使被控量(系统的输出)等于给定值。闭环控制系统都是负反馈控制系统。
    反馈控制具有许多优点,由于它是按偏差进行控制,具有能抑制任何内、外扰动对被控量产生影响的能力,有较高的控制精度。
    反馈控制的主要缺点是时滞问题,即从发现偏差到采取更正措施之间可能有时间延迟现象,在进行更正的时候,实际情况可能已经有了很大的变化,而且往往是损失已经造成了。

    评价

    前馈控制需要模型。当需要得到一个输出的时候,输入信号可以被事先推算出来,这样给了输入信号之后,输出信号就是想要的值。最简单的前馈控制其实就是电阻模型。假设电阻R,现在想要电流是I,所以要给R*I的电压。不过,前馈有个问题,就是模型精确度不可能完全准确。这个电阻R的值是不确定的,可能实际值会差那么一些,导致电流和预想不一样。

    反馈控制可以不需要模型,但是有模型更好。反馈控制不需要事先知道输入信号。它只检测输出信号。当输出信号低于预期值时,反馈系统会改变输入量,使得输出量增加。对于同样的电阻模型,反馈系统可以检测电阻电流,当电流小于I时,输入电压就会一直增加。直到电流等于I为止。反之,当电流大于I时,输入电压减小,直到电流等于I。

    前馈特点:速度快,不需要检测输出量,需要系统模型,模型不精确的时候结果也不精确。
    反馈特点:检测输出量并且和预想值进行对比,可以不需要系统模型,速度比前馈慢。结果完完全全是预想值。

    所以一个系统如果要精确控制,那么一定需要反馈。如果要超快的系统响应,那就需要前馈。二者可以一起用。

    转载于:https://www.cnblogs.com/jiangkejie/p/10529378.html

    展开全文
  • Datawhale干货 来源:纪厚业,北京邮电大学,图与推荐 编辑:数据派THU 本文约1.5w字,干货满满,建议收藏本文对近期提出的 GNN 解释技术进行了系统的总结和分析,归纳...
    
     Datawhale干货 
    来源:纪厚业,北京邮电大学,图与推荐
    编辑:数据派THU
    
    本文约1.5w字,干货满满,建议收藏本文对近期提出的 GNN 解释技术进行了系统的总结和分析,归纳对比了该问题的解决思路。
    

    图神经网络的可解释性是目前比较值得探索的方向,今天解读的2021最新综述,其针对近期提出的 GNN 解释技术进行了系统的总结和分析,归纳对比了该问题的解决思路。作者还为GNN解释性问题提供了标准的图数据集和评估指标,将是这一方向非常值得参考的一篇文章。

    论文标题:

    Explainability in Graph Neural Networks: A Taxonomic Survey

    论文地址:

    https://arxiv.org/pdf/2012.15445.pdf

    目录

    0.Abstract

    1. Introduction

    2. 总体框架

    3.方法介绍

    • 3.1 基于梯度/特征的方法(Gradients/Features-Based Methods)

    • 3.2 基于扰动的方法(Perturbation-Based Methods)

    • 3.3 基于代理的方法(Surrogate Methods)

    • 3.4 分解方法(Decomposition Methods)

    4. 模型级方法

    5. 评估模型

    • 5.1. Datasets

    • 5.1.1. Synthetic data

    • 5.1.2 Sentiment graph data

    • 5.1.3 Molecule data

    • 5.2 Evaluation Metrics

    • 5.2.1 Fidelity/Infidelity

    • 5.2.2 Sparsity

    • 5.2.3 Stability

    • 5.2.4 Accuracy

    6. Conclusion

    0. Abstract

    近年来,深度学习模型的可解释性研究在图像和文本领域取得了显著进展。然而,在图数据领域,既没有针对GNN可解释性的统一处理方法,也不存在标准的 benchmark 数据集和评估准则。在这篇论文中,作者对目前的GNN解释技术从统一和分类的角度进行了总结,阐明了现有方法的共性和差异,并为进一步的方法发展奠定了基础。此外,作者专门为GNN解释技术生成了 benchmark 图数据集,并总结了当前用于评估GNN解释技术的数据集和评估方法。

    1. Introduction

    解释黑箱模型是十分必要的:如果没有对预测背后的底层机制进行推理,深层模型就无法得到完全信任,这就阻碍了深度模型在与公平性、隐私性和安全性有关的关键应用程序中使用。为了安全、可信地部署深度模型,需要同时提供准确的预测和人类能领会的解释,特别是对于跨学科领域的用户。

    深层模型的解释技术通常从研究其预测背后的潜在关系着手,解释技术大致可分为两类:

    1)input-dependent explanations(依赖输入的解释方法)

    该类方法从特征的角度出发,提供与输入相关的解释,例如研究输入特征的重要性得分,或对深层模型的一般行为有高水平的理解。论文 [10],[11],[18]通过研究梯度或权重,分析预测结果相对于输入特征的敏感程度。论文 [12],[13],[19] 通过将隐藏特征映射到输入空间,从而突出重要的输入特征。[14] 通过遮蔽不同的输入特征,观察预测的变化,以识别重要的特征。

    2)input-independent explanations(独立于输入的解释方法)

    与依赖特征的解释方法不同,该类方法从模型角度出发,提供独立于输入的解释,例如研究输入 patterns,使某类的预测得分最大化。论文[17],[22]通过探究隐藏神经元的含义,进而理解的整个预测过程。论文[23],[24],[25],[26] 对近期的方法进行了较为系统的评价和分类。然而,这些研究只关注图像和文本领域的解释方法,忽略了深度图模型的可解释性。

    GNN 的可解释性

    与图像和文本领域相比,对图模型解释性的研究较少,然而这是理解深度图神经网络的关键。近年来,人们提出了几种解释 GNN 预测的方法,如XGNN[41]、gnexplainer[42]、PGExplainer[43]等。这些方法是从不同的角度提供了不同层次的解释。但至今仍然缺乏标准的数据集和度量来评估解释结果。因此,需要对GNN解释技术和其评估方法进行系统的研究。

    本文

    本研究提供了对不同GNN解释技术的系统研究,目的对不同方法进行直观和高水平的解释,论文贡献如下:

    • 对现有的深度图模型的解释技术进行了系统和全面的回顾。

    • 提出了现有GNN解释技术的新型分类框架,总结了每个类别的关键思想,并进行了深刻的分析。

    • 详细介绍了每种GNN解释方法,包括其方法论、优势、缺点,与其他方法的区别。

    • 总结了GNN解释任务中常用的数据集和评价指标,讨论了它们的局限性,并提出了几点建议。

    • 通过将句子转换为图,针对文本领域构建了三个人类可理解的数据集。这些数据集即将公开,可以直接用于GNN解释任务。


    名词解释:Explainability versus Interpretability

    在一些研究中,“explainability” 和 “interpretability”被交替使用。本文作者认为这两个术语应该被区分开来,遵循论文[44]来区分这两个术语。如果一个模型本身能够对其预测提供人类可理解的解释,则认为这个模型是 "interpretable"。注意,这样的模型在某种程度上不再是一个黑盒子。例如,一个决策树模型就是一个 "interpretable“的模型。同时,"explainable "模型意味着该模型仍然是一个黑盒子,其预测有可能被一些事后解释技术所理解。

    2. 总体框架

    目前存在一系列针对深度图模型解释性问题的工作,这些方法关注图模型的不同方面,并提供不同的观点来理解这些模型。它们一般都会从几个问题出发实现对图模型的解释:哪些输入边更重要?哪些输入节点更重要? 哪些节点特征更重要?什么样的图模式会最大限度地预测某个类?为了更好地理解这些方法,本文为GNNs的不同解释技术提供了分类框架,结构如图1所示。根据提供什么类型的解释,解释性技术被分为两大类:实例级方法和模型级方法。本文接下来的部分将针对图1的各个分支展开讲解,并作出对比。

    图1 GNN 解释性方法分类框架


    1)实例级方法

    实例级方法与特征工程的思想有些类似,旨在找到输入数据中最能够影响预测结果的部分特征,为每个输入图提供 input-dependent 的解释。给定一个输入图,实例级方法旨在探究影响模型预测的重要特征实现对深度模型的解释。根据特征重要性分数的获得方式,作者将实例级方法分为四个不同的分支:

    • 基于梯度/特征的方法[49],[50],采用梯度或特征值来表示不同输入特征的重要程度。

    • 基于扰动的方法[42],[43],[51],[52],[53],监测在不同输入扰动下预测值的变化,从而学习输入特征的重要性分数。

    • 基于分解的方法[49],[50],[54],[55],首先将预测分数,如预测概率,分解到最后一个隐藏层的神经元。然后将这样的分数逐层反向传播,直到输入空间,并将分解分数作为重要性分数。

    • 基于代理的方法[56],[57],[58],首先从给定例子的邻居中抽取一个数据集的样本。接下来对采样的数据集合拟合一个简单且可解释的模型,如决策树。通过解释代理模型实现对原始预测的解释。


    2)模型级方法

    模型级方法直接解释图神经网络的模型,不考虑任何具体的输入实例。这种 input-independent 的解释是高层次的,能够解释一般性行为。与实例级方法相比,这个方向的探索还比较少。现有的模型级方法只有XGNN[41],它是基于图生成的,通过生成 graph patterns使某一类的预测概率最大化,并利用 graph patterns 来解释这一类。

    总的来说,这两类方法从不同的角度解释了深度图模型。实例级方法提供了针对具体实例的解释,而模型级方法则提供了高层次的见解和对深度图模型工作原理的一般理解。

    "Type "表示提供什么类型的解释,"Learning "表示是否涉及学习过程,"Task "表示每种方法可以应用于什么任务(GC表示图分类,NC表示节点分类),"Target "表示解释的对象(N表示节点,E表示边,NF表示节点特征,Walk表示图游走),"Black-box "表示在解释阶段是否将训练好的GNNs作为黑盒处理,"Flow "表示解释的计算流程,"Design "表示解释方法是否有针对图数据的具体设计。

    3. 方法介绍

    3.1 基于梯度/特征的方法(Gradients/Features-Based Methods)

    采用梯度或特征来解释深度模型是最直接的解决方案,在图像和文本任务中被广泛使用。其关键思想是将梯度或隐藏的特征图值作为输入重要性的近似值。一般来说,在这类方法中,梯度或特征值越大,表示重要性越高。需要注意的是,梯度和隐藏特征都与模型参数高度相关,那么这样的解释可以反映出模型所包含的信息。本文将介绍最近提出的几种方法,包括:SA[49]、Guided BP[49]、CAM[50]和Grad-CAM[50]。这些方法的关键区别在于梯度反向传播的过程以及如何将不同的隐藏特征图结合起来。

    1)SA

    SA[49]直接采用梯度的平方值作为不同输入特征的重要性得分。输入特征可以是图节点、边或节点特征。它假设绝对梯度值越高,说明相应的输入特征越重要。虽然它简单高效,但有几个局限性:

    • SA方法只能反映输入和输出之间的敏感程度,不能很准确地表达重要性(敏感度不等于重要性)。

    • 还存在饱和问题[59]。即在模型性能达到饱和的区域,其输出相对于任何输入变化的变化都是十分微小的,梯度很难反映输入的贡献程度。

    2)Guided BP

    Guided BP[49]与SA有着相似的思想,但修改了反向传播梯度的过程。由于负梯度很难解释,Guided BP只反向传播正梯度,而将负梯度剪成零。因此Guided BP与SA有着相同的局限性。

    3)CAM

    CAM [50] 将最后一层的节点特征映射到输入空间,从而识别重要节点。它要求GNN模型采用全局平均池化层和全连接层作为最终分类器。CAM将最终的节点嵌入,通过加权求和的方式组合不同的特征图,从而获得输入节点的重要性分数。权重是从与目标预测连接的最终全连接层获得的。该方法非常简单高效,但仍有几大限制:

    • CAM对GNN结构有特殊要求,限制了它的应用和推广。

    • 它假设最终的节点嵌入可以反映输入的重要性,这是启发式的,可能不是真的。

    • 它只能解释图分类模型,不能应用于节点分类任务中。

    4)Grad-CAM

    Grad-CAM [50] 通过去除全局平均池化层的约束,将CAM扩展到一般图分类模型。同样,它也将最终的节点嵌入映射到输入空间来衡量节点重要性。但是,它没有使用全局平均池化输出和全连接层输出之间的权重,而是采用梯度作为权重来组合不同的特征图。与CAM相比,Grad-CAM不需要GNN模型在最终的全连接层之前采用全局平均池化层。但它也是基于启发式假设,无法解释节点分类模型。

    3.2 基于扰动的方法(Perturbation-Based Methods)

    基于扰动的方法[14],[15],[60]被广泛用于解释深度图像模型。其根本动机是研究不同输入扰动下的输出变化。当重要的输入信息被保留(没有被扰动)时,预测结果应该与原始预测结果相似。论文 [14],[15],[60]学习一个生成器来生成掩码,以选择重要的输入像素来解释深度图像模型。然而,这种方法不能直接应用于图模型,图数据是以节点和边来表示的,它们不能调整大小以共享相同的节点和边数,结构信息对图来说至关重要,可以决定图的功能。

    图2 基于扰动方法的一般流程

    基于扰动的方法采用不同的掩码生成算法来获得不同类型的掩码。需要注意的是,掩码可以对应节点、边或节点特征。在这个例子中,我们展示了一个节点特征的软掩码,一个边的离散掩码和一个节点的近似离散掩码。然后,将掩码与输入图结合起来,得到一个包含重要输入信息的新图,遮蔽掉不需要的信息。最终将新图输入到训练好的GNN中,评估掩码并更新掩码生成算法。

    本文将介绍几种基于扰动的方法,包括:GNNExplainer[42]、PGExplainer[43]、ZORRO[51]、GraphMask[52],Causal Screening[53]。直观地讲,掩码捕捉到的重要输入特征应该传达关键的语义意义,从而得到与原图相似的预测结果。这些方法的区别主要在于三个方面:掩码生成算法、掩码类型和目标函数。

    软掩码包含[0,1]之间的连续值,掩码生成算法可以直接通过反向传播进行更新。但软掩码存在 "introduced evidence "的问题[14],即掩码中任何非零或非一的值都可能给输入图引入新的语义或新的噪声,从而影响解释结果。同时,离散掩码只包含离散值0和1,由于没有引入新的数值,可以避免  "introduced evidence "问题。但是,离散掩码总是涉及到不可微的问题,如采样。主流的解决方法是策略梯度技术[61]。论文[45],[62],[63]提出采用重参数化技巧,如Gumbel-Softmax估计和稀疏松弛,来逼近离散掩码。需要注意的是,输出的掩码并不是严格意义上的离散掩码,而是提供了一个很好的近似值,这不仅可以实现反向传播,而且在很大程度上缓解了”introduced evidence“的问题。

    接下来将详细的介绍目前存在的几种基于扰动的解释性方法,我们可以重点关注它们的作用对象(节点或边或节点特征),以及它们的掩码生成算法、掩码类型和目标函数。

    1)GNNExplainer

    GNNExplainer [42] 学习边和节点特征的软掩码,通过掩码优化来解释预测。软掩码被随机初始化,并被视为可训练变量。然后通过元素点乘将掩码与原始图结合。最大化原始图的预测和新获得的图的预测之间的互信息来优化掩码。但得到的掩码仍然是软掩码,因此无法避免 "introduced evidence"问题。此外,掩码是针对每个输入图单独优化的,因此解释可能缺乏全局视角。


    2)PGExplainer

    PGExplainer[43]学习边的近似离散掩码来解释预测。它训练一个参数化的掩码预测器来预测边掩码。给定一个输入图,首先通过拼接节点嵌入来获得每个边的嵌入,然后预测器使用边嵌入来预测边掩码。预测器使用边嵌入来预测每个边被选中的概率(被视为重要性分数)。通过重参数化技巧对近似的离散掩码进行采样。最后通过最大化原始预测和新预测之间的相互信息来训练掩码预测器。需要注意的是,即使采用了重参数化技巧,得到的掩码并不是严格意义上的离散掩码,但可以很大程度上缓解 "introduced evidence"的问题。由于数据集中的所有边都共享相同的预测器,因此解释可以提供对训练好的GNN的全局理解。

    3)GraphMask

    GraphMask[52]是一种事后解释GNN各层中边重要性的方法。与PGExplainer类似,它训练一个分类器来预测是否可以丢弃一条边而不影响原来的预测。然而,GraphMask为每一层GNN获取边掩码,而PGExplainer只关注输入空间。此外,为了避免改变图结构,被丢弃的边被可学习的基线连接所取代,基线连接是与节点嵌入相同维度的向量。需要注意的是,采用二进制Concrete分布[63]和重参数化技巧来近似离散掩码。此外,分类器使用整个数据集通过最小化一个散度项来训练,用于衡量网络预测之间的差异。与PGExplainer类似,它可以很大程度上缓解 "introduced evidence"问题,并对训练后的GNN进行全局理解。

    4)ZORRO

    ZORRO[51]采用离散掩码来识别重要的输入节点和节点特征。给定一个输入图,采用贪心算法逐步选择节点或节点特征。每一步都会选择一个fidelity score最高的节点或一个节点特征。通过固定所选节点/特征,并用随机噪声值替换其他节点/特征,来衡量新的预测与模型原始预测的匹配程度。由于不涉及训练过程,因此避免了离散掩码的不可微限制。此外,通过使用硬掩码,ZORRO不会受到 "introduced evidence "问题的影响。然而,贪婪的掩码选择算法可能导致局部最优解释。此外,由于掩码是为每个图形单独生成的,因此解释可能缺乏全局的理解。


    5)Causal Screening

    Causal Screening[53]研究输入图中不同边的因果归因。它为 explanatory subgraph 确定一个边掩码。关键思想是:研究在当前 explanatory subgraph 中增加一条边时预测的变化,即所谓的因果效应。对于每一步,它都会研究不同边的因果效应,并选择一条边添加到子图中。具体来说,它采用个体因果效应(ICE)来选择边,即测量在子图中添加不同边后的互信息(原图与解释子图的预测之间)差异。与ZORRO类似,Causal Screening是一种贪心算法,不需要任何训练过程就能生成离散掩码。因此,它不会受到 "introduced evidence "问题的困扰,但可能缺乏全局性的理解,而停留在局部最优解释上。

    3.3 基于代理的方法(Surrogate Methods)

    由于输入空间和输出预测之间的复杂和非线性关系,深度模型的解释具有挑战性。代理方法能够为图像模型提供实例级解释。其基本思想是化繁为简,既然无法解释原始深度图模型,那么采用一个简单且可解释的代理模型来近似复杂的深层模型,实现输入实例的邻近区域预测。需要注意的是,这些方法都是假设输入实例的邻近区域的关系不那么复杂,可以被一个较简单的代理模型很好地捕获。然后通过可解释的代理模型的来解释原始预测。将代理方法应用到图域是一个挑战,因为图数据是离散的,包含拓扑信息。那么如何定义输入图的相邻区域,以及什么样的可解释代理模型是合适的,都是不清楚的。

    图3 代理模型的一般框架

    给定一个输入图及其预测,它们首先对一个局部数据集进行采样,以表示目标数据周围的关系。然后应用不同的代理方法来拟合局部数据集。需要注意的是,代理模型一般都是简单且可解释的ML模型。最后,代理模型的解释可以看作是对原始预测的解释。本文将介绍最近提出的几种代理方法,包括:GraphLime[56]、RelEx[57]和PGM-Explainer[58]。

    这些方法的一般流程如图3所示。为了解释给定输入图的预测,它们首先获得一个包含多个相邻数据对象及其预测的局部数据集。然后拟合一个可解释模型来学习局部数据集。来自可解释模型的解释被视为原始模型对输入图的解释。不同代理模型关键的区别在于两个方面:如何获得局部数据集和选择什么代理模型。

    1)GraphLime

    GraphLime[56]将LIME[64]算法扩展到深度图模型,并研究不同节点特征对节点分类任务的重要性。给定输入图中的一个目标节点,将其N-hop邻居节点及其预测值视为局部数据集,其中N的合理设置是训练的GNN的层数。然后采用非线性代理模型HSIC Lasso[65]来拟合局部数据集。根据HSIC Lasso中不同特征的权重,可以选择重要的特征来解释HSIC Lasso的预测结果。这些被选取的特征被认为是对原始GNN预测的解释。但是,GraphLime只能提供节点特征的解释,却忽略了节点和边等图结构,而这些图结构对于图数据来说更为重要。另外,GraphLime是为了解释节点分类预测而提出的,但不能直接应用于图分类模型。


    2)RelEx

    RelEx[57]结合代理方法和基于扰动的方法的思想,研究节点分类模型的可解释性。给定一个目标节点及其计算图(N-hop邻居),它首先从计算图中随机采样连接的子图,获得一个局部数据集,并将这些子图喂入训练好的GNN,以获得其预测结果。从目标节点开始,它以BFS的方式随机选择相邻节点。采用GCN模型作为代理模型来拟合局部数据集。

    与GraphLime不同,RelEx中的代理模型是不可解释的。训练后,它进一步应用前述基于扰动的方法,如生成软掩码或Gumbel-Softmax掩码来解释预测结果。该过程包含了多个步骤的近似,比如使用代理模型来近似局部关系,使用掩码来近似边的重要性,从而使得解释的说服力和可信度降低。由于可以直接采用基于扰动的方法来解释原有的深度图模型,因此没有必要再建立一个不可解释的深度模型作为代理模型来解释。


    3)PGM-Explainer

    PGM-Explainer[58]建立了一个概率图形模型,为GNN提供实例级解释。局部数据集是通过随机节点特征扰动获得的。具体来说,给定一个输入图,每次PGM-Explainer都会随机扰动计算图中几个随机节点的节点特征。然后对于计算图中的任何一个节点,PGM-Explainer都会记录一个随机变量,表示其特征是否受到扰动,以及其对GNN预测的影响。

    通过多次重复这样的过程,就可以得到一个局部数据集。通过Grow-Shrink(GS)算法[66]选择依赖性最强的变量来减小局部数据集的大小。最后采用可解释的贝叶斯网络来拟合局部数据集,并解释原始GNN模型的预测。PGM-Explainer可以提供有关图节点的解释,但忽略了包含重要图拓扑信息的图边。此外,与GraphLime和RelEx不同的是,PGM-Explainer可以同时用于解释节点分类和图形分类任务。

    3.4 分解方法(Decomposition Methods)

    分解方法是另一种比较流行的解释深度图像分类器的方法,它通过将原始模型预测分解为若干项来衡量输入特征的重要性。然后将这些项视为相应输入特征的重要性分数。这些方法直接研究模型参数来揭示输入空间中的特征与输出预测之间的关系。需要注意的是,这些方法要求分解项之和等于原始预测得分。由于图包含节点、边和节点特征,因此将这类方法直接应用于图域是具有挑战性的。很难将分数分配给不同的边,图数据边包含着重要的结构信息,不容忽视。

    图5 分解方法的一般流程

    本文将介绍最近提出的几种用于解释深层图神经网络泛读分解方法,包括:Layerwise Relevance Propagation(LRP)[49]、[54]、Excitation BP[50]和GNN-LRP[55]。这些算法的主要思想是建立分数分解规则,将预测分数分配到输入空间。这些方法的一般流程如图4所示。以反向传播的方式逐层分发预测得分,直到输入层。从输出层开始,将模型的预测结果作为初始目标分数。然后将分数进行分解,并按照分解规则分配给上一层的神经元。通过重复这样的过程,直到输入空间,它们可以得到节点特征的重要性分数,这些分数可以组合起来表示边重要性、节点重要性和游走重要性。但是这些算法都忽略了深度图模型中的激活函数。不同分解方法的主要区别在于分数分解规则和解释的目标。

    1)LRP

    LRP[49],[54]将原来的LRP算法[67]扩展到深度图模型。它将输出的预测分数分解为不同的节点重要性分数。分数分解规则是基于隐藏特征和权重制定的。对于一个目标神经元,其得分表示为上一层神经元得分的线性近似。目标神经元激活贡献度较高的神经元获得的目标神经元得分比例较大。为了满足保守属性,在事后解释阶段将邻接矩阵作为GNN模型的一部分,这样在分数分配时就可以忽略它,否则,邻接矩阵也会收到分解后的分数,从而使保守属性失效。由于LRP是直接根据模型参数开发的,所以其解释结果更具有可信度。但它只能研究不同节点的重要性,不能应用于图结构,如子图和游走。该算法需要对模型结构有全面的了解,这就限制了它对非专业用户的应用,如跨学科研究人员。

    2)Excitation BP

    Excitation BP[50]与LRP算法有着相似的思想,但它是基于全概率法则开发的。它定义了当前层中一个神经元的概率等于它输出给下一层所有连接神经元的总概率。那么分数分解规则可以看作是将目标概率分解为几个条件概率项。Excitation BP的计算与LRP中的z+规则高度相似。因此它与LRP算法有着相同的优点和局限性。

    3)GNN-LRP

    GNN-LRP[55]研究了不同图游走的重要性。由于在进行邻域信息聚合时,图游走对应于消息流,因此它对深层图神经网络更具有一致性。得分分解规则是模型预测的高阶泰勒分解。研究表明,泰勒分解(在根零处)只包含T阶项,其中T是训练的GNN的层数。那么每个项对应一个T阶图游走,可以视为其重要性得分。由于无法直接计算泰勒展开给出的高阶导数,GNN-LRP还遵循反向传播过程来逼近T阶项。GNN-LRP中的反向传播计算与LRP算法类似。然而,GNN-LRP不是将分数分配给节点或边,而是将分数分配给不同的图游走。它记录了层与层之间的消息分发过程的路径。这些路径被认为是不同的游走,并从它们对应的节点上获得分数。虽然GNN-LRP具有坚实的理论背景,但其计算中的近似值可能并不准确。由于每个游走都要单独考虑,计算复杂度很高。此外,对于非专业人员来说,它的使用也具有挑战性,尤其是对于跨学科领域。

    4. 模型级方法

    与实例级方法不同,模型级方法旨在提供一般性的见解和高层次的理解来解释深层图模型。它们研究什么样的输入图模式可以导致GNN的某种行为,例如最大化目标预测。输入优化[16]是获得图像分类器模型级解释的一个热门方向。但是,由于图拓扑信息的离散性,它不能直接应用于图模型,从而使GNN在模型层面的解释更具挑战性。它仍然是一个重要但研究较少的课题。据我们所知,现有的解释图神经网络的模型级方法只有XGNN[41]。

    1)XGNN

    XGNN[41]提出通过图生成来解释GNN。它不是直接优化输入图,而是训练一个图生成器,使生成的图能够最大化目标图预测。然后,生成的图被视为目标预测的解释,并被期望包含判别性的图模式。在XGNN中,图形生成被表述为一个强化学习问题。对于每一步,生成器都会预测如何在当前图中增加一条边。然后将生成的图输入到训练好的GNN中,通过策略梯度获得反馈来训练生成器。

    此外,还加入了一些图规则,以鼓励解释既有效又能被人类理解。XGNN是一个生成模型级解释的通用框架,因此可以应用任何合适的图生成算法。该解释是通用的,并且提供了对训练的GNNs的全局理解。然而XGNN只证明了其在解释图分类模型方面的有效性,XGNN是否可以应用于节点分类任务还不得而知,这是未来研究中需要探索的重要方向。

    5. 评估模型

    由于缺乏 ground truths,因此不容易对解释方法的结果进行评估,作者讨论并分析了几种常用的数据集和度量标准。

    5.1 Datasets

    需要选择合适的数据集来评估不同的解释技术,并且希望数据是直观的,易于可视化的。应该在数据实例和标签之间蕴含人类可以理解的理由,这样专家就可以验证这些理由是否被解释算法识别。为了评估不同的解释技术,通常采用几种类型的数据集,包括合成数据、情感图数据和分子数据。


    5.1.1 Synthetic data

    利用现有的合成数据集来评估解释技术[42],[43]。在这样的数据集中,包含了不同的 graph motifs,可以通过它们确定节点或图的标签。数据实例和数据标签之间的关系由人类定义。即使经过训练的GNNs可能无法完美地捕捉到这样的关系,但graph motifs 可以作为解释结果的ground truths 的合理近似值。这里我们介绍几种常见的合成数据集。

    BA-shapes:它是一个节点分类数据集,有4个不同的节点标签。对于每个图形,它包含一个基础图(300个节点)和一个类似房子的5节点 motif。需要注意的是,基础图是由Barab´asi-Albert(BA)模型获得的,它可以生成具有优先附加机制的随机无标度网络[68]。motif 被附加到基图上,同时添加随机边。每个节点根据其是否属于基础图或motif 的不同空间位置进行标注。

    BA-Community:这是一个有8个不同标签的节点分类数据集。对于每个图,它是通过组合两个随机添加边的BA-shapes图获得的。节点标签由BA-shapes图的成员资格及其结构位置决定。

    Tree-Cycle:它是一个有两个不同标签的节点分类数据集。对于每个图,它由深度等于8的基平衡树图和6节点周期 motif 组成。这两部分是随机连接的。基图中节点的标签为0,否则为1。

    Tree-Grids:它是一个有两个不同标签的节点分类数据集。它与 Tree-Cycle 数据集相同,只是Tree-Grids数据集采用了9节点网格 motifs 而不是周期 motifs。

    BA-2Motifs:它是一个具有2种不同图标签的图形分类数据集。有800个图,每个图都是通过在基础BA图上附加不同的motif来获得的,如house-like motif 和 five-node cycle motif。不同的图是根据motif 的类型来标注的。

    在这些数据集中,所有节点特征都被初始化为全1向量。训练好的GNNs模型要捕捉图结构来进行预测。然后根据每个数据集的构建规则,我们可以分析解释结果。例如,在BA-2Motifs数据集中,我们可以研究解释是否能够捕获motif结构。然而,合成数据集只包含图和标签之间的简单关系,可能不足以进行综合评估。

    5.1.2 Sentiment graph data

    由于人类只有有限的领域知识,传统的图数据集在理解上具有挑战性,因此需要构建人类可理解的图数据集。文本数据具有人类可理解的语义的单词和短语组成,因此可以成为图解释任务的合适选择,解释结果可以很容易地被人类评估。因此我们基于文本情感分析数据构建了三个情感图数据集,包括SST2[69]、SST5[69]和Twitter[70]数据集。

    图5 文本情感图

    对于每个文本序列,将其转换为一个图,每个节点代表一个单词,而边则反映不同单词之间的关系。作者采用Biaffine解析器[71]来提取词的依赖关系。图5中展示了生成的情感图的一个例子。生成的图是有向的,但边标签被忽略了,因为大多数GNNs不能捕获边标签信息。用BERT[72]来学习单词嵌入,并将这种嵌入作为图节点的初始嵌入。建立一个模型,采用预训练好的BERT作为特征提取器,采用一层平均池化的GCN作为分类器。最后预训练的BERT为每个词提取768维的特征向量,作为情感图数据中的节点特征。

    作者建立了三个情感图数据集,分别为Graph-SST2、Graph-SST5和Graph-Twitter ,并即将公开,可以直接用于研究不同的可解释技术。这些数据集的统计和属性如表2所示。为了验证本文生成的情感数据集具有可解释信息,作者分别再新生成的情感数据集和原始数据集进行实验。作者展示了两层GNNs在这些数据集上的预测精度,包括GCNs、GATs和GINs。还展示了使用原始句子数据集的预训练的BERT[72]的微调精度。结果表明,与原始句子数据集相比,作者构建的情感图数据集可以达到具有竞争力的性能,这些数据集是实现图模型解释的合理选择。根据不同词的语义和情感标签,我们可以研究可解释方法是否能识别出具有关键意义的词以及不同词之间的关系。

    5.1.3 Molecule data

    分子数据集也被广泛用于解释任务,如MUTAG[73]、BBBP和Tox21[74]。这类数据集中的每个图对应一个分子,其中节点代表原子,边是化学键。分子图的标签一般由分子的化学功能或性质决定。采用这样的数据集进行解释任务需要领域知识,例如什么化学基团对其官能性更具有鉴别性。例如,在数据集MUTAG中,不同的图形是根据它们对细菌的诱变作用来标注的。例如,已知碳环和NO2化学基团可能导致诱变效应[73],那么可以研究可解释方法是否能识别出对应类别的 patterns。

    在不同的领域中,不同的局部结构是具有区分力的,可解释方法是否能够识别这些模式?

    5.2 Evaluation Metrics

    即使可视化的结果可以让人理解解释性方法是否合理,但由于缺乏 ground truths,这种评估并不完全可信。为了比较不同的解释性方法,我们需要研究每个输入样例的结果,这很耗时。因此评估度量对于研究可解释方法至关重要。好的度量方法应该从模型的角度来评估预测结果,比如解释是否忠实于模型[75],[76]。作者将介绍最近提出的几种针对解释性问题的评估度量方法。

    5.2.1 Fidelity/Infidelity

    首先,从模型的预测结果上分析解释性方法的性能,解释应该忠于模型,解释方法应该识别对模型重要的输入特征。为了评估这一点,最近提出了Fidelity[50]度量方法。关键思想在于如果解释技术所识别的重要输入特征(节点/边/节点特征)对模型具有判别力,那么当这些特征被移除时,模型的预测结果应该会发生显著变化。因此,Fidelity被定义为原始预测与遮蔽掉重要输入特征后的新预测之间的精度之差[50],[77],即衡量两种预测结果的差异性。

    可解释方法可以看作是一个硬重要性映射  ,其中元素为 0(表示特征不重要)或1(表示特征重要)。对于现有方法,例如ZORRO[51] 和 Causal Screening[53] 等方法,生成的解释是离散掩码,可以直接作为重要性映射  。对于 GNNExplainer[42] 和 GraphLime[56] 等方法,重要性分数是连续值,那么可以通过归一化和阈值化得到重要性地映射 。最后,预测精度的Fidelity得分可以计算为:

    其中 是图 的原始预测, 是图的数量。 表示去掉重要输入特征的补全掩码, 是将新图输入训练好的GNN  时的预测值。指示函数 如果 相等则返回1,否则返回0。注意, 指标研究的是预测精度的变化。通过对预测概率的关注,概率的Fidelity可以定义为:

    其中, 代表基于互补掩码 ,保留 的特征得到的新图。需要注意的是, 监测的是预测概率的变化,比 更敏感。对于这两个指标来说,数值越高,说明解释结果越好,识别出的判别特征越多。

    Fidelity度量通过去除重要节点/边/节点特征来研究预测变化。相反,Infidelity度量通过保留重要的输入特征和去除不重要的特征来研究预测变化。直观地讲,重要特征应该包含判别信息,因此即使去掉不重要的特征,它们也应该导致与原始预测相似的预测。从形式上看,度量Infidelity可以计算为:

    其中 是根据映射 保留 的重要特征时的新图, 是新的预测值。需要注意的是,对于 来说,数值越低,说明去掉的特征重要信息越少,这样解释结果越好。


    5.2.2 Sparsity

    从输入图数据的角度来分析解释性方法的性能,解释性方法应该是稀疏的,这意味着它们应该捕捉最重要的输入特征,而忽略不相关的特征,可以用稀疏度(Sparsity)指标衡量这样个特性。具体来说,它衡量的是被解释方法选择为重要特征的分数[50]。形式上,给定图 和它的硬重要性映射  ,稀疏度度量可以计算为:

    其中 表示 中识别的重要输入特征(节点/边/节点特征)的数量, 表示原始图  中特征的总数。请注意,数值越高表示解释方法越稀疏,即往往只捕捉最重要的输入信息。

    5.2.3 Stability

    好的解释应该是稳定的。当对输入施加小的变化而不影响预测时,解释应该保持相似。最近提出的稳定性度量标准来衡量一个解释方法是否稳定[78]。给定一个输入图 ,它的解释 被认为是真实标签。然后对输入图 进行小的改变,比如附加新的节点/边,得到一个新的图 。需要注意的是, 需要有相同的预测。然后得到 的解释,表示为  。通过比较 之间的差异,我们可以计算出稳定性得分。请注意,数值越低表示解释技术越稳定,对噪声信息的鲁棒性越强。

    5.2.4 Accuracy

    针对合成数据集提出了精度度量方法[42]、[78]。在合成数据集中,即使不知道GNN是否按照我们预期的方式进行预测,但构建这些数据集的规则,如 graph motifs,可以作为 ground truths 的合理近似。然后对于任何输入图,我们都可以将其解释与这样的 ground truths进行比较。例如,在研究重要边的时候,可以研究解释中的重要边与 ground truths 的边的匹配率。这种比较的常用指标包括一般精度、F1得分、ROC-AUC得分。匹配率数值越高,说明解释结果越接近于 ground truths,认为是较好的解释方法。

    6. Conclusion

    图神经网络近来被广泛研究,但对图模型的可解释性的探讨还比较少。为了研究这些黑箱的潜在机制,人们提出了几种解释图模型的方法,包括XGNN、GNNExplainer等。这些方法从不同的角度和动机来解释图模型,但是缺乏对这些方法的全面研究和分析。在这项工作中,作者对这些方法进行了系统全面的调研。首先对现有的GNN解释方法进行了系统的分类,并介绍了每一类解释方法背后的关键思想。然后详细讨论了每一种解释方法,包括方法、内涵、优势和缺点,还对不同的解释方法进行了综合分析。并且介绍和分析了常用的数据集和GNN解释方法的评价指标。最后从文本数据出发,建立了三个图形数据集,这些数据集是人类可以理解的,可以直接用于GNN解释任务。

    公众号:AI蜗牛车
    
    保持谦逊、保持自律、保持进步
    
    
    
    个人微信
    备注:昵称+学校/公司+方向
    如果没有备注不拉群!
    拉你进AI蜗牛车交流群
    
    
    
    
    
    展开全文
  • 作者:袁冬至 微信:DataGap 公众号:救命的药 研究方向:推荐系统 欢迎交流,学习! RecSys21 Debiased Explainable Pairwise Ranking from Implicit Feedback ...基于内隐反馈的Debiase可解释成对排序 A

    作者:袁冬至
    微信:DataGap
    公众号:救命的药
    研究方向:推荐系统
    欢迎交流,学习!

    RecSys21 Debiased Explainable Pairwise Ranking from Implicit Feedback

    又是一篇新的文章;看;

    发到公众号是必须的,个人影响力;发到网上必须的大家可以搜索到,公众号以前的文章没人看;

    Debiased Explainable Pairwise Ranking from Implicit Feedback

    基于内隐反馈的Debiase可解释成对排序

    ABSTRACT
    Recent work in recommender systems has emphasized the impor-
    tance of fairness, with a particular interest in bias and transparency,
    in addition to predictive accuracy. In this paper, we focus on the
    state of the art pairwise ranking model, Bayesian Personalized
    Ranking (BPR), which has previously been found to outperform
    pointwise models in predictive accuracy, while also being able to
    handle implicit feedback. Specifically, we address two limitations
    of BPR: (1) BPR is a black box model that does not explain its out-
    puts, thus limiting the user’s trust in the recommendations, and
    the analyst’s ability to scrutinize a model’s outputs; and (2) BPR
    is vulnerable to exposure bias due to the data being Missing Not
    At Random (MNAR). This exposure bias usually translates into an
    unfairness against the least popular items because they risk be-
    ing under-exposed by the recommender system. In this work, we
    first propose a novel explainable loss function and a corresponding
    Matrix Factorization-based model called Explainable Bayesian Per-
    sonalized Ranking (EBPR) that generates recommendations along
    with item-based explanations. Then, we theoretically quantify ad-
    ditional exposure bias resulting from the explainability, and use it
    as a basis to propose an unbiased estimator for the ideal EBPR loss.
    The result is a ranking model that aptly captures both debiased
    and explainable user preferences. Finally, we perform an empirical
    study on three real-world datasets that demonstrate the advantages
    of our proposed models.

    最近在推荐系统中的工作强调了公平的重要性,除了预测准确性外,还特别关注偏见和透明度。在本文中,我们关注最新的成对排序模型,即贝叶斯个性化排序(BPR),该模型在预测精度方面优于点式模型,同时也能够处理隐式反馈。具体来说,我们解决了BPR的两个局限性:(1)BPR是一个黑箱模型,它不解释其输出,因此限制了用户对建议的信任,以及分析师审查模型输出的能力;(2)由于数据丢失而非随机(MNAR),BPR容易受到暴露偏差的影响。这种曝光偏差通常转化为对最不受欢迎的项目的不公平,因为它们有被推荐系统曝光不足的风险。在这项工作中,我们首先提出了一种新的可解释损失函数和相应的基于矩阵分解的模型,称为可解释贝叶斯个性化排名(EBPR),该模型生成建议以及基于项目的解释。然后,我们从理论上量化了可解释性导致的额外暴露偏差,并以此为基础提出了理想EBPR损失的无偏估计量。结果是一个排名模型,它恰当地捕获了借记和可解释的用户偏好。最后,我们对三个真实数据集进行了实证研究,证明了我们提出的模型的优势。

    总:逐点模型不好,贝叶斯个性化排序(BPR)好,但是有2个地方不好,我们能改进这个模型提出了可解释贝叶斯个性化排名(EBPR),实验证明它好;

    1 INTRODUCTION
    Bayesian Personalized Ranking (BPR) is a state of the art pairwise
    ranking approach [36] that has recently received significant praise
    in the recommender systems community because of its capacity
    to rank implicit feedback data with high accuracy compared to
    pointwise models [18]. Aiming to rank relevant items higher than
    irrelevant items, pairwise ranking recommender systems often
    assume that all non-interacted items as irrelevant. Hence, these
    systems rely on the assumption that implicit feedback data is Miss-
    ing Completely At Random (MCAR), meaning that the items are
    equally likely to be observed by the users [40], consequently any
    missing interaction is missing because the user chose not to in-
    teract with it. However, given the abundance of items on most
    e-commerce, entertainment, and other online platforms, it is safe to
    assume the impossibility of any user being exposed toallthe items.
    Thus, missing interactions should be considered Missing Not At
    Random (MNAR). This means that the user may have been exposed
    to part of the items, but chose not to interact with them, which can
    be a sign of irrelevance; and was not exposed to the rest of the items.
    This MNAR property is translated into an exposure bias. This type
    of bias is usually characterized by a bias against less popular items
    that have a lower propensity of being observed [6].

    贝叶斯个性化排名(BPR)是一种最先进的成对排名方法[36],最近在推荐系统界受到了极大的赞扬,因为与逐点模型相比,它能够以高精度对隐式反馈数据进行排名[18]。两两排序推荐系统的目标是将相关项目的排名高于不相关项目,通常假设所有未交互的项目都是不相关的。因此,这些系统依赖于隐式反馈数据完全随机缺失的假设(MCAR),这意味着这些项目同样可能被用户观察到[40],因此任何缺失的交互都会缺失,因为用户选择不与之交互。然而,考虑到大多数电子商务、娱乐和其他在线平台上有大量的物品,可以放心地假设任何用户都不可能接触到所有这些物品。因此,缺失的交互作用应视为缺失而非随机(MNAR)。这意味着用户可能接触到部分项目,但选择不与它们交互,这可能是无关的迹象;并且没有接触到其他物品。此MNAR特性转化为曝光偏差。这种类型的偏见通常表现为对不太受欢迎的项目的偏见,这些项目被观察的倾向性较低[6]。

    Moreover, most accurate recommender systems tend to be black
    boxes that do not justify why or how an item was recommended to
    a user. This might engender unfairness issues if, for example, par-
    ticularly inappropriate or offensive content gets recommended to a
    user. This kind of unfairness can be better diagnosed and mitigated
    with an explanation. In fact, it could be important for the user to
    know why or how the inappropriate item was recommended. For
    example, an Italian user might think that the movie recommen-
    dation “The Godfather" is offensive because of the way it depicts,
    in an unfair stereotypical way, a certain Italian community in the
    US. However, the explanation “Because you liked the movie “Scar-
    face"" can be important in this case, because it clarifies that the
    movie recommendation was not tied to a community, but rather
    resulted from the user also liking another similar “mafia" sub-genre
    movie. Furthermore, explanations have been shown to help users
    make more accurate decisions, which translates into an increased
    user satisfaction [2,4]. Bayesian Personalized Ranking [36] treats
    comparisons between any positive and negative items the same, re-
    gardless of which ones can or cannot be explained. Thus, while BPR
    aptly captures and models ranking based preference, it does not yet
    capture anexplainablepreference. It is thisexplainable preference, in

    addition to an unbiased preference ranking, that we seek to achieve
    in this work. We thus propose models that address explainability
    andexposure bias in pairwise ranking from implicit feedback and
    achieve the following contributions:

    •Proposing an explainable loss function based on the state of
    the art Bayesian Personalized Ranking (BPR) loss [36] along
    with a corresponding Matrix Factorization (MF)-based model
    called Explainable Bayesian Personalized Ranking (EBPR).
    To the extent of our knowledge, no work has introduced
    neighborhood-based explainability to pairwise ranking.
    •Conducting a theoretical study of the additional exposure
    bias coming from the item-based explanations.
    •Proposing an unbiased estimator for the ideal EBPR loss,
    called UEBPR, based on the Inverse Propensity Scoring (IPS)
    estimator [37]. To our knowledge, no prior work has tried to
    address the additional exposure bias that could result from
    neighborhood-based explainability.
    •Performing an empirical study on three real-world datasets
    to compare the effectiveness of the proposed models, in terms
    of ranking, explainability, and both exposure and popularity
    debiasing.
    •Investigating the properties of the proposed neighborhood
    based explainable models, revealing and explaining a desir-
    able inherent popularity debiasing that is built into these
    models. This opens the path to a new family of future debias-
    ing strategies, where the debiasing is rooted in an explainable
    neighborhood-based rationale.
    In addition, we make our implementations of all the models
    presented in this paper available for reproducibility1.

    此外,最准确的推荐系统往往是黑匣子,无法证明向用户推荐商品的原因或方式。例如,如果向用户推荐特别不合适或冒犯性的内容,这可能会产生不公平问题。这种不公平可以通过解释得到更好的诊断和缓解。事实上,对于用户来说,了解为什么或如何推荐不合适的项目可能很重要。例如,一位意大利用户可能认为电影推荐“教父”是冒犯性的,因为它以一种不公平的陈规定型方式描述了美国的某个意大利社区。然而,解释“因为你喜欢电影“疤脸”“在这种情况下可能很重要,因为它澄清了电影推荐与社区无关,而是因为用户也喜欢另一部类似的“黑手党”子类型电影。此外,还提供了一些解释,帮助用户做出更准确的决定,从而提高了用户满意度[2,4].贝叶斯个性化排名[36]将任何积极和消极项目之间的比较视为相同的,无论哪些项目可以解释或无法解释。因此,尽管BPR恰当地捕获并建模了基于排名的偏好,但它尚未捕获可解释的参考。在除了一个无偏见的偏好排名,我们在这项工作中寻求实现。因此,我们提出了模型,从隐式反馈解决两两排序中的可解释性和暴露偏见,并取得以下贡献

    基于最先进的贝叶斯个性化排名(BPR)损失[36]以及相应的基于矩阵分解(MF)的模型,提出了一个可解释损失函数,称为可解释贝叶斯个性化排名(EBPR)。就我们所知,没有任何工作将基于邻域的解释引入成对排序对基于项目的解释产生的额外暴露偏差进行理论研究基于逆倾向评分(IPS)估计器[37],提出理想EBPR损失的无偏估计器,称为UEBPR。据我们所知,之前没有任何工作试图解决基于邻里关系的可解释性可能导致的额外暴露偏差对三个真实世界的数据集进行实证研究,比较所提出模型在排名、可解释性、曝光率和受欢迎度方面的有效性调查所提出的基于邻域的可解释模型的性质,揭示和解释这些模型所固有的可取的普遍性。这为未来的借记策略开辟了一条新的家族之路,其中的借记植根于可解释的基于邻域的原理。此外,我们使本文中提出的所有模型的实现可用于再现性1。

    展开全文
  • 用PHP制作的意见反馈表源码更新时间:2007年03月11日 00:00:00 作者:这是一个用PHP制作的意见反馈表,稍加修改也可用于网上发信程序,主要是让访问者填写表单,用PHP处理后发送到管理员信箱,并向访问者信箱发送一...

    用PHP制作的意见反馈表源码

    更新时间:2007年03月11日 00:00:00   作者:

    这是一个用PHP制作的意见反馈表,稍加修改也可用于网上发信程序,主要是让访问者填写表单,用PHP处理后发送到管理员信箱,并向访问者信箱发送一个证实信件。

    about.php

    -------------------------

    意见反馈表

    $adminmail="admin@acme.oso.com.cn";        #管理员信箱

    $pagename="Acme";                        #主页名称

    $pageline="http://acme.oso.com.cn";    #主页地址

    #管理员信件内容

    if (($formno1!="") and ($formno4!="") and ($formno11!="")) {

    $Email=$formno4;      #来访者E-mail

    $sender=$formno1;     #送信人

    $nowtime=date("Y年m月d日H时i分");

    $tmpfilename = tempnam("./tmp", "dm");

    $fp = fopen($tmpfilename, "w");

    fwrite($fp, "From: ".$Email."n");

    fwrite($fp, "Subject: ".$sender."  nn");

    fwrite($fp, "送信人:".$sender."n发信IP:".$REMOTE_ADDR."n发信时间:".$nowtime."nn");

    fwrite($fp, "反馈表详细内容:n------------------------------------------------------n");

    fwrite($fp, "姓名:".$formno1."n性别:".$formno2."n年龄:".$formno3."nE-mail:".$formno4."n工作单位:".$formno5."n联系地址:".$formno6."n邮编:".$formno7."n电话:".$formno8."n传真:".$formno9."n网址:".$formno10."n意见建议:".$formno11."n------------------------------------------------------n");

    fclose($fp);

    $execstr="cat ".$tmpfilename." | /usr/sbin/sendmail ".$adminmail;

    exec($execstr);

    $execstr="echo $sender  $nowtime  $REMOTE_ADDR $REMOTE_HOST >> mail.log";

    exec($execstr);

    #来客信件内容;

    $tmpfilename1 = tempnam("./tmp", "dm");

    $fp = fopen($tmpfilename1, "w");

    fwrite($fp, "From: ".$adminmail."n");

    fwrite($fp, "Subject: 你在[".$pagename."]填写的nn");

    fwrite($fp, "****此信为自动回复信件,请勿回复。给你带来不便,我们深表歉意。****nn------------------------------------------------------n非常感谢你在[".$pagename."]填写意见反馈表!n以下是您在".$nowtime."填写的详细内容,请确认:n------------------------------------------------------n");

    fwrite($fp, "姓名:".$formno1."n性别:".$formno2."n年龄:".$formno3."nE-mail:".$formno4."n工作单位:".$formno5."n联系地址:".$formno6."n邮编:".$formno7."n电话:".$formno8."n传真:".$formno9."n网址:".$formno10."n意见建议:".$formno11."n------------------------------------------------------n".$pagename.":".$pageline."nE-mail:".$adminmail);

    fclose($fp);

    $execstr="cat ".$tmpfilename1." | /usr/sbin/sendmail ".$Email;

    exec($execstr);

    #确认页开始;

    echo "

    A {FONT-SIZE: 9pt}

    A:link {COLOR: #006666; }

    A:visited {COLOR: #006666;}

    A:hover {COLOR: #ff0000; TEXT-DECORATION: underline}

    TD {FONT-SIZE: 9pt}

    INPUT {FONT-SIZE: 9pt}

    *** 非常感谢你在$pagename填写意见反馈表! ***

    以下是您填写的详细内容:

    姓名:  $formno1

    性别:  $formno2

    年龄:  $formno3

    E-mail: $formno4

    工作单位:$formno5

    联系地址:$formno6

    邮编:  $formno7

    电话:  $formno8

    传真:  $formno9

    网址:  $formno10

    意见建议:$formno11

    谢谢您!!!


    $pagename:$pageline

    ";

    #确认页结束;

    } else {

    ?>

    function save(){

    if(f1.formno1.value!="" && f1.formno2.value!="" && f1.formno3.value!="" && f1.formno4.value!="" && f1.formno11.value!=""){

    f1.submit();

    }

    else{

    alert("带*为必填项,请全部填写后再次提交。nn 谢谢合作!");

    }

    }

    意 见 反 馈 表

     method=post name=f1>
     您的姓名:  

     *

     您的性别:

     *

    您的年龄: 

     *

     您的E-mail:

     *

     您的工作单位:
    您的联系地址:
    您的邮政编码:
    您的电话:
    您的传真:
    您的网址:
    意见或要求:

    *

     

    注:标 * 项目为必填项。

    }

    ?>

    相关文章

    1a1b05c64693fbf380aa1344a7812747.png

    使用 eAccelerator加速PHP代码的方法...2007-09-09

    4f55910a645b073bc4fc65dc10dc14bd.png

    很多朋友不清楚php中sql查询语句的id=%d的意思,今天小编通过本文给大家详细介绍下PHP中SQL查询语句的id=%d解释,需要的朋友参考下吧2016-12-12

    0ea3c7666119d5615e582f823fb3fad6.png

    这篇文章主要给大家介绍了关于Yii2框架跑脚本时内存泄漏问题的分析与解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Yii2具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2019-12-12

    4f96a78db829b1556ff16de21e013c7a.png

    这篇文章主要为大家详细介绍了PHP实现百度人脸识别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2019-05-05

    8cc1031babc6aff2319f1c6af8544aa0.png

    这篇文章主要介绍了PHP模板引擎Smarty内置变量调解器用法,结合实例形式详细分析了Smarty中的常用内置变量调节器定义与使用技巧,需要的朋友可以参考下2016-04-04

    0c932a99bb7b6f23c937db507070cc7b.png

    这篇文章主要介绍了PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能),需要的朋友可以参考下2014-05-05

    cca732bf65a93ed2ec0ac80c638460fe.png

    phpStudy 2018是一款非常强大的php环境调试工具,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。这篇文章主要介绍了phpStudy2018安装教程及本地服务器的配置方法,需要的朋友可以参考下2018-03-03

    2d9f31f2af7b675a3d153d2b7f1035a7.png

    这篇文章主要介绍了Smarty模板引擎缓存机制,结合实例形式分析了Smarty模板引擎缓存机制的原理,开启与使用方法以及相关注意事项,需要的朋友可以参考下2016-05-05

    b452cee8ec5cd9e58ab98eba17281e59.png

    这篇文章主要介绍了thinkphp框架page类与bootstrap分页(美化) ,需要的朋友可以参考下2017-06-06

    f4838ec7e2d4da28e0b57d4e852dadd4.png

    这篇文章主要介绍了PHP 双链表(SplDoublyLinkedList)简介和使用实例的相关资料,需要的朋友可以参考下2015-05-05

    最新评论

    展开全文
  • HTTP反馈100-600含义

    2020-12-18 15:29:03
    除非响应的是一个 HEAD 请求,否则服务器就应该返回一个解释当前错误状况的实体,以及这是临时的还是永久性的状况。这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容。 如果...
  • 本文较为详细的分析了Python解释执行的原理,对于深入理解Python可以起到一定的帮助作用。具体分析如下:首先,这里的解释执行是相对于编译执行而言的。我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从...
  • 引入人工智能技术后,一方面指挥控制系统能够通过自然语言、手势、体势等多模态人机交流方式获取指挥官意图并给出拟人化反馈,大大提升了指挥效率;另一方面,利用人工智能技术能够弥补操作者在速度、注意力等方面的...
  • php解释器的安装方法

    2021-03-22 19:19:02
    php解释器的安装方法:首先下载“VC11 x64 Thread Safe”中的zip包;然后解压到“C:\php”目录中;最后复制一份“php.ini-development”文件,并重命名为“php.ini”即可。推荐:《PHP视频教程》PHP在Windows下安装...
  • 【判断题】快速原型模型是带反馈环的。 【单选题】寒性收引是指 【单选题】六淫中,最易导致气血凝滞不通的外邪是 【判断题】在Word中,如果设置定时自动保存,其功能在“文件”菜单中的“选项”。 【填空题】ajax的...
  • Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释器:CPython当 从Python...
  • 数学解释这里就不作介绍了,这里我们主要理解两个词语就行,一个是线性,它是指量与量之间的一种按比例、成直线的关系。这里面有一点点的数学知识,就是说在ai∈(0,1)的存储单元,ai的个数表示为反馈移位寄存器的级...
  • 也有是其它部件反馈给CPU的,比如:中断申请信号、复位信号、总线请求信号、设备就绪信号等。因此,控制总线的传送方向由具体控制信号而定,一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制...
  • 首先,s代表的什么,我们不从数学来解释理解,但是有一点是正确的,就是它代表的是能量。回想下,在学习状态空间时,取状态变量的时候,所有的都是跟能量有关的,电容C取状态变量为电压,电感L取电流,弹簧为形变量...
  • 通过测试原型和使用反馈进行改进,让您的客户参与到产品设计过程中。你必须小心你向用户展示的东西,所以你得到的反馈是可操作的,可以用来使你的界面更加用户友好。 对技术感兴趣朋友可以加这个扣扣2779571288交流...
  • php是解释型语言吗

    2021-03-26 11:07:21
    PHP是属于解释型语言,还是编译型语言?下面先来看一下计算机语言的发展史:第一代:机器语言,全部都是01010二进制代码,计算机能够直接的识别,运行效率是最高的,但是难编,难记,难区分,可移植性差!第二代:...
  • python解释器是解释python脚本执行的程序。编写python代码保存后,我们会得到一个以.py为扩展名的文本文件。要运行此文件,就需要python解释器去执行.py文件。python解释器种类Python有好几种版本的解释器:CPython...
  • 计算机组成原理名词解释与简答 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!11.9 积分第一章名词解释:1. 中央处理器:主要由运算器和控制器组成。控制部件,运算...
  • pycharm找不到解释器怎么办

    千次阅读 2021-04-26 16:38:52
    解决方法:1、打开磁盘,直接搜索python.exe文件,获取该文件的路径;...本教程操作环境:windows7系统、Pycharm2019版,DELL G3电脑pycharm中找不到解释器的解决方法:1、打开File–>Setting–...
  • (每小题 6分,共 30分) 1)解释 i 节点在文件系统中的作用。 在 linux 文件系统中, 是以块为单位存储信息的, 为了找到某一个文件在存 储空间中存放的位置, 用 i 节点对一个文件进行索引。 I 节点包含了描述一个文 ...
  • Pycharm给项目配置python解释器的方法:首先打开Pycharm,选择settings选项;然后选择project选项,并选择Project Interpreter选项;接着选择Python环境;最后点击ok按钮。本教程操作环境:windows7系统、python3.9...
  • 名词解释:基带传输:比特流直接向电缆发送,无需调制到不同频段;基带信号:信源发出的没有经过调制的原始电信号;URL:统一资源定位符,标识万维网上的各种文档,全网范围唯一;传输时延:将分组的所有比特推向...
  • 请问当用户反馈网站访问慢,你会如何处理?有哪些方面的因素会导致网站网站访问慢? 1、服务器出口带宽不够用 本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问...
  • python解释器是什么

    2021-01-13 14:17:46
    python解释器是什么?Python语言是编程语言,是计算机能听懂的语言。计算机的大脑是CPU, 中文名叫中央处理器,它仍然不能直接处理 Python 语言。CPU 只能直接处理机器指令语言,那是一种由0和1 数字组成的语言,像...
  • 在查看了很多关于编译器和解释器之间差异的帖子后,我仍然无法弄清楚它们的构造和内部机制的区别.我读到的最常见的区别是编译器生成一个可执行的目标程序{意味着机器代码作为其输出},它可以在系统上运行而不是输入.而...
  • 众所周知,提出和接受反馈是代码审查不可或缺的一部分。虽然反馈有助于减少 bug 的数量,而且还能提高代码的可维护性,但这个过程也有很多难点。但是,下面,我们想讨论一下处理反馈的技巧,我们希...
  • 生物反馈训练通常使用Alpha波来监测放松情况。它们也与抑制和注意有关[4]。 Beta(12 – 30 Hz)-在运动区域内,随着我们计划或执行任何身体部位的运动,Beta频率会变得更强[5]。有趣的是,随着我们观察其他人的身体...
  • 实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。(当用户发出指令,其实先将这些指令发送给Shell,然后由Shell将用户的指令翻译后传送给内核,再由内核来控制硬件的工作。然后内核将硬件的...
  • 据我所知,定义图的第一部分应该只使用TensorFlow函数编写。如果您想添加一些python,应该将它从图中分离出来,并通过占位符(tf....然后,您得到的结果将是python对象,因此python解释器将在这里完成这项工作。在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 129,411
精华内容 51,764
关键字:

反馈怎么解释