实战 | 基于MacBERT的需求关联性预测模型研究

实战 | 基于MacBERT的需求关联性预测模型研究
2024年03月29日 09:43 金融电子化

文 / 上海银行金融科技部 贾弘茹  刘丽  徐旻涵

需求统筹管理是金融业中台建设过程中的一个关键环节,快速识别及判断不同业务条线所提出的需求之间的关系,提前管理布局,既能有效防范重复建设造成的系统风险、避免资源浪费,又能在业务功能整合过程中,对公共模块加强配置能力、数据分析能力等基础功能建设。

随着上海银行“业技融合”的不断推进,业务需求量不断提升,目前行内年度业务需求量增幅约为5.4%,月均新增需求约450条。由于专业限制,不同业务条线的需求预审是由科技需求团队不同专业线的人员负责。如果仅凭需求预审人员人工逐条判别需求的方式,会存在人工核查效率低、各条线信息不对称而造成判别失误的风险。本文针对此问题,通过分析目标场景,研究采用自然语言处理技术(Natural Language Processing,NLP),建立基于MacBERT的需求关联性预测模型。在需求预审阶段,利用模型对新增需求及历史存量需求进行统一判别,高效、及时、自动筛查需求之间的相似度和关联性,辅助人工预审,提高判别准确性,将风险管控前置。

算法描述

需求名称通常是高度概括的,包含了开发涉及系统、功能要求、开发目标等重要信息。若要判别分析不同需求间的相似度和关联性,可对其需求名称进行文本相似度分析。

常见的文本相似度算法有两个关键组件,即文本表征模型和相似度度量方法。前者负责将文本表示为计算机可以计算的数值向量,也就是提供特征;后者负责基于前面得到的数值向量计算文本之间的相似度。其中,文本表征模型的发展历程大致可分为以下几个阶段。

传统模型阶段(20世纪90年代—21世纪初):这一阶段的典型算法包括TFIDF、词向量映射等静态文本表征模型。这些方法主要基于词频、词共现等统计信息计算文本之间的相似度。

浅层神经网络阶段(2010年代初期):这一阶段开始使用浅层神经网络提取文本语义特征,然后计算文本相似度。

BERT(Bidirectiona lEncoder Representation from Transformers)阶段(2018年起):BERT的提出标志着预训练语言模型在NLP任务上的迅速发展。基于BERT等预训练模型的文本相似度算法成为主流,大大提升了性能。这一阶段的代表性算法有MacBERT等多种动态文本表征模型。

1.MacBERT模型算法概述及优势分析

MacBERT是一种预训练语言模型,专门针对中文进行了优化。它基于BERT(双向编码器表示的变形体)模型,并在多个方面进行了改进。

数据:MacBERT使用了大规模的中文语料进行预训练,包括中文维基百科、新闻报道、论坛内容等。这有助于它对中文的理解。

词汇表:MacBERT使用了一个包含大约172,000个汉字的大规模中文词汇表,覆盖了绝大多数常用汉字。

模型架构:MacBERT使用了12层的Transformer编码器结构。相比英文BERT的Base模型,它加深了网络结构,有利于学习中文的复杂语法结构。

训练技巧:MacBERT在预训练过程中使用了全词遮挡、N-gram遮挡等训练技巧,增强了模型对语义的理解能力。

性能:在多项中文自然语言处理任务上,MacBERT都取得了当时最佳的效果,包括句法分析、文本分类、命名实体识别等。

总的来说,MacBERT是一种强大的中文预训练语言模型,通过在数据、词汇表、模型结构、训练技术等方面的优化,使其特别适合中文NLP任务。它已被广泛应用于中文对话系统、文档理解等领域。

MacBERT模型的优势在于其强大的上下文建模能力和高度可迁移的特性。与TF-IDF算法相比,在字面上不相似,语义上接近的词汇之间的相似度判别有优势。MacBERT又是对BERT模型的进一步优化,它与BERT在预训练任务上相同,但在遮蔽语言模型(MLM)任务上做了调整。通过采用全词遮蔽和Ngram遮蔽策略来选择待遮蔽的标记,可进一步提高模型对微调任务的表现。

表1举例说明在“需求关联性判别”场景中的一些常见词汇的不同模型相似度数值,对比了TF-IDF、BERT、MacBERT三种模型。

表 1  TF-IDF、BERT、MacBERT 模型词汇相似度对比

可以观察到,对于词汇的相似度解析,MacBERT模型相对于TF-IDF、BERT模型表现更好。MacBERT能够更准确地捕捉到在字面上不相似,但在语义上却很接近的词汇之间的关系,能够捕捉到词语在上下文中的多义性和复杂关系,从而在NLP任务中获得更高的性能。

