APP下载

基于无监督学习的可解释性财务异常检测研究

2022-07-11张健王子豪于敬

电子技术与软件工程 2022年4期
关键词:枚举解释性离群

张健 王子豪 于敬

(达而观信息科技(上海)有限公司 上海市 201203)

1 概述

随着市场经济的加剧,粗放型的财务管理方式逐渐被淘汰,如何降低财务管理成本以及提升企业运营效率,成为企业管理健康发展的关键。分析财务报销是否合理是财务管理中的重点,财务部门人员需要确保会计票据与实际业务相吻合且符合相关规定。但是实际的财务审核业务面临着量大耗时、规则多变、成本高等多种难点。本文提出了一种基于无监督学习的可解释性财务异常分析方法,并设计了一套财务异常分析系统,解决了在缺少先验经验的情况下如何自动挖掘财务异常和多源异构数据难以适应传统分析模型的问题。

2 背景

在财务日常工作中,财务人员通过对企业运营过程中产生的各类发票和会计资料进行审核。财务审核需要确保原始资料真实性,保证各种票据、凭证、资料的完整性与合规性,例如确保报销票据合乎规定、发票类别要符合税法要求等。财务审核的工作量会随着公司规模的扩大与日俱增,传统的以纯人工为主的审核模式难以适应公司财务管理发展的需求,主要体现在多个方面:工作量大、细分程度高导致人力成本居高不下;面对海量数据,人工操作出错率高;审核规则极为复杂,变化频率高;判断标注对业务经验的依赖性大,标准参差不统一;过程无痕迹,数据无积累等。

针对这些挑战,学术界针对其中的场景不断提出了不同的智能化技术手段辅助人来提升财务审核的处理效率。随着数据挖掘、机器学习和深度学习等技术基础的发展,人工智能与财务审核的融合成为了研究热点。邓森林等利用基于统计学习理论的一类支持向量机(one-class SVMs)实现金融交易数据的分类,从而识别出可疑异常财务数据。韩东明等从异常类型(属性、拓扑和混合)和异常检测方法(直接投影法、聚类方法和机器学习方法)两个角度对面向时序异常检测的可视分析工作进行分类和总结。姜齐艳等提出了一套数据处理、数据挖掘和神经网络组合的财务异常检测流程。徐军通过差额的方式,将非时序性指标转化为时序性指标,并使用时序数据构建卷积神经网络分类识别模型来对企业指标变化情况进行异常检测。王亚林等结合差异分析、全局分析和强化学习方法来检测用户的行为是否存在异常。刘春雨等针对财务报销审批进行业务建模,形成可机器理解的报销审批脱敏数据,并根据实际业务特点构造变量特征与标签,采用随机森林对重构后的变量进行重要度分析。

已有的研究主要从有监督学习的方式来完成财务异常检测,由于机器学习方法解释性弱的问题,在识别准确率达不到100%的情况下,对于识别为异常的行为比较依赖人工经验的核对,缺乏解释性的数据支撑。而且由于业务变动,异常行为模式发生较大变化,模型的识别能力存在一定的滞后性。为了解决上述问题,本文结合无监督学习和自然语言处理的方法,实现了异常行为模式自动挖掘流程,构建了财务数据异常在线检测服务框架。

3 财务异常分析系统

3.1 系统框架结构

本文提出的财务异常分析系统的整体框架如图1 所示。整体流程是财务各个子系统的历史数据,导入到系统进行预处理,基于语义分析能力对数据进行进一步结构化解析,使用异常规则挖掘算法进行离线计算,生成异常识别规则推送到管控平台,业务人员对识别规则进行查询、管理、编辑和应用上线,上线后对接外部接口用以实时判断和预警。

图1:财务异常分析系统框架结构

系统主要包括预处理模块、基础语义分析模块、异常规则挖掘模块和管控后台。其中,预处理模块主要负责对数据进行清洗、过滤无效数据、数据标准化、数据类型识别等功能;基础语义分析模块负责文本数据的基础分析处理,包含中文分词、词性标注、关键词提取、句法分析、文本分类和实体识别等;异常规则挖掘模块负责对不同类型的数据进行无监督学习模型训练,完成异常规则挖掘并输出具备解释性的异常识别规则。管控后台主要负责提供界面化后台给到使用者对生成的关联规则进行规则过滤、二次编辑、可用性审核等操作。

