大幅提升用户行为表征通用性,蚂蚁新模型获CIKM 2023最佳应用论文奖

由美国计算机学会 ACM 主办的 CIKM 2023 学术会议在英国伯明翰举行,大会吸引了 8000+ 学术从业者参加,并从 235 篇应用研究方向(applied research track)的投稿论文中,评选出了本届最佳应用论文奖,来自蚂蚁集团的用户行为表征模型研究论文获得了该奖项。

用户行为表征建模和现在大家熟知的语言模型 有很多相似之处,都是从海量的数据中,通过神经网络模型对序列数据进行表征,不同之处在于前者是对用户行为序列进行学习,后者是对语言序列进行学习。那该论文中的用户行为表征模型有什么独特之处呢?

目前用户行为表征预训练的工作主要借鉴自然语言处理,构建 Masked Behavior Prediction (MBP) 或 Next Behavior Prediction (NBP) 任务来进行模型训练,这些方法在 LLM 的训练中显示出强大的威力。然而与人类语言遵循相对规范的语法结构 / 标准不同,用户的行为序列存在很大的随机性。例如,当小朋友新开学需要购买一批文具产品时,对于单个文具的购买顺序是相对随机的,可能先买书包,再买练习本,笔等,也可能随心排列组合出现任意顺序。过去的研究工作也表明,仅用 mask 部分行为或下一个行为的方法来构建预训练任务,难以学到鲁棒的用户行为表征。

在无数种行为的可能性中,虽然用户的下一个具体行为难以琢磨,但若我们预测用户在一段时间内是否会发生某一个 (种) 行为往往具备更大的可能性。即虽然单个行为无法预测,但用户的行为分布在一段时间内相对稳定,这也符合人类行为具备一致性这一朴素常识。

基于该发现,我们提出了多时间尺度分布预测的用户表征学习方法 (Multi-scale Stochastic Distribution Prediction,MSDP),通过从全域用户行为中挖掘出更本质的信息,提升用户行为表征的通用性。在这些工作的基础上,团队构建了 Unibehavior - 用户统一行为表征框架,帮助金融风控,保险等业务极大的提升用户的风险区分度,高效支持多样化下游场景建模。研究论文获得CIKM 2023最佳应用论文奖。

论文地址:dl.acm.org/doi/10.1145...

论文所阐述的用户行为表征建模成果主要由蚂蚁集团 基础智能部(NextEnv)- 机器智能团队和蚂蚁集团信贷事业群风险管理部 - 信贷风险团队共同完成,并在蚂蚁金融风控的多个业务场景得到了实践检验,研究代码计划将开源。

1. 背景

在过去几年的工作中,我们通过层次化的序列建模等技术挖掘用户行为序列中的风险信息,帮助金融风控、保险等业务的众多场景提升了风险识别能力。在支持业务的过程中,我们也逐步认识到金融风控场景中不同业务场景的差异较大,针对各场景单独建立的模型仅关注场景相关的用户特性(例如还款概率预测关注用户行为中好的方面,而反欺诈模型更偏重挖掘用户行为坏的方面),难以学到跨场景通用、泛化性好的行为表征。针对该问题,我们尝试打造通用的用户表征模型,提升所学到的行为表征在多个业务场景与任务下的通用性,同时提高支持不同业务场景的效率。

在当前工作中,我们基于人类行为在一定的时间范围内具备一致性这一朴素常识,提出了多时间尺度分布预测的用户表征学习方法 (MSDP),通过预测用户在未来一段时间内的行为分布代替原有的 Next Item (Behavior) Prediction 任务,并基于人的行为包含不同的周期性的特点,设计了不同尺度的时间窗口随机采样。和原有方法相比,学习用户不同时间段的行为分布这一任务设计,极大的提升了习得表征的鲁棒性,对下游不同任务具备更好的泛化能力。具体方案与模型效果详见下文。

2. 方法介绍

图 1:多尺度随机分布预测框架图

2.1. 问题定义

将用户 u 发生在时间 (0, T] 内长度为 t 的行为序列 s 定义为如下形式:

表示行为序列中的第 i 个行为,用户的行为有 K 种离散值构成。我们的目标为设计自监督的任务构造预训练模型,从序列中抽取行为序列表征向量。如图 1 所示,预训练任务主要通过多尺度随机分布预测(Multi-scale Stochastic Distribution Prediction) 用于学习鲁棒的序列表征,并设计对比学习任务作为模型正则化的方法。下文将对方法进行详细介绍。

2.2. 多尺度分布预测

用户行为的多尺度分布预测包含 3 个部分:

  • 预训练任务:预测用户未来一段时间内的行为分布。
  • 训练方法:多尺度随机训练,以不同 size 的时间窗口作为 prompts 学习用户行为中的不同周期信息。
  • 对比学习正则化 项:避免模型过拟合到预测未来行为分布上。

2.2.1. 分布预测