2.MacBERT模型目标函数

对于MLM任务,BERT首先随机选择输入序列中的一些字(Token),然后将这些Token替换为特殊的[MASK]Token。模型的任务是预测这些被遮蔽的Token的原始值。其损失函数可以表示为:

m(|x)表示在|x中被遮蔽的Token,X\m(|x)表示在|x中没有被遮蔽的Token。

对于SOP任务,模型的输入是两个句子,模型需要预测这两个句子是否连续。其损失函数可以表示为:

如果|x和y在文本中是连续的,则t=1。

3.基于MacBERT模型的二分类算法步骤

算法步骤如下:第一,给定训练数据集和评估测试集。第二,使用MacBERT预训练权重初始化模型。第三,将训练集数据转换为MacBERT模型接受的输入格式。MacBERT模型接受的输入格式通常是Token IDs、segment IDs以及attention masks,如图1所示。

图1  MacBERT模型输入

第四,创建一个适合的任务顶层分类器。对于二分类任务,可以在MacBERT模型的顶部添加一个全连接层,并用[CLS]的输出向量作为输入。然后可以将全连接层的输出通过一个sigmoid函数,得到一个0到1之间的值,表示正类的概率,如图2所示。

图2  句子分类模型

第五,训练模型。使用训练数据和相应的标签训练模型,可以选择合适的损失函数和优化器。训练时,MacBERT模型的参数和分类器的参数都会进行更新。

第六,验证和调整模型、测试模型。使用验证集评估模型的性能。需要调整模型的参数,例如学习率、批处理大小、模型的架构。调整参数的目标是找到能在验证集上表现最好的模型,并在测试集上测试模型的最终性能。

需求关联性预测模型建设

1.建模流程

针对需求关联性预测模型的需求与实际场景分析,主要可以将建模流程分为3个部分:问题需求分析;数据预处理,包括数据清洗、数据标注和数据增强;模型训练、迭代及评估。

2.问题需求特征分析

通过对上海银行存量的零星需求分析,发现有相似功能点的需求存在多份需求名称关键词相似度高的特征,如“涉及的系统”“涉及的开发和改造功能要求”相似或相同。针对此特征可将所有需求名称作为模型输入数据,进行数据预处理,生成需求名称数据集。并随机将其分为训练集、验证集和测试集,采用MacBERT算法模型进行训练与评估。具体建模流程见图3。而其他相似需求的特征,如存在由不同部门业务发起人发起给同一个科技承接部门,或是由不同部门业务发起人发起给同一个“应用系统”开发的情况等,则可生成判别规则,作为辅助判别条件使用,不涉及本文算法。

图3  需求关联性预测模型建模流程图

3.数据预处理

对于文本相似度算法,数据预处理方法如下。

一是数据清洗。数据清洗旨在确保数据质量和一致性。本论文研究过程中主要从以下几个方面进行清洗。

去除特殊字符和标点符号:清洗需求名称中的无效字符、特殊符号和标点符号,以避免对相似度计算产生干扰。

去除停用词:停用词是那些在文本中频繁出现但对于相似度计算没有太大帮助的常用词语,如介词、连词等。去除这些停用词可以减少文本的噪声和冗余信息。如去除较长需求名称中的介词、连接词。

数据去重:检测并删除重复的文本实例,确保每个样本的唯一性。

二是数据标注。数据标注旨在向模型提供带有相似度标签的样本,以便监督学习模型的训练过程。标注可以分为人工标注,手动进行;和语义匹配算法,利用自然语言处理技术和对文本进行自动标注。

三是数据增强。数据增强旨在扩充训练数据集,提高模型的泛化能力和鲁棒性。在构造数据集时,本模型采用了一些常用的数据增强技术。

同义词替换:利用词典或词嵌入模型,将文本中的部分词语替换为其同义词或相似词,以增加样本的多样性。

随机插入、删除和交换:在文本中随机插入、删除或交换词语,以创建新的样本实例。

句子重组:将一对文本样本中的句子进行重组和重新排序,以生成新的样本对。

根据上述数据清洗、数据标注和数据增强的数据预处理方法,可以建立一个数据质量高、内容多样化的模型数据集。

4.模型训练和迭代

在完成数据清洗、数据标注和数据增强后,可利用MacBERT算法进行建模。其中,经过预处理的数据集的正负样本情况如下,训练期间保持数据正负样本比例为1:5。并经过多轮调参测试,获得如下参数配置结果。其中相似度阈值经测试验证选择0.8效果最佳。本文对MacBERT模型的所有参数共计110M(1.1亿)个进行全量参数的训练,如表2、表3。

表 2  模型 MacBERT 算法参数配置

表3    MacBERT 需求关联性预测模型技术指标