3.2 数据预处理

数据预处理模块从财务系统进行历史存量数据导入,数据的形式主要分为四种类型,包括日期型字段、数值型字段、枚举型字段、文本型字段。以出差发票报销信息为例,发票报销包含“出发日期”、“返回日期”、“部门”、“交通费”、“住宿费”、“事由”等字段,其中,“出发日期”和“返回日期”属于日期型字段,“交通费”和“住宿费”属于数值型字段,“部门”属于枚举型字段,“事由”属于文本型字段。由于具体的日期数值通常不具备业务解释意义,需要将日期型字段转化为具备分析意义的信息,系统采用了差值的方式来表示日期型字段的内涵,即对数据中的所有日期型字段进行两两组合,计算每种组合的差值形成一个新的字段,类型为数值型。例如,组合“出发日期”和“返回日期”,生成一个新的字段“出发日期与返回日期的时间间隔”。最终模块输出的字段类型包含数值型字段、枚举型字段、文本型字段三种类型。

对原始数据进行类型划分和统一化表示处理,一方面是在数据接受时进行对应的类型检查、校验数据的准确性和完备性,如果识别导入的数据不符合格式要求、数值是不符合客观要求、或者存在缺失值则作为无效数据进行清洗。另一方面是在后续的挖掘环节针对不同的字段会采用不同的处理逻辑。

3.3 语义解析

在经过数据预处理之后,文本型字段作为非结构化形式难以直接使用。需要通过自然语言处理技术对其进行结构化处理,处理流程如图2 所示。

图2:语义解析流程

整体流程是:针对文本型字段,首先对文本进行分词处理;通过词性标注功能识别分词词性,提出无意义的虚词;对文本进行命名实体识别,剔除对业务意义影响比较小的人名、地名、公司名称等实体名词;使用关键词提取算法,提取核心关键词;将关键词进行入库处理。在完成入库处理之后,根据统计频率设置人工阈值对于低频长尾的标签进行过滤,保留词频高于阈值的标签。

在经过语义解析之后,原本表达方式因人而异、形式不一的文本片段转化为了可枚举的标签集合。原来文本型的字段可以解析为多个标签的列表,可以直接转为One-Hot 编码使用到后续的异常规则算法流程中。

3.4 基于无监督学习的异常规则挖掘

3.4.1 异常规则定义

异常规则挖掘的主要目标是从大量的历史数据中学习到一般行为的普遍规律,如果具体的行为与识别到的规律相悖,则认为是异常行为。异常识别规则采用产生式规则的表示方法,即R=X →Y,其中X 是规则的前件(前提),Y 是规则的规则的后件(结论)。

采用该方法比较接近人的思维方式,可以理解为因为X(满足某些条件)所以Y(符合某个结论),适合于表达因果关系,规则可以直接转化为具备解释性的文字描述。

异常规则挖掘主要采用了关联规则学习和离群点检测的算法实现。

3.4.2 关联规则学习

关联规则学习是一种常用的机器学习算法,其原理是利用一些度量指标来生成强规则。关联规则学习使用规则的支持度、置信度和提升度作三个基础度量指标,他们分别反映规则的有用性、确定性和相关性。

支持度(Support)表示某个项集在整体集合∩中发生的频率。假定全部数据样本里有N 条数据,规则R=X →Y 的支持度Sup(R)计算公式可以表示为:

置信度(Confidence)表示当项集A 发生时项集B 同时发生的频率。针对规则R=X →Y 的置信度,可以理解为在包含了 X 的条件下,含有 Y 的事务占总事务的比例。在实际使用中会设置一个最低置信度,那些大于或等于最小置信度的规则称之为是有意义的规则。规则R=X →Y 的支持度Conf(R)计算公式可以表示为:

提升度(Lift)表示表示含有X 的条件下,同时含有Y的概率,并且与Y 总体发生的概率做比值。提升度用来判断规则X →Y 中的X 和Y 是否独立,如果独立,那么这个规则是无效的。规则R=X →Y 的支持度Conf(R)计算公式可以表示为:

