一种基于MPI的分布式ADMM垃圾邮件分类方法技术

技术编号:32579562 阅读:9 留言:0更新日期:2022-03-09 17:10
本发明专利技术公开了一种基于MPI的分布式ADMM垃圾邮件分类方法,包含以下步骤:将文本数据向量化为数字格式的数据集;将数据集分割为训练集和测试集,对训练集进行过采样处理,再分割为若干份分别保存在若干个从节点上;MPI并行执行所有节点上的代码,从节点并行更新局部模型;主节点通过MPI规约功能汇总从节点的局部模型;主节点更新全局模型,并利用MPI广播功能将全局模型分发到各个从节点;循环交替更新从节点和主节点的模型,直到满足终止条件;保存主节点的全局模型作为分类器模型;利用训练得到的分类器模型对测试集进行分类,输出分类结果。本发明专利技术适合大数据场景下垃圾邮件分类任务,有效提升了分类的效率和精度。有效提升了分类的效率和精度。有效提升了分类的效率和精度。

【技术实现步骤摘要】
一种基于MPI的分布式ADMM垃圾邮件分类方法


[0001]本专利技术涉及分布式机器学习领域,具体涉及一种基于MPI的分布式ADMM垃圾邮件分类方法。

技术介绍

[0002]分类问题是人类所面临的一个非常重要且具有普遍意义的问题。它是基于已知训练集识别一个新的实例属于哪个类别的有监督的学习问题。将事物正确的分类,有助于人们认识世界,使杂乱无章的现实世界变得有条理。例如自动文本分类就是对大量的自然语言文本按照一定的主题类别进行自动分类,它是自然语言处理的一个十分重要的问题;文本分类主要应用于信息检索,机器翻译,自动文摘,信息过滤,邮件分类等任务。
[0003]交替方向乘子法(Alternating Direction Method of Multipliers,ADMM)最早由Stephen Boyd等人于2010年提出,作为一种求解优化问题的计算框架,适用于求解分布式凸优化问题。ADMM算法为机器学习中的约束最优化问题的高效分布式求解提供了可能。原始的ADMM算法在统计机器学习、数据挖掘和计算机视觉等领域中得到了广泛应用。作为能够有效地协调若干个节点之间子全局模型变量优化的强有力工具,ADMM在分布式优化和统计学习中扮演着举足轻重的角色,受到了研究学者的极大关注。ADMM发展至今,己经被广泛地应用到机器学习、数据挖掘和信号处理等领域。
[0004]MPI(Massage Passing Interface,信息传递接口)是一个跨语言的通信协议,基于消息传递的编程模型,单机模式下用于不同进程间的通信,集群模式下用于不同机器的通信。在Linux、Windows、Mac OS上都可以安装运行,有MPICH、OpenMPI等若干个版本可以使用,可以使用C++、python等多种编程语言开发,由python实现的mpi4py库可以很好地结合numpy库,保证程序运行速度的同时实现高效开发。MPI可以实现点对点通信,一对多的广播通信,以及多对一的规约等多种通信方法。MPI既可以完成阻塞通信,也可以完成非阻塞通信。目前在学术界分布式计算领域得到广泛应用。

技术实现思路

[0005]本专利技术的目的在于提出一种基于MPI的分布式ADMM垃圾邮件分类方法,用于解决大数据环境下的垃圾邮件分类问题,并针对这一问题提出合适的基于ADMM的分布式框架,以提高性能和减少时间。
[0006]本专利技术将所要研究的问题分为若干个可并行计算的子问题,每个子问题用改进的随机梯度下降算法来解决,使用分布式ADMM框架交替优化逐步达到全局最优共识。
[0007]实现本专利技术的技术解决方案:一种基于MPI的分布式ADMM垃圾邮件分类方法,包括如下步骤:
[0008]步骤1、将文本数据向量化为数字格式的数据集;
[0009]步骤2、将数据集分割为训练集和测试集,对训练集进行过采样处理,再分割为若干份分别保存在若干个从节点上;
[0010]步骤3、MPI并行执行所有节点上的代码,从节点并行更新局部模型;
[0011]步骤4、主节点通过MPI规约功能汇总从节点的局部模型;
[0012]步骤5、主节点更新全局模型,并利用MPI广播功能将全局模型分发到各个从节点;
[0013]步骤6、循环交替更新从节点和主节点的模型,直到满足终止条件;
[0014]步骤7、保存主节点的全局模型作为分类器模型;
[0015]步骤8、利用训练得到的分类器模型对测试集进行分类,输出分类结果。
[0016]进一步地,本专利技术步骤1中利用NLP(Natural Language Processing)技术,如Word2vec算法,将文本数据向量化为数字格式的数据集。处理后的数据集可以表示为n为样本数量,x为d维的样本数据向量,y为样本标签。本专利技术使用L2正则化的L2损失支持向量机(SVM)作为主要的线性分类模型。该方法的目标函数可表示为:
[0017][0018]其中C>0是一个超参数,用来控制正则项和损失项比重关系,防止过拟合,w是模型的参数向量,且w∈R
d
;L2正则化表示上述目标函数中正则项‖w‖2带有平方,L2损失表示损失项max(1

y
i
w
T
x
i
,0)2带有平方。
[0019]由于垃圾邮件在数据集中属于少数类,使用SMOTE算法对训练集过采样处理来解决不平衡数据分类问题,使得训练集中正样本和负样本数量相当,接着再分割为若干份分别保存在若干个从节点上。SMOTE算法的基本思想是对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中。
[0020]进一步地,将数据集按照4:1的比例分割为训练集和测试集,并分割为若干份分别保存在若干台从节点上。假设数据被存在了m个节点(D1,D2,

,D
m
)上,(9)式改写为:
[0021][0022]s.t.w
j

