使用显式特征的在线交互感知提升网络

news2024/12/23 22:24:03

目录

1介绍

2相关工作

2.1提升建模

2.2特征交互

3前提

4提出的方法

4.1架构

4.2训练

 5试验评估

6结论和未来


英文题目:Explicit Feature Interaction-aware Uplift Network for Online Marketing

翻译:使用显式特征的在线交互感知提升网络

单位:腾讯

论文链接:https://export.arxiv.org/pdf/2306.00315v1.pdf

代码:暂无

KEYWORDS:

Uplift modeling, Feature interaction, Treatment-aware interaction, Intervention constraint

摘要:

作为在线营销的关键组成部分,提升建模旨在准确捕捉不同处理激发不同用户的程度,例如优惠券或折扣,也称为个体治疗效果 (ITE) 的估计。在实际业务场景中,治疗选项可能众多且复杂,不同处理之间可能存在相关性。此外,每个营销实例也可能具有丰富的用户和上下文特征。然而,现有的方法在充分利用对特定处理敏感的处理信息和挖掘特征方面仍然不足。在本文中,我们提出了一个显式特征交互感知提升网络(EFIN)来解决这两个问题。我们的 EFIN 包括四个自定义模块:1)特征编码模块不仅编码用户和上下文特征,还编码处理特征; 2)自交互模块旨在准确建模用户与所有其他处理特征的自然响应; 3)处理感知交互模块通过处理特征与其他特征之间的交互(即 ITE)准确地模拟特定处理激励用户的程度; 4)干预约束模块用于平衡对照组和治疗组之间用户的 ITE 分布,以便模型仍然可以对非随机干预营销场景收集的数据进行准确的提升排名。我们在两个公共数据集和一个产品数据集上进行了广泛的实验,以验证我们的 EFIN 的有效性。此外,我们的 EFIN 已部署在大型在线金融平台的信用卡账单支付场景中,并显着提高。

1介绍

为了提高用户参与度和平台收入,为用户提供一些具体的激励,如优惠券[37]、折扣[19]和奖金[1],是在线营销[27]的重要策略。由于这些激励通常具有成本,不同的用户对这些激励有不同的反应,例如一些用户没有优惠券消费,一些用户无论如何都会消费,如何准确地识别每个激励对应的敏感用户组对于最大化营销效益至关重要[14,34]。为了实现这一目标,我们需要准确捕捉用户对各种激励的反应之间的差异,而不是没有激励的人。与传统的监督学习不同,这涉及一个典型的因果推理问题,因为在实际场景中,我们通常只能观察一种类型的用户响应,这可能是某种激励(即治疗组)或没有激励(即对照组)。因此,我们想要获得的不同激励(或处理)引起的用户响应的变化可以看作是个体治疗效果(ITE)[36]的估计,也称为提升。为了解决上述问题,近年来提出了提升建模,验证了其有效性[5,7,10]。

现有的提升建模方法主要根据设计思想包括三个研究方向:1)基于元学习器。这条线的基本思想是使用现有的预测方法为用户响应构建估计器,可以是全局的(即S-Learner),也可以是处理组和对照组(即T-Learner)[17]。在此基础上,通过引入各种附加操作,如XLearner[17]、R-Learner[24]和DR-Learner[4]等,设计了不同的两步学习器。2)基于树的。这条线的基本思想是使用树结构将整个用户种群逐渐划分为对每个处理敏感的子种群。关键步骤是利用不同的分裂准则直接建模抬升,如基于各种分布散度[25]和预期响应[29,38]。此外,通过整合多棵树获得的因果森林[3]是这条线的另一种代表性方法,已经提出了几种变体[1,32]。3)基于神经网络的。这条线的基本思想是利用神经网络为用户的响应设计更复杂和灵活的估计器[16,21,35,39],其中大部分可以看作是T-learner的改进[8,9,30,31]。在本文中,我们专注于基于神经网络的线,因为它可以更好地适应由于神经网络的灵活性而引入的特征交互建模的目标。此外,由于商业系统中通常使用各种神经网络模型,因此对这条线的研究可以更容易地与其他线集成。我们在图 1 中展示了一些代表性方法在基于神经网络的抬升建模中的架构。