如果提升度等于1,说明两个条件没有任何关联。如果提升度小于1,说明X 与Y 是负相关的关系,意味着一个出现可能导致另外一个不出现。大于1 才表示具有正相关的关系。一般在数据挖掘中当提升度大于3 时,才承认挖掘出的关联规则是有价值的。

3.4.3 离群点检测

离群点(outlier)是指和其他观测点偏离非常大的数据点。离群点检测就是通过通过统计或者模型的方法检测提取出与众不同的数据对象。离群点不一定都是异常的数据点,也有可能是误差或者数据可变性导致。离群点检测可以基于模型、基于聚类和基于统计的方法实现。检测规则可解释性原因的考虑,选用了基于统计的方法,并且采用Z 分数作为离群点检测的度量指标。

Z 分数是一维或低维特征空间中的参数异常检测方法。该技术假定数据是高斯分布,异常值是分布尾部的数据点,因此远离数据的平均值。距离的远近取决于使用公式计算的归一化数据点Z的设定阈值Z,Z 分数的计算公式表示为:

其中x是待检测数据点,μ 是所有点x的平均值,δ 是所有点x的标准偏差。

离群点检测时,对待检测的数据点x经过标准化处理,计算Z 分数Z,如果起绝对值大于Z则认为异常点:

Z值一般设置为2.5、3.0 和3.5,高于阈值的检测为异常点作后续处理。

3.4.4 异常规则挖掘流程

基于上述介绍的两种规则挖掘策略,构建了一个规则生成的流程框架如图3 所示。

图3:异常规则挖掘流程

原始数据经过针对日期型字段进行差值处理和针对文本型字段进行语义解析获取标签,最终所有原始数据信息都转化为了数值型和枚举型字段,得到已处理的数据点集D={x,x, ..., x},其中x={fn, fn, ..., fn, fe, fe, ..., fe},fn 和fe 分别表示数值型字段值和枚举型字段值。

为了提升算法计算效率,规则的前件采用频繁项集计算得到的所有枚举型标签集合,频繁项集使用Apriori 算法来进行挖掘。规则的后件针对不同的字段类型规则的后件针对不同的字段类型:枚举型字段使用关联规则学习来进行规则生成,数值型采用离散点检测来进行规则生成。

算法的思路是,迭代每个频繁项集,生成不同的非空子集作为规则前件。一方面把差集作为规则后件,计算支持度、置信度和提升度指标;一方面针对各个数值型字段计算z 分数阈值对应数值,生成规则后件。最终针对每个规则生成解释性描述,并且合并同种类型相同前件的规则。计算过程如算法1 所示。

算法1 异常规则挖掘算法输入:已处理的数据点集D;最小支持度MinSup,最小置信度MinConf;Z 分数阈值Zthr输出:1.扫描数据样本集合,针对枚举型字段值采用逐层搜索的迭代方式产生频繁项集集合L 2.初始化候选规则列表3. for 频繁项集集合L 中的每一个频繁项集li do 4. for 频繁项集li 中的每个枚举型字段fej do 5. 若li 和fej 满足如下条件 则输出li-fej →fej 加入到候选规则列表:Sup(li)≥MinSupimages/BZ_265_477_1108_516_1145.pngimages/BZ_265_856_1135_895_1171.pngLift(li →fej)>=1 6. 生成数据点集D 中符合li 的样本子集DSij 7. for 每个数值型字段fnk do 8.9. 计算DSij 中数值型字段fnj 对应z 分数阈值的数值xthr,满足10. 输出 li-fej →(x>xthr) 加入到候选规则列表11. end for 12. end for 13. end for 14. 初始化输出规则列表15. for 候选规则列表中的每一条规则ri do 16. if ri 由关联学习生成 then 17. 生成ri 的解释性描述模板,增加规则的置信度到解释性描述18. 若输出规则列表已存在同样规则前件的规则rj,则对两规则进行合并,否则加入输出规则列表19. else 20. 生成ri 的解释性描述模板,增加阈值说明到解释性描述21. 加入输出规则列表22. end if 23. end for