给定发生在时间 (0, T] 内的行为序列,我们通过用户发生在时间窗口 (T, T+W] 内的行为作为自监督信号。如前文所述,用户的行为由于随机性与噪声的原因,准确预测未来 (T, T+W] 的特定行为是比较困难的,但由于用户行为在时间上具有一致性,整体的行为分布是可预测的。

具体的,以用户的 K 种行为在未来的时间窗口期 (T, T+W] 内发生的概率分布 作为预测目标,ground-truth 标签可以表示为,W 表示观测的时间窗口,作为 prompt 输入给模型。整体预测行为分布的损失函数可以表示为:

其中分别表示针对第 k 种行为的 ground-truth 标签与预测概率,是行为分布预测模型的输出结果,则是行为序列表征的中间层 embedding,直接作为下游任务的输入使用。

2.2.2. 多尺度提示训练

时间窗口 W 的设定对用户行为表征在下游任务中的效果有很大的影响。如果使用固定的时间窗口,当下游任务需求与预测的时间窗口接近的情况下,所学习的用户行为表征能有较好的效果,但若下游任务与预测的时间窗口差异较大时,用户行为表征的应用效果可能大打折扣。例如,设定 W 为 30 天时,所学得的用户行为表征,应用在 "预测用户未来 30 天是否还款" 这一任务上,要好于在 "预测用户未来 60 天是否还款" 这一任务上的表现。

为了支持业务上的灵活使用和高效扩展,我们需要用户行为表征具备更强的通用性 (对于不同的下游任务都能有较好的效果)。常规方法使用多任务训练的形式,即同时针对多个时间窗口的行为分布进行预测,但如果要穷举完所有可能的时间窗口,又会引起任务数的急剧膨胀,为模型学习带来困难。

为了解决该问题,我们对每个样本都随机生成 N 个不同的时间窗口 W,将 W 作为 prompt 结合用户的行为序列,以及 W 下的 ground-truth 标签构造新的增广样本。其中每个 W 都从一个均匀分布中随机采样:

其中为设定的最小、最大窗口尺寸参数

2.2.3. 对比正则化

除了行为分布预测的自监督任务之外,我们还设置了一个对比学习的任务作为正则化 项,避免模型只是过拟合 到预测未来的行为上,而忽略了用户行为序列中的隐层信息。具体的,我们随机 mask 掉行为序列中的若干个行为表征 e,令经过序列模型编码后的序列表征要与原始未做 mask 的序列表征尽量相似,目的是令模型更能从用户的行为序列中挖掘出整体的表征信息来表示该用户的风险或兴趣偏好。具体的目标函数 设定与 SimSiam 中的类似,最大化的余弦相似度,即:

其中表示经过 mask 部分行为后的序列表征。

2.2.4. 目标函数

当我们从均匀分布中随机采样 N 个不同的时间窗口时,总体的目标函数 由多尺度随机分布预测项与对比正则化 项构成,如下所示:

其中 λ 为非负的系数,用于控制对比正则项的强度。

2.3. 下游应用

图 2:用户行为表征训练以及下游应用方式

如图 2 所示,使用用户在 (0, T+W] 时间内的行为用作用户行为表征的训练数据,其中 (T, T+W] 的行为分布作为自监督信号,并将 (0,T] 的行为序列编码为序列表征向量。在下游业务实际应用时,则可以使用最新的行为(W 到 T+W) 产出表征向量,并将用作不同下游任务的输入特征。

3. 实验

为了验证方法的有效性,我们使用了 1 个业务数据集以及 1 个公开数据集来构造下游任务,并与 NBP 与 MBP 的预训练方法产出的表征做了对比。

3.1. 实验设定

为公平比较,模型训练中统一使用参数相同的 transformer 的 encoder 作为序列编码器,下游任务统一使用 1 个包含两层全两阶层 (维度为 512, 256)的 DNN。

3.1.1. 数据集

1)业务数据集:用户行为序列数据为其在蚂蚁域内的资金行为,例如线下支付、淘系支付、借呗还款、支用等。我们选取了 top200 高频的作为预测目标。使用用户的还款概率预测作为下游任务,针对逾期用户在未来的若干天内是否还款,具体设置了 5 种下游任务,预测用户在未来 5 天,15 天,30 天,60 天,90 天的是否会有还款行为。

2)天猫数据集:用户行为序列数据包含用户在天猫的点击、收藏、购买的商品,下游任务设定为预测用户未来若干天内最感兴趣的商品类别(使用点击次数最多的商品作为最感兴趣的),具体来说,分别预测用户在未来 5 天,15 天,30 天,60 天,90 天最感兴趣的商品类别。

3.1.2. Baselines

3.1.2.1. 单任务

对比的 baseline 方法分为两种:一种是经典的 MBP 与 NBP,例如 BERT4Rec 为预测用户被 mask 的行为,PTUM 在 MBP 的基础上还包含了预测用户 next k 个行为的 NBP 任务。其他的方法除了 MBP 与 NBP 预训练任务外,还包含对比学习的任务,例如 UserBERT,以及与行为分布预测类似,但是为预测一个固定时间段行为分布的方法 SUMN。