尽管现有的提升建模方法已经显示出有希望的结果,但它们中的大多数都在充分利用对特定治疗敏感的处理信息和挖掘特征方面仍然不足。在在线营销中,除了索引 ID 之外,治疗通常具有许多详细描述它的特征。例如,优惠券可能包括特定金额和要达到的最小支出。这也意味着不同的处理可能是相关的,例如具有相似的金额或最小支出。直观地说,这些信息有利于获得准确的提升,例如,治疗之间的相关性可以提示模型发现用户对价值 1000 的优惠券的响应应该更类似于价值 900 的优惠券而不是价值 100 的优惠券。然而,如图 1 所示,我们可以发现几乎所有相关方法都没有明确利用处理特征,这可能不利于提升估计。我们将此挑战称为处理特征的未充分利用。此外,由于缺乏对治疗特征与其余特征之间的相互作用进行建模,上述挑战还将防止大多数相关方法准确地捕获与每个治疗相关的敏感特征。我们将此挑战称为特征交互的未充分利用。请注意,显式建模处理特征也可能使模型与各种营销场景兼容,其中处理选项可能是二进制的、多值或连续的,而不会显着增加模型的大小。

为了解决上述两个挑战,在本文中,我们提出了一个显式特征交互感知提升网络(EFIN)。具体来说,我们的 EFIN 包含四个模块:1)特征编码器模块旨在编码包含用户特征、上下文特征和处理特征的营销实例; 2)自交互模块负责控制组中用户的响应。它使用自注意力网络来建模除了处理特征之外,所有特征之间的交互以捕获与自然响应相关的特征子集(即不接受任何处理); 3) 治疗感知交互模块负责治疗组中用户的响应。它使用处理感知注意网络对处理特征与其他特征之间的相互作用进行建模,以识别对不同处理敏感的特征子集,并准确捕获用户对不同处理响应的变化; 4) 干预约束模块用于平衡处理组和对照组之间用户的ITE分布,以便我们的EFIN在不同的场景中更加健壮。该模块是必要的,因为在真正的营销场景中,治疗分配通常是非随机的,将导致对照组和治疗组之间的用户分布差异。最后,我们进行了广泛的离线和在线评估,结果验证了我们的 EFIN 的有效性。

2相关工作

在本节中,我们简要回顾了两个研究课题的一些相关工作,包括隆升建模和特征交互。

2.1提升建模

提升建模旨在通过准确估计ITE来识别每个特定处理的相应敏感种群。现有的提升建模方法主要包括三个研究方向:1)基于元学习器的方法侧重于使用现有的预测方法来学习用户响应的一步学习器 [17] 或两步学习器 [4, 24],其中处理信息通常集成为一维离散特征或作为切换预测分支的先验。2)基于树的方法采用特定树或森林结构,采用不同指标的分裂准则,逐步划分整个种群中每个处理对应的敏感子种群[3,25,38],其中处理信息包含在分裂过程的计算中;3)基于神经网络的方法结合了神经网络的优点,引入一些更复杂、更灵活的体系结构来建模处理的响应过程,可以学习更准确的用户响应或抬升估计器。此外,只有少数作品通过将提升建模与其他领域的成熟问题联系起来来解决提升建模,例如背包问题 [2, 12]。我们的 EFIN 遵循基于神经网络的行,但与现有相关工作有很大不同,尤其是在明确利用处理特征和与其他特征交互建模方面。

2.2特征交互

特征交互旨在对不同特征之间的组合进行建模,并已被证明可以显着提高响应模型的性能 [22, 23]。现有的特征交互方法主要可以分为三类,包括二阶交互、高阶交互和结构交互。在二阶交互中,两个特征的嵌入表示之间的内积通常是考虑分解机及其变体是代表性方法[15,26]。高阶相互作用的建模依赖于神经网络,已经提出了许多架构来提高模型性能、可解释性和高效融合低阶和高阶相互作用[13,33]。此外,基于图结构,一些方法旨在利用额外的结构信息来进一步提高高阶交互[18,20]。尽管特征交互在许多任务上都取得了成功,但仍然缺乏对其在隆升建模中的应用的研究。我们的 EFIN 旨在弥合这一研究方向的差距。

首先最基本的是 Meta-Learner,代表的建模方案有 S-Learner 和 T-Learner,随后进入深度学习后就演化出来以解决混杂偏置为代表的 DragonNet、DESCN、S-Net、CFRNet 等,和以解决归纳偏置为代表的 FlexTENet、S-Net、EUEN、DESCN、GANITE、CFRNet 等。

