作者 | Zhihao Wen
单位 | 新加坡管理大学
研究方向 | 图神经网络
本文由来自新加坡管理大学的作者提出了一种基于提示微调的优惠券滥用检测图神经网络 VPGNN。
论文标题:Voucher Abuse Detection with Prompt-based Fine-tuning on Graph Neural Networks
论文地址:https://arxiv.org/abs/2308.10028
优惠券滥用检测是电子商务中一个重要的异常检测问题。虽然出现了许多基于 GNN 的解决方案,但监督范式依赖于大量标签数据。一种流行的替代方法是使用无标签数据进行自监督预训练,然后在标签有限的下游任务中进一步微调。然而,"预训练、微调 "模式往往受到预训练和下游任务之间目标差距的困扰。因此,我们提出了 VPGNN--一种基于提示的微调框架,用于优惠券滥用检测的 GNN。我们设计了一种新颖的图提示函数,将下游任务重新表述为与预训练中的借口任务类似的模板,从而缩小了目标差距。
在激烈的市场竞争中,用户获取一直是电子商务平台的重要指标。主要策略之一是推出电子优惠券,这有助于吸引更多新用户或鼓励现有用户购买更多商品。然而,电子优惠券在电子商务中的广泛使用也为滥用者提供了机会。他们通常先注册大量账户,然后下订单,目的就是利用为新用户提供的优惠券。他们要么以更高的市场价格转售商品(通常在使用优惠券后以大幅折扣购买),要么与卖家串通,在卖家自己的商店中使用优惠券下订单。这种行为不仅会给电子商务平台造成损失,还会破坏合法用户的生态系统。因此,检测这些滥用用户的订单并防止他们收集优惠券具有重要意义。
本文研究的问题称为 "优惠券滥用检测",旨在检测电子商务行业中滥用用户的订单。检测优惠券滥用的关键是订单之间的网络结构。例如,即使订单是通过不同的账户下达的,但如果它们使用相同的设备或相同的送货地址,它们仍然可能是相关的。如图 1(a)所示,订单图编码了订单之间丰富的关系和模式,有助于区分合法用户和滥用用户的行为。如图 1(b)所示,合法用户通常只在一台或两台设备上登录一个账户,并在第一笔订单上使用一张优惠券,以利用新买家激励机制。相反,如图 1(c)所示,滥用用户通常使用大量设备,并在每台设备上创建多个账户,其中包含多组信息(如电子邮件和手机号码)。在每个账户中,他们都会收集新买家奖励的优惠券,并只用该优惠券下一个订单。通过区分与合法订单和滥用订单相关的图结构,我们将优惠券滥用检测问题归结为图上的binary节点分类。
虽然优惠券滥用检测是异常检测的一个子类,但现有的解决方案并不是检测优惠券滥用这一特定问题的理想选择。一方面,虽然传统的机器学习方法在业界得到广泛应用,但它们无法利用重要的图结构信息。因此,最近的许多异常检测尝试都转向图神经网络(GNN)来利用结构信息。另一方面,优惠券滥用者通常会不时地采用不同的策略来减少平台的检测。因此,及时和高质量的滥用订单标记实例对检测至关重要,但在实际业务场景的生产环境中却非常有限。因此,大多数基于 GNN 的方法无法很好地受益于监督信息。与此同时,自监督 GNN 目标是捕捉内在图形模式,而不需要任何注释标签,因此前景广阔。然而,大多数自监督方法都遵循 "预训练、微调 "范式,这存在一个重大缺陷:预训练和下游任务之间存在目标差距,影响了预训练模型的泛化。在我们的场景中,不同地区和/或时间段的优惠券滥用检测可视为不同的下游任务,因为它们的策略不断变化,而且在每个地区或时间段,以时间敏感的方式获取滥用订单的标签只有在很小的范围内才可行。
为了弥补 GNN 预训练和下游任务之间的差距,我们提出了一种基于提示的图形神经网络微调(VPGNN)优惠券滥用检测框架。我们在基于图的任务中引入了提示,将下游节点分类重新表述为与预训练中的借口任务类似的形式。虽然基于提示的 GNN 学习在 NLP 领域越来越流行,但它仍然面临两大挑战。首先,我们无法直接应用文本提示功能来衔接各种基于图的任务,因为文本提示与基本图元素(如节点和边)不兼容。因此,我们在本文中提出了一种图提示函数,它将下游节点分类问题重新表述为 context token和节点token之间的配对匹配任务。具体来说,每个节点token代表一个节点类别,通过选择最有可能与节点token相匹配的类别(即context token)来实现节点分类。这种成对模板与图预训练中许多流行的借口任务的成对表述一致。
其次,目前还不清楚如何在调整之前初始化context token。context token应该:1)信息量大,以充分利用预训练过程中学到的先验知识,这也是提示的初衷;2)稳健,尤其是在资源匮乏、任务标签有限的情况下。为了保证信息量,我们重新使用了预训练中的图读出函数来初始化下游的context token;为了保证稳健性,我们使用本地子图来增强有限的标记节点。最后,对context token和预训练的 GNN 模型进行微调,以进行下游分类。
预训练。有许多借口任务被提出来对 GNN 进行预训练。在优惠券滥用检测中,滥用订单占少数,合法订单占多数。因此,我们利用 DGI 来最大化局部-全局互信息,其中图层的全局信息捕捉了大多数人表现出的 "正常 "模式,这有助于表明节点偏离正常的程度。具体来说,设 为节点表示矩阵,其中每一行 都是由 GNN 编码器生成的节点 的表示,参数为 。此外,让 成为 的全局表示,其公式为 其中, 是参数攸关的读出函数。在预训练中,DGI 的目标是最小化以下损失:
其中,由 参数化的 是一个投影头,用于评估节点图对 的匹配得分,衡量局部与全局的一致性。请注意,监督来自 ,它是一个indicator 函数:如果节点 来自原始图𝐺,则为 1;如果节点 来自损坏版本的 ,则为 0。因此,预训练过程不需要任何人工标注,而是以自监督的方式更新模型参数,包括 (GNN)、 (readout) 和 (投影头)。
微调。经公式 (1) 优化的预训练 GNN 参数 可作为下游分类任务的良好初始化。按照 "预训练,微调整 "的模式,初始化与一组新的分类权重 一起通过优化以下公式进一步微调:
其中, 是一个新的投影头,其参数 是随机初始化的,取代了之前的投影头 。 是下游分类损失(如交叉熵), 是节点 的特定任务标签。
在本节中,我们将概述我们的方法,并详细介绍基于提示的微调。
与 NLP 中的文本提示不同,在图数据上,由于传统文本提示与图元素不兼容,设计提示并不容易。为了在图上实现基于提示的微调,我们的 VPGNN 分为两个主要阶段,如图 2 所示。首先,在图 2(a)中,我们基于 DGI 进行预训练。然后,在 (b) 中,我们对下游的优惠券滥用检测进行基于提示的微调。
其中,基于提示的微调包括三个关键模块:(1) 提示生成:我们的图提示功能为每个输入节点生成一组token对;(2) 提示辅助预测:对于每个输入节点,其token对的匹配概率可通过预训练中的同一投影头进行评分。匹配概率将用于预测合法/违规订单。(3) 基于提示的微调:提示中的context token将与预训练的 GNN 一起进行微调,与传统微调的主要区别在于,预训练中使用的相同借口投影头 和借口损失函数 将在下游任务中重复使用,而不需要新的投影头或任务损失。
下面,我们将首先简要介绍数据准备过程,然后重点介绍图 2(b) 中的下游阶段,因为预训练阶段已在前言中介绍过。
我们的 VPGNN 模型需要两个关键输入元素,包括订单图和少量标签,具体如下。
图表构建。我们使用两类专有原始数据:(1) 包含电子邮件、IP 和送货地址等详细信息的用户配置文件;(2) 登录、订单、付款等买家旅程日志。我们根据各种共享属性(如相同的设备或地址、相似的用户名等)构建订单图,如图 1(a)所示,以捕捉订单之间的串通模式。
有限的伪标签生成由于优惠券滥用的不稳定性,及时和高置信度的标签更受欢迎。因此,我们通过使用一组预定义的业务规则来生成伪标签,这些规则是由 Lazada 公司的内部专家精心制定的。特别是,这些规则设计得比较保守,以避免触怒合法用户,这样只有最明显的滥用订单才会被标记出来。因此,这些伪标签的可信度很高,但可用性有限。在下游预测中,我们将利用这些为数不多的标签示例进行基于提示的微调。
我们的基于提示的微调框架不是为下游任务引入新的投影头和损耗,而是生成和调整提示,并根据提示进行预测。首先,我们提出了一个图提示函数 ,它将输入节点 转换为提示 。提示 是一个连续的嵌入向量,其形状与预训练中借口投影头的输入相同。鉴于我们在 DGI 中的借口任务是最大化节点图对的互信息,我们的提示 也假定了一个成对模板,由一对节点token和context token组成。对于节点 ,我们有
其中,节点token 是节点 的向量表示,可由 GNN 编码;context token 是下游任务中类 的可学习嵌入,具体解释如下
节点token。节点token捕捉节点信息。与 NLP 中的输入文本嵌入相对应,我们的节点token 是输入节点 的嵌入。它可以是由 GNN 编码的节点 的表示形式 ,也可以是相邻节点 的嵌入向量的聚合。在我们的工作中,我们只需实现 即 GNN 的直接输出。
Context token。Context token旨在捕捉类的上下文信息。受提示调整的启发,我们为下游任务中的每个类别 建立了一个可学习的向量 作为context token。假设有一组 类 . 因此,对于每个输入节点 ,我们可以将其节点token与 个不同的context token配对,形成 个token对,即 。context token可用可学习的提示矩阵 表示,其中 也是节点表示的嵌入维度。
提示初始化。既然context token是可学习的向量,我们就需要解决它们的初始化问题。传统的方法是随机初始化,即从头开始训练,这种方法信息量不大,而且无法利用我们预先训练好的模型。
为了提高初始化的鲁棒性,我们用邻近节点来增强已标注节点,这可以提供已标注节点周围的额外局部信息。为了提高信息量,我们重新使用了预训练中的图读出函数。由于 Readout 的设计目的是汇集图中的节点以得出图级摘要表示,因此它同样可以应用于下游,汇集与类相关的节点以得出类级摘要表示。类级摘要可以为context token提供更多的初始化信息,而context token则旨在捕捉有关类的信息。具体来说,对于每个类,我们收集标注节点集及其邻近节点 ,其中 。然后,我们为 中的节点构建一个输入嵌入矩阵 ,其中 是节点 的表示,由预训练的 GNN 编码。随后,context token 可以通过 进行初始化,其中 是读出函数的预训练参数。为了提高效率,我们只对每个标注节点的 个邻居进行采样。
基于我们的提示设计,我们概述了基于提示学习的优惠券滥用检测,其中包括提示辅助预测和基于提示的微调
提示辅助预测。对于每个输入节点 ,提示函数会生成两个标记对 和 ,给定类别 ,用于二元优惠券滥用检测。我们可以利用相同的借口投影头 对每个token对的匹配概率进行评分,类似于在预训练中对节点图对进行评分。因此,我们预测节点𝑖所代表的顺序为 "滥用",当且仅当
因为 捕获了两个类别的上下文信息。在这里, 可以由投影头的预训练参数 来初始化,并根据特定任务的标签进一步微调,正如我们接下来展示的那样。
基于提示的微调。我们的提示设计不仅可以重复使用借口投影头,而无需引入新的分类头,还可以重复使用借口任务损失,而无需制定新的任务损失。
其中, 是之前提到的indicator函数:如果节点 被标记为 ,则为 1;否则为 0。 是对提示矩阵的正交约束,用于促进每个类别的可分离性, 是控制约束重要性的系数。
数据集。首先,在遵守所有安全和隐私政策的前提下,我们从 Lazada 公司提供的电子商务平台上收集了四个专有的大规模数据集,用于检测代金券滥用情况,分别命名为 VN0909、VN1010、ID0909 和 ID1023。每个数据集都是一个包含数百万个节点的图,其中节点代表具有预定义特征的订单,而边则是它们之间预定义的关系。VN0909 和 VN1010 来自 Lazada 的越南市场,收集时间为 2022 年 9 月 9 日和 10 月 10 日;ID0909 和 ID1023 来自 Lazada 的印度尼西亚市场,收集时间为 9 月 9 日和 10 月 23 日。请注意,VN0909 仅用于预训练,我们在其他三个数据集上进行了测试。其次,我们还使用了一个有关异常检测的公共数据集,即亚马逊数据集, 并且我们在这个数据集上进行了预训练。
鉴于预训练是在 VN0909 上进行的,VPGNN 在 VN1010、ID0909 和 ID1023 上的优异表现显示了其跨时间和/或市场的泛化能力。
在线表现。VPGNN 于 2022 年 12 月 11 日至 13 日在印度尼西亚市场部署测试,用于双 12 活动。我们将 VPGNN 与现有的两种部署模型进行了比较:BCP 是无监督 K-means 聚类模型的分布式实施,LPA 是高效的无监督社区 检测算法。
在本文中,我们提出了一种基于提示的 GNN 微调方法,称为 VPGNN,以解决优惠券滥用检测问题。我们试图弥合借口任务和下游任务之间的差距,提出了一种图提示功能,将下游任务重新制定为遵循与借口任务类似的模板。鉴于滥用订单的下游标签有限,预训练的 GNN 模型只需进行相对较少的微调即可应用。在专有数据集和公共数据集上进行的广泛离线实验表明,VPGNN 在少数情况下和半监督情况下的表现优于最先进的基线。此外,在线评估还表明,VPGNN 比现有的两个部署模型有显著提高。
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