一种基于强化学习的异常推荐数据检测方法和系统

专利2024-03-14  112



1.本发明涉及一种基于强化学习的异常推荐数据检测方法和系统,用以检测在推荐系统之中的异常数据,属于推荐系统数据处理技术领域。


背景技术:

2.随着科技的发展,数据量相较于从前激增,同时,数据的模态也变的原来越多样化。传统异常检测尽可以处理同一模态数据,已无法应对现如今复杂的真实环境,多模态异常检测也因此诞生。在推荐系统之中,数据的来源多种多样,一般主要分为图片和文字两种。如何处理识别异常数据在推荐系统之中有举足轻重的地位,通过数据进入推荐系统之前,识别出其中的异常数据,可以极大地加速推荐系统的性能,也可以节省人力风控处理的成本。
3.传统的针对单一来源的数据所采用的初级异常检测算法,只会以两种角度来看待数据,一种是正常数据,一种是异常数据。针对如何定义异常数据,不同的算法则有不同的定义。有些算法,假设数据之中存在簇结构,因此,所谓的异常数据也就是在簇结构之外的离群点;另外也有一些算法,针对上一种方法无法解决不存在簇结构的数据异常问题,采用维度变换的方式,举例而言,有些数据可能在欧式空间是杂乱无章的,无法分辨是否异常,但是将其映射在非欧空间之中,可能会存在一定的结构帮助区分,流形学习等算法可看做是这一类的。
4.同时,相较于传统单模态异常检测仅需要实现将异常区分为异常数据与非异常数据相比,多模态数据则存在两种不同的异常类型。一种可以称之为“不合异常”,即在不同模态之间不一致的异常;另一种称之为“一致异常”,即在不同模态之间描述相同的异常数据。但是之前的多模态异常检测工作多假设真实世界中的异常数据存在某种聚类结构,而这一强假设限制了算法的发展,使其无法处理非聚类数据的异常检测。其次,之前的多模态异常检测算法多需要针对“一致异常”和“不合异常”分别进行数学建模,导致无法整体考虑两种异常问题。最后,现实世界中有一定的专家知识,可以辅助算法进行区分,同时,绝大多数的数据都处于无标注状态,因此更接近半监督学习的方向。
5.现有的解决多模态异常数据检测的方法主要存在一下几点问题:1)不同类型的多模态异常检测方法对数据都进行相应的假设,具有强烈的异常模式假设,比如说基于分布的方法和基于聚类的方法等,这一类方法在假设不成立的时候往往不能产生令人满意的结果。2)现有的多模态异常检测方法往往基于复杂的数学模型,无法利用现有的神经网络模型,并且在处理图片和文字模态信息时较为劣势。3)现有的方法很少同时考虑点异常和集体异常,导致静态的异常检测模型参数在动态场景下性能不佳。


技术实现要素:

6.发明目的:针对现有单一模态异常识别算法在无法应对推荐系统数据的多样性,以及现有多模态异常识别算法针对数据结构类型假设过多的问题,本发明提供一种基于强
化学习的异常推荐数据检测方法和系统,针对原始数据的多个模态,使用不同的神经网络提取他们的关键维度信息,针对获得的信息,采用双线性池化方式进行模态之间的融合,相较于传统简单进行向量加以及简单拼接的方法,采用双线性池化更容易融合不同模态的信息,获得更好的效果。
7.技术方案:一种基于强化学习的异常推荐数据检测方法,主要聚焦于推荐系统中的多模态异常数据识别,依赖强化学习算法,针对半监督异常数据,提出了一种针对“一致异常”和“不合异常”同时进行识别的方法。该方法通过和推荐系统进行交互,在用户数据收集之后,传入推荐系统之前,由本发明提出的方法进行识别,将其中的异常数据进行剔除,并将正常的数据传送给推荐系统,经由推荐系统处理之后将结果反馈给用户。
8.主要流程如下:(1)收集推荐系统中现有的用户数据,包含推荐系统所需的用户最近一段时间的用户id,浏览记录对应的item列表,时间戳以及其他推荐系统所需要的元信息。针对用户数据进行部分标注,将数据划分成包含异常数据标注数据集da和无标注数据集du;对于收集到的用户数据,后续提供给模型进行训练。
9.(2)利用(1)中用户数据进行学习训练,生成相应的识别模型。
10.在生成识别模型的过程中,使用agent网络用来识别多模态数据是否异常,使用teacher网络针对上一时刻agent网络输出的动作和数据情况,给出奖励;使用select网络选取下一时刻的数据;使用fusion网络将多模态数据进行融合。具体训练步骤如下:步骤1:初始化agent网络,teacher网络,select网络,以及fusion网络。
11.步骤2:agent网络接受t时刻状态和奖励并输出动作,其中状态表示将推荐系统所收集到的标注数据集da和无标注数据集du中的数据进行多模态融合之后的得到的数据向量,奖励表示teacher网络对agent网络输出动作的评价,动作表示状态为异常数据的概率。
12.步骤3:将agent网络接收到的状态和奖励、输出动作 ,这三者作为三元组《,,》保存起来;步骤4:select网络接受动作,返回选中的下一个数据,并将该选中的数据推送给fusion网络;步骤5:fusion网络通过接收select网络在t+1时刻推送的不同模态的数据,通过神经网络提取模态的特征信息m1和m2;步骤6:使用双线性池化将特征信息m1和m2进行融合,形成单一模态数据,即t+1时刻状态s
t+1
;步骤7:teacher网络接受上一时刻的动作,和fusion网络输出的下一时刻的状态s
t+1
,产生针对上一时刻动作的奖励;步骤8:重复步骤3~步骤7,将每一次重复过程产生的三元组《,,》作为一条训练数据,收集设定数量(如:2048条)训练数据之后停止。
13.步骤9:使用收集到的训练数据进行模型训练,优化各神经网络参数,将生成轨迹
的折扣累计奖励值作为优化目标:。
14.步骤10:重复步骤3~步骤9,直到满足指定的训练轮数或者达到优化目标,得到训练好的agent网络,作为识别模型。
15.(3)多模态异常数据识别智能体部署。
16.将上述训练好的agent网络部署到真实的推荐系统之中,利用真实的在线数据进行异常数据的识别。通过在线数据,可以持续性检测智能体对于真实多模态异常数据识别的准确率,召回率等指标,如果出现相应指标下降以至于不满足要求,可重复流程(2)重新进行训练,并执行流程(3)进行部署。
17.一种基于强化学习的异常推荐数据检测系统,包括:收集用户数据模块,识别模型训练模块,部署模块,以及模型评价模块;所述收集用户数据模块收集推荐系统中现有的用户数据,针对用户数据进行部分标注,将数据划分成包含异常数据标注数据集da和无标注数据集du;对于收集到的用户数据,用于识别模型训练模块训练识别模型。
18.所述识别模型训练模块利用用户数据进行学习训练,使用agent网络用来识别多模态数据是否异常,使用teacher网络针对上一时刻智能体的动作和数据情况,给出奖励;使用select网络选取下一时刻的数据;使用fusion网络将多模态数据进行融合。
19.所述部署模块将训练好的agent网络部署到真实的推荐系统之中,利用真实的在线数据进行异常数据的识别。
20.模型评价模块,通过agent网络与推荐系统交互的在线数据,持续性检测智能体对于真实多模态异常数据识别的准确率,召回率等指标,如果出现相应指标下降以至于不满足要求,可重复执行识别模型训练模块,并执行部署模块。
21.一种计算机设备,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行上述计算机程序时实现如上所述的基于强化学习的异常推荐数据检测方法。
22.一种计算机可读存储介质,该计算机可读存储介质存储有执行如上所述的基于强化学习的异常推荐数据检测方法的计算机程序。
23.有益效果:与现有技术相比,本发明提供的基于强化学习的异常推荐数据检测方法和系统,可以针对任何多模态数据,不用考虑其具体的数据类型和数据结构样式,并且也不需要针对具体的数据做任何假设即可进行异常信息的检测。拓展了之前类似算法应用的局限性,并且提升了训练带来的精度提升,获得了更好的性能收益。
附图说明
24.图1是本发明实施例的方法原理图;图2是本发明实施例的模型训练流程图。
具体实施方式
25.下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明
而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本技术所附权利要求所限定的范围。
26.一种基于强化学习的异常推荐数据检测方法,包括:(1)收集推荐系统中现有的用户数据,包含推荐系统所需的用户最近一段时间的用户id,浏览记录对应的item列表,时间戳以及其他推荐系统所需要的元信息。针对用户数据进行部分标注,将数据划分成包含异常数据标注数据集da和无标注数据集du;对于收集到的用户数据,后续提供给模型进行训练。
27.(2)利用(1)中用户数据进行学习训练,生成相应的识别模型。
28.在生成识别模型的过程中,使用agent网络用来识别多模态数据是否异常,使用teacher网络针对上一时刻agent网络输出的动作和数据情况,给出奖励;使用select网络选取下一时刻的数据;使用fusion网络将多模态数据进行融合。具体训练步骤如下:步骤1:初始化agent网络,teacher网络,select网络,以及fusion网络。
29.步骤2:agent网络接受t时刻状态和奖励并输出动作,其中状态表示将推荐系统所收集到的标注数据集da和无标注数据集du中的数据进行多模态融合之后的得到的数据向量,奖励表示teacher网络对agent网络输出动作的评价,动作表示状态为异常数据的概率。
30.步骤3:将agent网络接收到的状态和奖励、输出动作 ,这三者作为三元组《,,》保存起来;步骤4:select网络接受动作,返回选中的下一个数据,并将该选中的数据推送给fusion网络;步骤5:fusion网络通过接收select网络在t+1时刻推送的不同模态的数据,通过神经网络提取模态的特征信息m1和m2;步骤6:使用双线性池化将特征信息m1和m2进行融合,形成单一模态数据,即t+1时刻状态s
t+1
;步骤7:teacher网络接受上一时刻的动作,和fusion网络输出的下一时刻的状态s
t+1
,产生针对上一时刻动作的奖励;步骤8:重复步骤3~步骤7,将每一次重复过程产生的三元组《,,》作为一条训练数据,收集设定数量(如:2048条)训练数据之后停止。
31.步骤9:使用收集到的训练数据进行模型训练,优化各神经网络参数,将生成轨迹的折扣累计奖励值作为优化目标:。
32.步骤10:重复步骤3~步骤9,直到满足指定的训练轮数或者达到优化目标,得到训练好的agent网络。
33.(3)多模态异常数据识别智能体部署。
34.将上述训练好的agent网络部署到真实的推荐系统之中,利用真实的在线数据进行异常数据的识别。通过在线数据,可以持续性检测智能体对于真实多模态异常数据识别的准确率,召回率等指标,如果出现相应指标下降以至于不满足要求,可重复流程(2)重新进行训练,并执行流程(3)进行部署。
35.一种基于强化学习的异常推荐数据检测系统,包括:收集用户数据模块,识别模型训练模块,部署模块,以及模型评价模块;收集用户数据模块收集推荐系统中现有的用户数据,针对用户数据进行部分标注,将数据划分成包含异常数据标注数据集da和无标注数据集du;对于收集到的用户数据,用于识别模型训练模块训练识别模型。识别模型训练模块利用用户数据进行学习训练,使用agent网络用来识别多模态数据是否异常,使用teacher网络针对上一时刻agent网络的动作和数据情况,给出奖励;使用select网络选取下一时刻的数据;使用fusion网络将多模态数据进行融合。部署模块将训练好的agent网络部署到真实的推荐系统之中,利用真实的在线数据进行异常数据的识别。模型评价模块,通过agent网络与推荐系统交互的在线数据,持续性检测agent网络对于真实多模态异常数据识别的准确率,召回率等指标,如果出现相应指标下降以至于不满足要求,可重复执行识别模型训练模块,并执行部署模块。
36.在真实的推荐场景下,用户侧通过收集用户数据模块或收集用户数据过程从推荐系统收集用户数据,将从推荐系统收集到的数据先交由识别模型,经过识别对异常数据识别之后,再将没有问题的数据传送至推荐系统部分,最终推荐系统将结果反馈给用户。
37.如图1所示,使用select网络和fusion网络这两个网络来应对下一时刻的状态选取以及获取到的多模态数据的融合,select网络和fusion网络两个合在一起称为environment网络;可使用前置经验的规则形式来约束select网络如何根据上一时刻动作进行下一时刻数据的选取;使用 select网络将非马尔科夫过程转换成满足马尔科夫过程,使用fusion 网络实现多模态异常数据推送;在teacher 网络之中,通过获取上一时刻的动作和environment 网络在下一时刻选择出来的状态,输出针对上一时刻动作的评价奖励。teacher网络可选择那些根据先验知识定制化的奖励函数,也可以使用通过数据学习到的神经奖励网络作为它的本体。在agent网络中通过强化学习方法可以判断当前多模态数据是否异常。
38.agent 网络旨在学习一个最优的面向多模态异常检测情况下的智能体,可以获得最大的奖励和,因此,在agent网络的策略为π的情况下,所能获得的期望奖励如下所示:在上面的公式中, θ表示agent网络的参数,τ表示收集到的数据样例,r(τ)表示轨迹τ的奖励,p
θ
(τ)表示轨迹τ的概率,期望奖励公式是从状态s开始的期望回报,采取行动a,然后遵循行为策略π=p(a|s)。我们的期望是通过调整智能体agent网络的策略π,使得期望奖励能够最大化。为了达到这一目的, 有很多策略梯度的相关方法可以实现,选用近端策略优化 ppo 算法。它通过迭代最大化下面的损失函数来学习参数θ:
公式中的s 表示当前时刻的状态,θ表示agent网络参数,表示第k轮agent网络的参数,则表示在策略π下,第k轮agent网络计算得到的优势函数的值,表示在参数为θ的神经网络指定的策略π下,状态为s时,动作为a的概率。函数g表示对的取值进行裁剪,限制它的值在1-ε和1+ε之内。
39.状态采样函数 select 网络是模拟环境之中的关键模块,由两个函数ga和gn组成,用来实现对完整数据集d的平衡探索和利用。其中,ga是一个从标注数据集da之中均匀采样s
t
的函数。这为每一个异常数据提供了相同的机会可以被agent网络利用。另一方面,gn是一个专门针对正常数据的采样函数,它根据当前的状态的接近程度从无标注数据集du来采样s
t+1 。在agent网络-environment网络这一交互过程之中,同时使用了ga和gn:以概率p执行ga,并且以1-p的概率执行gn。这种方式使得agent网络能够在探索大型数据的同时,充分利用已标记的多模态异常数据。在这项工作之中,p=0.5可以看做是同等利用了两种数据。
40.teacher 网络被定义为一个函数, 根据agent网络在检测已知异常方面的表现向我们的agent网络产生奖励信号:它表明只有当agent网络能够正确的将已知的多模态异常标记为“异常”的时候,它才会收到积极地奖励。如果agent网络能够正常的识别正常的观察结果,则不会收到奖励,这是因为在实际数据之中,异常数据往往占据少数,而正常数据处于绝对多数,如果给正常数据一个正向奖励,可能会导致agent网络有将所有数据都识别为正常数据的倾向。最后,如果agent网络出现了假阴性或者假阳性,它会受到负面的奖励惩罚。因此,能够明确的鼓励agent网络充分利用异常数据集da。
41.图2所示的是识别模型的训练流程情况。使用该算法对收集到的推荐系统用户的多模态数据进行训练。经过训练之后会得到的一个最优的agent网络,该网络可以解决多模态异常数据的识别问题。将训练得到的agent网络作为识别模型,就可以在推荐系统中,实时检测数据信息,判断是否属于异常数据,并将正常数据传输给推荐系统使用。算法中使用的agent网络用来识别推荐系统中用户数据是否为多模态异常数据,teacher网络用来在训练过程中针对agent网络输出的动作和数据情况进行打分,select网络用来选择下一时刻需要传入agent网络的数据,fusion网络将推荐系统中的用户数据进行融合。
42.如图2所示识别模型的具体训练步骤如下:步骤101:初始化agent网络,teacher网络,select网络和fusion网络。使用现有的针对特定模态的神经网络预训练模型,值函数网络,用于临时保存训练过程中产生数据的buffer d。
43.步骤102:重置网络梯度,同步所有网络参数,重置训练buffer d。
44.步骤103:对fusion网络传输上一时刻select网络从数据集中选择的多模态数据d
t
,结果保存为s
t