3前提

4提出的方法

4.1架构

4.2训练

在本小节中,我们根据训练过程详细描述每个模块。

4.2.1 The Feature Encoder Module 特征编码器模块

4.2.2 The Self-interaction Module 自我交互模块

4.2.3 The Treatment-aware Interaction Module

4.2.4干预约束模块

干预约束模块。由于在在线营销场景中,不同处理的分配通常不是随机的,这意味着收集的训练集通常在对照组和治疗组之间存在显着差异。如图 3 所示,由于每组中只有一种类型的响应可用于监督训练,因此组间分布的差异会加剧组间估计 ITE 存在显着差异,.因此,忽略这种差异可能会增加 ITE 估计的难度并损害准确性。为了缓解这个问题,我们提出了一个简单但有效的干预约束模块。该模块背后的想法是增加从不同组的ITE分布中猜测相应组的难度,即通过相互干扰实现两者之间的权衡。先前的研究表明,组间ITE分布的相似性有利于提升建模[9]。具体来说,我们使用与提升密切相关的嵌入表示 e푡 来预测该实例属于哪个组。然后,我们使用逆组标签对其进行训练以生成如上所述的扰动。‘

4.2.5提升预测。在我们的 EFIN 训练完成后,在推理阶段,我们只需要使用处理感知交互模块直接计算 ITE,然后进行排名和决策。

 5试验评估

在本节中,我们进行实验,目的是回答以下三个关键问题。

•RQ1:与基线相比,我们的EFIN的表现如何?

•RQ2:每个模块在我们的EFIN中的作用是什么?

•RQ3:我们的EFIN在在线部署中的有效性?

5.1 实验设置

5.1.1 数据集。继之前的工作[16]的设置之后,我们在两个公共数据集上进行了实验,包括CRITEOUPLIFT[11]和EC-LIFT[16]。CRITEO-UPLIFT 是一个由 Criteo AI Labs 开源的数据集,用于大规模广告场景中的提升建模,其中包括近 1400 万个实例、12 个连续特征和二进制处理。EC-LIFT 是大规模广告场景中不同品牌的提升建模数据集,由 Alimama 开源。该数据集包含数十亿个实例、25 个离散特征和九个多值特征以及二进制处理。由于数据规模过大,为了便于训练,我们从原始 EC-LIFT 数据集中提取了大约 40% 的实例作为实验数据集。两个公共数据集的统计数据如图所示表1。我们随机拆分两个数据集进行训练和测试,比例为8/2。注意,由于用户特征和上下文特征的建模是一致的,不需要特别的区别,我们在实验中使用上述数据集中的所有特征。此外,在先前工作的设置之后,我们将处理视为二元特征。为了全面评估我们的 EFIN,我们还包括从两周的在线优惠券营销场景中收集的产品数据集,用于信用卡支付。该产品数据集总共使用了 200 多个特征,涉及 200 万个用户,有 200 万个实例,其中 90% 用于训练集,其余用于测试集。特别是,产品数据集中包含了七个处理选项,而不是公共数据集中的二进制处理。

5.1.2 评估指标

我们通过四个广泛使用的指标来评估抬升排名性能,即第一个ℎ百分位数的抬升分数(LIFT@ℎ)、抬升曲线下的归一化面积(AUUC)、qini曲线下的归一化面积(QINI)和加权平均抬升(WAU)。我们报告了ℎ设置为30的结果。我们使用标准的python包scikit-uplift1来计算这些指标。

5.1.3 基线

为了评估我们的EFIN的有效性,我们在基于神经网络的隆起建模中选择了一组最具代表性的方法,包括S-Learner[17]、T-Learner[17]、TarNet[30]、CFRNet[30]、DragonNet[31]、GANITE[35]、CEVAE[21]、SNet[8]、FlexTENet[9]、EUEN[16]和DESCN[39]。

5.1.4 实施细节

 

 5.2 RQ1:性能比较