在模型参数配置相同的情况下,本文还评估了BERT模型的技术指标,结果如表4。通过表3和表4的数据对比可以看出,在相同数据集和相同评估指标下,MacBERT相对于BERT算法在精确率、召回率和F1分数上均取得了更优秀的表现。因此,可以选择MacBERT算法用于需求关联性预测任务以更好地处理文本数据,提高预测性能。

表4    BERT 需求关联性预测模型技术指标

模型迭代是指在建立文本相似度模型的过程中,进行多轮的模型训练、评估和调优的循环过程。下面是模型迭代的过程。根据评估结果和超参数调优的反馈,对模型进行改进和调整。可以尝试调整模型结构、增加正则化方法、引入注意力机制等技术手段,以提升模型的性能。在模型迭代的最后阶段,使用测试集对经过多次迭代训练和调优的模型进行最终评估。测试集评估结果可以用于衡量模型的泛化能力和实际应用效果。在模型迭代过程中,关键是不断从数据和评估结果中获得反馈,进行模型的改进和调优。通过多轮迭代,模型可以逐步提升性能,更好地适应业务需求和数据特点。

表5和表6是在表2和表3利用MacBERT算法预测的基础上,经过多轮模型调参迭代,获得的更优结果。可见模型经迭代后精确率由42%到52%,提升了10%,召回率由70%到78%,提升了8%,F1分数由52.6%到62.5%,提升了9.9%。

表5    模型 MacBERT 算法迭代后参数配置

表6    需求关联性预测模型迭代后技术指标

5.模型应用

模型应用流程如下:首先利用需求关联性预测模型可将每月新增零星需求和当前历史存量需求的需求名称相似度进行算法对比。然后根据模型多轮迭代计算结果,明确需求筛选的参数,可将名称相似度高的多条需求聚合并筛选出来。最后,对筛选出的相似度高的多条需求,配合业务需求书、需求牵头部门、需求所属应用等辅助信息进行人工判别,可排除大量无关联性需求,快速定位有关联可能性需求,具体流程见图4。

图4  模型应用流程图

通过上述步骤方法,可有效定位出不同业务条线提出的有关联性需求,尤其在渠道侧应用效果明显。如不同业务条线的需求中会涉及:不同贷款产品专区建设模块中的订单查询、对账、参数配置等功能优化要求。可以通过该模型从大量需求中快速筛选出疑似相似需求,再人工审核其差异化细节,将公共属性进一步下沉至渠道中台建设中。

利用该模型,发现关联性较高的需求效果如下:每季度平均共有约1300个零星需求。通过前述模型预测,可定位出共约30条零星需求,存在疑似关联度较高需求的可能。相比对每季度全量1300条需求直接进行人工判别分析,可降低96.2%的人力成本。筛选出的需求再根据辅助条件和业务需求书等材料进行人工筛选,可大大节约人力成本。模型筛选出的可能存在关联度较高的需求,后续经过人工再判别,确认为有重复或相似需求的定义为模型预测正确。预测准确率达32.1%。

针对本预测模型,制定的模型评价标准说明如下:当前寻求模型筛选数量和模型筛选准确率的平衡关系,而不单独要求模型筛选准确率高。因为如要求模型准确率提高,则模型筛选更为精细,会出现筛选数量大、问题需求成为“漏网之鱼”的可能。如模型准确率过低,则筛选模型颗粒度粗、筛选不准确,又达不到目标效果。按照模型筛选数量和模型筛选准确率的平衡关系,调试出当前表3的模型参数。

总结及展望

通过分析需求整合场景中,在预审阶段可能产生的,对不同业务部门提出的重复功能需求因信息不对称而造成判别失误、手工作业量大、效率低的问题,搭建了基于MacBERT的需求关联性预测模型。可以利用本文详述的文本相似度算法建模步骤,将新增需求和历史全量需求进行对比分析,计算出不同需求间的相似度和关联性。查找出关联度较高的需求,可帮助人工快速、高效筛选。在保证可行性的前提下,最终实现人工效率的大幅提升。

针对以上研究过程,希望在未来可对需求整合管理的场景进一步优化:可利用OCR、NLP技术对需求提出阶段的业务需求文档进行空白查询、功能描述文本分析,进一步提升对需求具体内容的自动化判别精准度。

需求关联性预测模型的研究,充分展示了人工智能技术与科技管理的全面融合,结合科技管理问题分析、模型算法、专家规则、测试调优及实际应用为一体。实现了模型预测辅助人工作业的工作思路,将技术能力尝试应用于需求管理领域,实现数据赋能、模型助力,驱动管理效能的提升。

(此文刊发于《金融电子化》2024年2月下半月刊)

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部