45.步骤104:向teacher网络传输状态s
t
和动作a
t
,结果保存为。
46.步骤105:对agent网络传输状态s
t
和奖励,结果保存为动作a
t+1

47.步骤106:对select网络传输动作a
t+1
,select网络会从已有的数据集中选取下一时刻的数据,标记为d
t+1
步骤107:将状态s
t
,动作a
t
和奖励保存在训练buffer d中。
48.步骤108:重复步骤103~步骤107,直至收集到要求的数据数量。
49.步骤109:计算优势函数,其计算公式如下,公式中的s即为当前时刻的状态s
t
,a为当前时刻的动作a
t
,表示下一时刻的状态,r表示当前时刻获得的奖励,q函数通过现有的状态s、动作a 以及值函数网络v计算q值:其中,其中,步骤110:使用ppo算法,更新训练策略,其优化目标为:步骤110:使用ppo算法,更新训练策略,其优化目标为:其中ε是一个值很小的超参数,它粗略地表示为对新策略与旧策略相距远近的容忍度, s即为当前时刻的状态s
t
,a为当前时刻的动作a
t
,表示下一时刻的状态s
t+1
,r表示当前时刻获得的奖励。clip函数接受三个参数作为输入,如果第一个参数在第二个参数和第三个参数范围内,则输出第一个参数,否则将其取值进行裁剪,上下限分别为第三个参数和第二个参数的取值。表示在神经网络参数为θ,且状态为s时,动作为a的概率,表示在神经网络参数为θk且状态为s时,动作为a的概率。表示在神经网络参数为θk,状态为s,动作为a时,计算的出的优势函数的取值。
50.步骤111:重复步骤109~步骤110,直到满足优化要求或者达到指定轮数。
51.显然,本领域的技术人员应该明白,上述的本发明实施例的基于强化学习的异常推荐数据检测方法各步骤或基于强化学习的异常推荐数据检测系统各模块可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的
网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。