我们在表3中报告了两个公共数据集的比较结果。从表3的结果中,我们可以得到以下观察结果:1)T-learner的性能明显优于S-learner,即使是一些使用更复杂网络架构的基线。这可能意味着在具有众多特征的在线营销场景,提升建模比传统的ITE估计更难,尤其是用户的敏感特征需要更准确地识别。特别是,我们可以观察到,在具有大量高维稀疏特征的 EC-LIFT 上,大多数基线不再具有优于 T-learner 的优势。2)通过设计一些更灵活或更复杂的架构作为用户响应的估计器,FlexTENet、SNet、EUEN 和 DESCN 比其他基线表现更好。但同样,它们相对于 EC-LIFT 的优势缩小了。这意味着在不考虑特征交互的情况下,其他架构更改可能不会产生太多收益。3) 与其他基线不同,我们的 EFIN 在大多数情况下始终优于所有基线,但 WAU 上的 DESCN 略弱。由于我们使用 QINI 作为超参数搜索的主要指标,其他指标可能存在一些波动,我们可以发现我们的 EFIN 对 QINI 有很大的改进。此外,我们的 EFIN 还能够保持 EC-LIFT 的性能优势,这得益于处理特征和特征交互的显式建模。

接下来,我们在表4中报告了产品数据集的比较结果。由于大多数基线通常只应用于二进制处理场景,为了在具有多值处理的产品数据集上评估它们,我们首先合理地扩展它们,例如网络架构从双头变为多头。请注意,由于 CEVAE 中的分布估计很难直接扩展到多头架构,我们不报告其在产品数据集上的结果。在扩展完成后,我们使用与表 2 相同的搜索范围重新训练所有方法。请注意,在评估时,我们需要将多值处理视为多个二进制处理,以获得每个处理的单个指标,最后报告平均结果。从表 4 中的结果来看,我们有以下观察结果:1)基于元学习器的方法(S-Learner 和 T-Learner)仍然相对稳定,在多值处理场景中的结果次优。2)考虑共享架构的基线存在性能瓶颈,其中共享部分可能会导致学习冲击,因为处理组太多且显着不同。3) 同样,由于我们的 EFIN 在产品数据集上明确地利用了处理特征和特征交互,它仍然保留了为每个用户挖掘与不同处理相关的敏感特征的能力。结合两个公共数据集和一个产品数据集的结果,这验证了我们的EFIN的有效性,特别是在隆升建模中明确考虑处理特征和特征交互。

 5.3 RQ2: EFIN的消融研究

此外,我们对 EFIN 进行了消融研究,以分析每个提议模块所扮演的角色。我们单独顺序删除了三个核心模块,即自交互模块、处理感知交互模块和干预约束模块。结果如表5所示。从表5的结果可以看出,删除任何模块都会带来性能下降。这验证了我们的 EFIN 中每个模块设计的有效性。也就是说,干预约束模块

5.4 RQ3:在线部署的结果

为了进一步评估性能,我们将我们的 EFIN 部署在 FiT 腾讯信用卡支付场景中,这是中国大规模在线金融平台之一。

5.4.1 系统概述和场景描述。

该场景如图4所示。在这种情况下,营销需要为不同的客户群体发起不同的活动,以激励更多的用户在这个平台上支付信用卡账单。一旦用户倾向于在平台上支付信用卡账单,治疗就会提升到一些用户组。在这种情况下,根据账单金额的限制,有各种类型的优惠券。具体来说,有一些小的提名优惠券,不需要最少的要求,一些更高的提名优惠券需要最少的金额,因此在这种情况下的最终处理数设置为7。高级架构如图5所示。用户行为从数据源(一些存储集群)中提取,使用Apache Spark5生成特征,处理候选是具有各种量的优惠券。提升模型将对每个优惠券上的每个用户的提升值进行评分。最后,启动子平台将进一步向具有一定资源约束的用户组提供优惠券。请注意,我们的工作侧重于如何提高提升模型的性能,这是整个系统的关键组成部分。

5.4.2 在线实验结果。为了进行在线 A/B 实验,我们划分了两组相互影响的在线流量,涉及数亿用户。现有的在线平台上的基线是一个多头扩展 T-learner,其中每个估计器使用 XGBoost [6] 进行计算。基线模型和我们的 EFIN 为一个月的每个单独的在线流量提供服务。为了评估性能,我们使用了两个重要的在线指标:投资的营销回报 (ROI) 和每月活跃用户 (MAU) 的数量。表 6 报告了对基线的相对改进。从表 6 中的结果来看,我们可以发现与基线相比,我们的 EFIN 将 ROI 和 MAU 分别提高了 10% 和 8%。这意味着我们的 EFIN 在一段时间内可以保持稳定的性能优势,并且确实可以准确地捕获敏感。