z=0,j=1,

,m
[0023]其中ρ是一个超参数,w
j
是第j个节点的局部模型参数,z是在主节点上更新的全局变量,且z∈R
d

[0024]将原函数(10)改写成增广拉格朗日形式,即原问题的对偶问题:
[0025][0026]其中θ
j
是第j个节点的对偶变量。
[0027]进一步地,MPI并行执行所有节点上的代码,通过mpiexec命令完成。首先主节点上随机初始化全局模型变量z,各从节点上随机初始化局部模型变量w
j
及其对偶变量θ
j
,方便起见,一般初始化为全零。接着从节点并行更新局部模型变量。由ADMM算法更新规则可知,
w,z,θ按如下公式迭代更新:
[0028][0029][0030][0031]其中k是迭代次数。因为拉格朗日函数L(w,z,θ)对于w
j
是可分解的,所以本专利技术在各个从节点上并行地解决问题(12)来更新局部模型变量w
j

[0032][0033]进一步地,主节点通过MPI规约功能汇总从节点的局部模型,首先本专利技术通过如下代码创建MPI的通信子comm:
[0034]comm=MPI.COMM_WORLD
[0035]接着利用通信子实现规约功能,表示如下:
[0036]comm.Reduce(sendbuf,recvbuf,Op,root)
[0037]其中sendbuf表示从节点发送的内容,这里具体传入局部模型变量及其对偶变量recvbuf表示主节点用于接收的变量,Op表示具体规约的操作函数,这里本专利技术使用MPI.SUM函数,表示将从节点的值相加后传给主节点,root表示根节点序号,这里本专利技术传入主节点序号0。
[0038]进一步地,主节点收集整合各从节点的局部模型变量及其对偶变量,更新本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于MPI的分布式ADMM垃圾邮件分类方法,其特征在于,包括如下步骤:步骤1、将文本数据向量化为数字格式的数据集;步骤2、将数据集分割为训练集和测试集,对训练集进行过采样处理,再分割为若干份分别保存在若干个从节点上;步骤3、MPI并行执行所有节点上的代码,从节点并行更新局部模型;步骤4、主节点通过MPI规约功能汇总从节点的局部模型;步骤5、主节点更新全局模型,并利用MPI广播功能将全局模型分发到各个从节点;步骤6、循环交替更新从节点和主节点的模型,直到满足终止条件;步骤7、保存主节点的全局模型作为分类器模型;步骤8、利用训练得到的分类器模型对测试集进行分类,输出分类结果。2.根据权利要求1所述的一种基于MPI的分布式ADMM垃圾邮件分类方法,其特征在于,步骤1利用NLP技术,将文本数据向量化为数字格式的数据集;处理后的数据集表示为其中n为样本数量,x
i
为第i个d维的样本数据向量,y
i
为第i个样本标签,R
d
表示d维的实数集,i取值1~n;使用L2正则化的L2损失支持向量机SVM作为线性分类模型,目标函数表示为:其中C>0是一个超参数,用来控制正则项和损失项比重关系,w是分类模型变量,且w∈R
d
;使用SMOTE算法对训练集过采样处理使得训练集中正样本和负样本数量相当,接着再分割为若干份分别保存在若干个从节点上。3.根据权利要求2所述的一种基于MPI的分布式ADMM垃圾邮件分类方法,其特征在于,步骤2将数据集按照4:1的比例分割为训练集和测试集,并分割为若干份分别保存在若干台从节点上,同时复制代码文件到若干个从节点,假设数据被存在了m个节点(D1,D2,

,D
m
)上,式(1)改写为:s.t.w
j

z=0,j=1,

,m其中ρ是一个超参数,w
j
是第j个从节点的局部模型变量,z是在主节点上更新的全局模型变量,且z∈R
d
;将式(2)改写成增广拉格朗日形式得到式(3),即:
其中θ
j
是第j个从节点的模型对偶变量。4.根据权利要求3所述的一种基于MPI的分布式ADMM垃圾邮件分类方法,其特征在于,步骤3中MPI并行执行所有节点上的代码,通过mpiexec命令完成;主节点上随机初始化全局模型变量z,各从节点上随机初始化局部模型变量w
j
及其对偶变量θ
j
,初始化为全零;从节点并行更新局部模型变量,由ADMM算法更新规则得到,w,z,θ按如下公式迭代更新:如下公式迭代更新:如下公式迭代更新:其中k是迭代次数,拉格朗日函数L(w,z,θ)对于w
j
可分解;在各个从节点上并行地解决公式(4)来更新局部模型变量w
j
:5.根据权利要求4所述的一种基于MPI的分布式ADMM垃圾邮件分类方法,其特征在于,步骤4中主节点通过MPI规约功能汇总从节点的局部模型,通过如下代码创建MPI的通信子comm:comm=MPI.COMM_WORLD,其中COMM_WORLD是MPI的内置对象,接着利用通信子实现规约功能,表示如下:comm.Reduce(sendbuf,recvbuf,Op,root)其中Reduce是规约函数,sendbuf表示从节点发送的内容,传入局部模型变量及其对...

【专利技术属性】
技术研发人员:肖明霏刘龙恩王慧慧周沧琦
申请(专利权)人:南京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1