技术特征:
1.一种基于强化学习的异常推荐数据检测方法,其特征在于,包括:1)收集推荐系统中现有的用户数据;2)利用用户数据进行学习训练,生成相应的识别模型;在生成识别模型的过程中,使用agent网络用来识别多模态数据是否异常,使用teacher网络针对上一时刻agent网络输出的动作和数据情况,给出奖励;使用select网络选取下一时刻的数据;使用fusion网络将多模态数据进行融合;3)多模态异常数据识别智能体部署;将训练好的agent网络部署到真实的推荐系统之中,利用在线数据进行异常数据的识别;通过在线数据,持续性检测智能体对于多模态异常数据识别的指标,如果出现相应指标下降以至于不满足要求,重新训练识别模型,并重新部署agent网络。2.根据权利要求1所述的基于强化学习的异常推荐数据检测方法,其特征在于,收集推荐系统中现有的用户数据,包含推荐系统所需的用户最近一段时间的用户id,浏览记录对应的item列表,时间戳以及其他推荐系统所需要的元信息;针对用户数据进行部分标注,将数据划分成包含异常数据标注数据集d
a
和无标注数据集d
u
;对于收集到的用户数据,提供给识别模型进行模型训练。3.根据权利要求2所述的基于强化学习的异常推荐数据检测方法,其特征在于,所述2中,识别模型训练步骤如下:步骤1:初始化agent网络,teacher网络,select网络,以及fusion网络;步骤2:agent网络接受t时刻状态和奖励并输出动作,其中状态表示将推荐系统所收集到的标注数据集d
a
和无标注数据集d
u
中的数据进行多模态融合之后的得到的数据向量,奖励表示teacher网络对agent网络输出动作的评价,动作表示状态为异常数据的概率;步骤3:将agent网络接收到的状态和奖励、输出动作 ,这三者作为三元组<,,>保存起来;步骤4:select网络接受动作,返回选中的下一个数据,并将该选中的数据推送给fusion网络;步骤5:fusion网络通过接收select网络在t+1时刻推送的不同模态的数据,通过神经网络提取模态的特征信息m1和m2;步骤6:使用双线性池化将特征信息m1和m2进行融合,形成单一模态数据,即t+1时刻状态s
t+1
;步骤7:teacher网络接受上一时刻的动作,和fusion网络输出的下一时刻的状态s
t+1
,产生针对上一时刻动作的奖励;步骤8:重复步骤3~步骤7,将每一次重复过程产生的三元组<,,>作为一条训练数据,收集设定数量训练数据之后停止;步骤9:使用收集到的训练数据进行模型训练,优化各神经网络参数,将生成轨迹的折
扣累计奖励值作为优化目标:;步骤10:重复步骤3~步骤9,直到满足指定的训练轮数或者达到优化目标,得到训练好的agent网络,作为识别模型。4.一种基于强化学习的异常推荐数据检测系统,其特征在于,包括:收集用户数据模块,识别模型训练模块,部署模块,以及模型评价模块;所述收集用户数据模块收集推荐系统中现有的用户数据,针对用户数据进行部分标注,将数据划分成包含异常数据标注数据集d
a
和无标注数据集d
u
;对于收集到的用户数据,用于识别模型训练模块训练识别模型;所述识别模型训练模块利用用户数据进行学习训练,使用agent网络用来识别多模态数据是否异常,使用teacher网络针对上一时刻智能体的动作和数据情况,给出奖励;使用select网络选取下一时刻的数据;使用fusion网络将多模态数据进行融合;所述部署模块将训练好的agent网络部署到真实的推荐系统之中,利用真实的在线数据进行异常数据的识别;模型评价模块,通过agent网络与推荐系统交互的在线数据,持续性检测智能体对于多模态异常数据识别的指标,如果出现相应指标下降以至于不满足要求,重复执行识别模型训练模块,并执行部署模块。5.一种计算机设备,其特征在于:该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行上述计算机程序时实现如权利要求1-3中任一项所述的基于强化学习的异常推荐数据检测方法。6.一种计算机可读存储介质,其特征在于:该计算机可读存储介质存储有执行如权利要求1-3中任一项所述的基于强化学习的异常推荐数据检测方法的计算机程序。

技术总结
本发明公开一种基于强化学习的异常推荐数据检测方法和系统,主要聚焦于推荐系统中的多模态异常数据识别,依赖强化学习算法,针对半监督异常数据,提出了一种针对“一致异常”和“不合异常”同时进行识别的方法。该方法通过和推荐系统进行交互,在用户数据收集之后,传入推荐系统之前,由本发明提出的方法进行识别,将其中的异常数据进行剔除,并将正常的数据传送给推荐系统,经由推荐系统处理之后将结果反馈给用户。本发明容易融合不同模态的信息,获得更好的效果。得更好的效果。得更好的效果。


技术研发人员:詹德川 王博洋 俞扬 周志华
受保护的技术使用者:南京大学
技术研发日:2022.05.16
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-7108.html

最新回复(0)