6结论和未来

工作在本文中,为了解决大多数现有提升建模方法中存在的处理特征和特征交互的利用不足,我们提出了一种显式特征交互感知提升网络(EFIN)。我们的EFIN由四个模块组成:(1)其中一个特征编码器模块用于对所有特征进行编码;(2)一个自交互模型旨在在隔离处理信息的同时,使用非处理特征准确地对用户的自然响应进行建模,处理感知交互模块利用处理特征和非处理特征,并通过交互准确地对用户对不同处理的抬升和响应进行建模,设计了一个干预约束模块来调整控制和处理的分布差异组以使我们的 EFIN 在不同的场景中更加健壮。最后,我们进行了广泛的离线和在线评估,结果验证了我们的 EFIN 的有效性。

在未来的工作中,我们计划探索和分析更多特征交互架构在提升建模中的有效性。如何使提升建模更多地受益于治疗特征及其与非治疗特征的相互作用也是一个有前途的问题。此外,我们还对考虑和解决一些更复杂的提升建模场景感兴趣,例如考虑净利润等必要约束,并根据动态视角对用户对不同处理的响应变化进行建模。

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

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

相关文章

MATLAB 之 Simulink 系统仿真实例和 S 函数的设计与应用

这里写目录标题 一、Simulink 系统仿真实例1. 方法一2. 方法二3. 方法三 二、S 函数的设计与应用1. 用 MATLAB 语言编写 S 函数1.1 主程序1.2 子程序 2. S 函数的应用 一、Simulink 系统仿真实例 下面的应用实例我们将分别采用不同建模方法为系统建模并仿真。例如,…

博客质量分计算——发布 version 5

目录 1. 背景2. 质量分 version 52.1 version 4 存在问题分析2.2 version 5 改进2.3 消融分析2.3.1 正向积极得分消融实验2.3.2 正向累积得分单变量实验2.3.3 非高分文章消融实验 2.4 V4 和 V5 版本质量分分布对比 3. 总结4. 参考 1. 背景 博客质量分顾名思义是用于衡量一篇博…

现代物理工程选讲:辐射探测与测量----射线与物质相互作用

重带电粒子与物质相互作用 与靶物质核外电子发生库伦相互作用电子获得能量脱离原子核的束缚(或跃迁到高能级),从而被电离(或激发)每次碰撞只损失很小一部分能量(~1/500)径迹是直线 阻止本领 Stopping Pow…

【Kubernetes资源篇】Secret加密数据配置管理详解

文章目录 一、Secret加密配置理论知识1、Secret是什么?2、Secret和configMap的区别3、Secret的参数和类型 二、实践:使用Secret进行加密1、方式一:环境变量方式引入2、方式二:卷挂载方式引入 一、Secret加密配置理论知识 1、Secret是什么?…

西安石油大学Python期末复习

Python期末复习 一、单选题 1. Python语言属于(C) A.机器语言 B.汇编语言 C.高级语言 D.以上都不是 2.Python 解释器环境中,用于表示上一次运算结果的特殊变量为(B) A. : B. _ C. > D.# 3.为了给整型变量x、y、z赋初值10&#xff0c…

Codeforces Round 868 (Div. 2) F. Random Walk(树上期望)

题目 n(n<2e5)个点的树&#xff0c; 从起点s出发&#xff0c;每次等概率选择一条边&#xff0c;随机游走到相邻点 若走到t&#xff0c;则停止&#xff0c;问每个点经过的期望次数&#xff0c;答案对998244353取模 思路来源 DLUT_Zeratul讲解 题解 需要分成三部分考虑…

Spring面试题--Spring中的循环引用(循环依赖)

我们以上述代码为例分析一下死循环产生的过程 为什么A是半成品呢&#xff1f; 如果熟悉bean的生命周期&#xff0c;那么在实例化对象A的时候&#xff0c;首先去调用的是构造函数&#xff0c;像是依赖注入还有接口的实现重写什么的&#xff0c;还有后置处理器&#xff0c;初始化…

【笔记】微机原理及接口技术3 -- 中断技术与DMA控制器

目录 中断技术中断概述中断处理过程 可编程定时器与计数器DMA 控制器8237A 结构工作方式工作时序 中断技术 中断概述 中断的流程是&#xff1f; CPU 正在执行进程 A此时外部或者内部中断请求发生&#xff0c;CPU 响应中断进程 A 暂时中断执行&#xff0c;转而运行中断服务程序…