此外,我们还对比了固定一个时间窗口的分布预测方法 static-DP,与 SUMN 的区别在于 DP 的预测目标为行为是否发生,而 SUMN 的需要预测行为的发生频次。

3.1.2.2. 多任务

为了对比多尺度提示训练方法的效果,我们也设计了两种多任务的方式作为 baseline。即 Multi-task SUMN 与 Multi-task DP (MTDP,将 static-DP 改为多任务的形式)。多任务的模型结构都采用 shared bottom 的形式,即在序列 encoder 输出表征之后为每一个任务设定一个分支,每个分支的结构与单任务的 MLP 参数 一致。下游应用的表征仍然为

3.2. 实验结果

从表 1 与表 2 的实验结果看,MSDP 在两个数据集上都要优于其他方案。实验结果分析如下:

1)DP vs. MBP 与 NBP:DP 类的预训练方法(包括 static-DP,MTDP,MSDP)都显著优于 MBP 类方法(如 BERT4Rec)或 MBP 与 NBP 结合的方法(如 PTUM),以及当前 SOTA 的用户行为预训练方案(如 UserBERT)。从结果表明 MBP 与 NBP 类的方法由于用户行为中的随机性等问题,不太适合用于构建稳定的用户行为表征,而 DP 类的方法对学习鲁棒稳定的用户行为表征更有帮助的。

2)多尺度提示训练:对比 static-DP 与 MSDP 的结果,使用多尺度提示训练的效果优于固定窗口训练的用户行为表征。对比 MTDP 与 MSDP,MTDP 效果不如 MSDP,分析可能的原因在多任务之间的差异影响了 shared 部分的表征学习 ,而 MSDP 由于有为窗口参数 W 设置独立的 embedding,可以通过 W 的 embedding 区分不同时间窗口行为分布的差异,因此学习中受任务之间差异的影响更小,同时也能够学到不同任务之间的共性信息。

4. 总结与未来展望

本文主要研究用户行为序列表征预训练这一课题。传统的方法遵循 NLP 中的预训练方式,通过预测特定的 mask 行为(MBP)或未来 k 个行为 (NBP)来设定预测任务。但这两种预训练方法不适用于噪声和随机性较大的用户行为序列建模。基于用户行为具备一致性的假设,我们提出多尺度随机分布预测(MSDP)算法,用于学习更加鲁棒的用户行为序列表征。MSDP 算法的主要贡献如下:i)提出预测用户在一段时间内的行为分布,代替预测特定的行为;ii)提出了一种多尺度提示训练方法来对不同时间尺度的时间窗口进行采样,用于模型训练。在实际工业场景与业界公开的数据集上,MSDP 都取得了显著的效果。

近期以 ChatGPT 为代表的大模型兴起,让我们更加相信通用人工智能 之路的可能。也让我们坚定了,在蚂蚁之内,使用一套通用的建模思路来提升多数据多场景信息融合的信心。未来我们希望在预训练的基础上,借助 LLM 的能力引入语言模型中丰富的外部知识,利用语义明确的文本构建跨域信息桥梁,持续探索全域建模解决之路。在当下已有工作基础上,以 prompt learning 方法兼顾多场景多任务持续建设用户行为序列统一表征框架 UNIBehavior,实现跨场景中下游业务的快速支持。

相关推荐
三花AI20 小时前
好家伙,OpenAI 第一的位置屁股还没坐热呢,谷歌 Gemini 就重夺竞技场榜首了
资讯
蚝油菜花10 天前
今日 AI 简报|百度推出检索增强的文生图技术、开源表格处理大模型、蛋白质结构预测、3D 生成、短视频生成、PDF 翻译工具
人工智能·开源·资讯
蚝油菜花1 个月前
王炸!Anthropic 推出全新模型 Claude 3.5 Haiku,首发支持计算机使用功能!
人工智能·llm·资讯
三花AI1 个月前
Playground V3:图形设计模型的文字处理新标杆
开源·资讯
万界星空科技1 个月前
万界星空科技MES系统与各大系统的集成
产品·运营·资讯
战场小包3 个月前
OpenAI动荡,将走向何方、GPT5或许将近、毒舌AI轻松破防网友、最新版 GPT-4o AI 模型得满分 | AGI掘金视界周刊第 4 期
人工智能·资讯
字节跳动开源4 个月前
字节跳动开源多云多集群管理引擎 KubeAdmiral v1.0.0 发布!
开源·github·资讯
战场小包4 个月前
AI视界周刊第 2 期:里程碑 Llama 3.1 开源、AI训AI,越训越傻、AI 搜索重燃战火
人工智能·资讯
栩栩云生4 个月前
[240726] Mistral AI 发布新一代旗舰模型 | Node.js 合并 TypeScript 文件执行提案
typescript·node.js·资讯
赵侠客4 个月前
使用Hutool要注意了!升级到6.0后你调用的所有方法都将报错
java·后端·资讯