因为模型驱动的规则生成准确率会受限于原始数据本身的数量和质量,所以需要解释性的内容辅助业务人员是否有效。生成解释性描述的目标是帮助业务人员确认规则是否有效,这点是以往财务异常检测研究工作中忽视的一点。规则的解释性描述面向关联规则学习策略和离群点检测策略,构造的方式不同,关联规则学习策略构建的规则会采用规则的置信度等内容,离群点检测策略构建的规则会采用Z 分数阈值作为描述说明。针对具体数据生成的解释性示例如表1所示。

表1:异常规则解释性说明示例

3.4.5 管控后台

按照财务共享中心需求设计的一套异常规则挖掘管控系统,用于对挖掘模块产生的所有规则进行集中管控,具体功能包含如下:

(1)管控大厅功能:实现对整套关联关系挖掘系统的运行管控,包括系统运行任务管理,数据导入导出管理等;

(2)规则审核功能:对生成的规则进行人工审核,支持设定阈值值,权重等处理;

(3)规则训练界面:编辑后对规则进行重新训练,创建训练任务,设定数据范围等操作;

(4)规则运维界面:对所有规则进行集中管控,包括规则的分组,命名,上下线,调用,删除等操作。

4 实验与评估

本节通过实验来验证基于财务异常规则挖掘的性能,采用了规则识别异常数据的准确率和召回率(检出率)作为实验对比指标。实验数据集使用了发票报销数据集,数据集大小为972418。随机选择4000 条样本作为效果验证样本,并且在其中10%进行人工错误设置,其余作为模型训练样本。而且在人工设错样本中,枚举型标签错误和数值型标签错误各占5%,分别检测关联规则学习和离群点检测的策略效果。

实验针对关联规则学习、离群点检测和整体的情况进行了评估分析,最小支持度MinConf 设置固定为0.1%,对最小置信度MinConf 和Z 分数阈值Z两个指标设置分组实验,MinConf 和Z参数值设置为(87.5%,90%,92.5%,95%,97.5%)和(87.5%,90%,92.5%,95%,97.5%)。

最小置信度对照组的实验结果如表2 所示,实验表明随着最小置信度提升,异常数据识别的准确率会响应提升,召回率会下降。最小置信度对照组的实验结果如表3 所示,实验表明随着Z 分数阈值提升,异常数据识别的准确率会响应提升,召回率会下降。

表2:最小置信度对照组实验结果

表3:Z 分数对照组实验结果

最小置信度MinConf 和Z 分数阈值Z两个指标分别使用90%和90%时,两种策略和整体的实验结果如表4 所示。实验结果表明,通过无监督学习的异常检测方法在正常的业务数据中误报率低于0.3,而且异常识别规则能够进入后台进行维护、编辑和管理,在实际的操作中能够有效协助业务人员完成财务审核工作。

表4:算法策略实验结果

5 结语

文中提出并开发了一种无监督学习的财务异常分析检测系统,使用了关联规则学习和离群点检测的策略构建了异常数据识别模型,评估了所提出框架的性能。实验表明经过大批量数据的离线训练,可以在构造的数据集中取得误报率低于0.3 的效果,表明了系统能够有效支撑业务人员的审核工作。而且通过对接系统数据进行模型的持续更新,结合管控平台通过人机协同的方式,可以实现业务审核点地不断自我完善及升级,最大程度的挖掘数据潜在的价值和效用。

但是本文仍存在一些不足之处,虽然模型具备解释性能力,但是也约束了模型的输入形态和异常检测方式。未来研究将会在数据的嵌入表示、使用对高维数据友好的模型以及基于NLP 的自动化解释生成等方面进行工作扩展,进一步提升财务审核系统的异常数据监测能力。

猜你喜欢

枚举解释性离群
基于理解性教学的信息技术教学案例研究
一种高效的概率图上Top-K极大团枚举算法
论行政自由裁量的“解释性控权”
英汉互译中的认知隐喻翻译探究
融媒体时代解释性报道的发展之路
非解释性宪法适用论
基于太阳影子定位枚举法模型的研究
离群数据挖掘在发现房产销售潜在客户中的应用
离群的小鸡
应用相似度测量的图离群点检测方法