华为OD机试真题 Python 实现【核酸检测人员安排】【2023Q1 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、补充说明五、Python算法源码六、效果展示1、输入2、输出 一、题目描述 在系统、网络均正常的情况下组织核酸采样员和志愿者对人群进行核酸检测筛查。 每名采样员的效率不同&#xff0c;采样效率为N人/小时。 由于外界变化&…

本地springboot项目上传到gitee

1.在gitee上新建一个仓库&#xff1a; 创建后可以拿到仓库地址&#xff1a;https://gitee.com/ouyangshuiming/linux_test.git 2. 选中 创建git仓库 3. 4.最后一步&#xff1a; 一定记得这里要写上一段话&#xff0c;才能成功提交&#xff1a;比如git 提交远程库 最后刷新…

MySQL的Join

1.Join用法 Join连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接。 内连接又叫等值连接,此时的inner可以省略。 USING语句 MySQL中连接SQL语句中,ON子句的语法格式为:table1.column_name = table2.column_name。当模式设计对联接表的列采用了相同的命名样…

React hooks文档笔记(四) useRef

useRef 当想让组件记住一些信息&#xff0c;又不想触发新的渲染&#xff0c;可以使用ref&#xff1a;总是返回同一个对象。 1. state 和 refs 的比较 refs&#xff08;普通的 JavaScript 对象&#xff09; state 更改时不触发重新渲染 更改时触发重新渲染 可变的——修改/…

复现基于unet的眼底血管的医学图像分割项目

代码及数据集&#xff1a; MedicalImageSegmentation: 复现一个医学图像分割的项目 - Gitee.com xin麒/MedicalImageSegmentation - 码云 - 开源中国 (gitee.com) 两个都可以&#xff0c;差不多的&#xff08;要不就使用第二个吧&#xff0c;第二个后续都会继续更新&#xf…

【JUC-1】java多线程线程基础知识

线程创建方式 继承Thread类.实现Runable接口.实现Callable接口. Runable/Callable接口的实现, 都是重写其中的run/call方法, 实现任务逻辑, 再由线程执行器(可以是Thread类,也可以是线程池)并发执行run/call的逻辑. 而Thread类中的包含start方法, 可以控制线程启动,执行任务…

关于最小生成树

最小生成树问题&#xff0c;常用于将所有顶点连通的最大最小代价。比如十个城市去修路&#xff0c;不同成熟时之间修路的代价不同&#xff0c;让你找一个方案可以满足每个城市之间互相连通并且代价最小。 解决这个问题有两个算法&#xff0c;Prim算法和Kruskal算法。不同的是&a…

安装和配置nginx(含https)

文章目录 安装Nginx配置单独的配置&#xff1a;https配置 nginx为什么可以处理高并发 安装Nginx sudo yum update sudo yum install epel-release sudo yum install nginx sudo systemctl start nginx安装好后可以打开自己的域名 看一下默认的页面 配置 具体参考Link 位置 …

香港大学推出创新科技教育基金,拟支持Web3和生成式AI等领域教学

区块链技术是近年来备受关注的领域之一,其应用范围已经涵盖了金融、医疗、物流等众多行业。而随着区块链技术的不断发展和完善&#xff0c;越来越多的企业和机构开始将其应用到实际生产和业务中。作为其中一个重要的应用领域&#xff0c;金融领域也成为了区块链技术的重要应用场…

CTF加密解密—CRYPTO—easyrsa1

0x00 考察知识点 CTF 加解密合集&#xff1a;CTF 加解密合集 本道题实际上是在考察对RSA算法的练度问题&#xff0c;已知n&#xff0c;需要将n拆解为两个质数。 工具&#xff1a; http://www.factordb.com/index.php &#xff08;在线分离&#xff09; 0x01 题目 e 6553…

青岛大学_王卓老师【数据结构与算法】Week03_11_线性表的链式表示和实现11_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c;另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础–…

f(x)*g(x)的问题——C的缺陷

整理一道颇具争议的题目 #include<stdio.h> #define Mul(x,y) x*y int main() { int a1,b2,c3; printf("%d",Mul(ab,bc)); }关于这道题目&#xff0c;根据不同的编译器&#xff0c;答案会出现两种答案 11和14&#xff0c;见下面&#xff1a; 关于dev C: 关于…