在线社交网络中识别虚假个人资料的动态CNN模型
2022-3-1 22:52:57 Author: www.freebuf.com(查看原文) 阅读量:5 收藏

在线社交网络 (OSN) 是用于共享各种数据(包括文本、照片和视频)的流行应用程序。 然而,假账户问题是当前 OSN 系统的障碍之一。 攻击者利用虚假帐户分发误导性信息,例如恶意软件、病毒或恶意 URL。 受计算机视觉深度学习的巨大成功的启发,本研究提出了 DeepProfile,一种深度神经网络 (DNN) 算法来处理虚假社交帐户问题,构建了一个动态 CNN 来训练一个虚假资料分类的学习模型。 本文提出了一种新的池化层来优化训练过程中的神经网络性能。 实验证明,在恶意帐户分类任务中获得了比普通学习算法更好的准确性和更小的损失的有希望的结果。

0x01 Introduction

在线社交网络 (OSN,Online Social Network )目前是日常生活中必不可少的元素。它已经成为一种流行的应用程序,用于连接地球各地的人们以共享各种数据,包括视频、照片和消息。然而,像假账户这样的异常问题成为 OSN 保护的一个重要问题。一些研究提出了以各种方式改善 OSN 保护的技术。例如虚拟通道模型等。

通常,每个设备都具有解锁和访问设备的安全机制,例如 PIN、密码和手势密码。不幸的是,传统模型将用户数据置于风险之中,因为在解锁或登录应用程序后没有额外的安全措施来检查用户的活动和表现。基于这些脆弱性,未经授权的人可能能够破解手机甚至可穿戴设备的简单密码或 PIN。

在互联网技术不断发展的时代,OSN用户数量急剧增加,网络数据正在发生海量变化。在 OSN 上的隐私问题上,许多研究者提出了多种匿名检测方法,但这些方法忽略了个体对隐私保护需求的一些差异。异常账户成为当前公共 OSN 面临的主要挑战之一。 OSN 上不断增长的用户提高了恶意活动的概率水平,对于拥有大量用户和动态环境的信息的 OSN 来说,这是巨大的挑战。

异常账户监控问题成为 OSN 提供商的心头之患,因为受感染的用户可以为目标用户传播虚假或欺骗性信息。大量 OSN 成为利用虚假账户进行女巫攻击(Sybil Attack)的主要目标。人类或机器人可以创建一个具有与个人资料相似的特征和特征的虚假帐户。例如,个人帐户和机器人帐户与名称或图片共享相同的身份。入侵者可以利用该缺陷来监视目标。例如, Telegram中入侵者可以重建用户发送或接收的数据日志。由于 OSN 的脆弱性,可疑节点可能构成女巫威胁。通常,异常问题由不同类型的威胁组成,例如对 OSN 提供商的纵向攻击或对 OSN 成员造成的横向攻击。从服务器的角度来看,虚假账户可以冒充 OSN 用户,并在他们的个人资料上发布误导性信息。主要挑战之一是如何识别大量不同内容(包括文本和多媒体)中的虚假个人资料。

链接推荐的缺陷技术使恶意节点能够欺骗、协作欺骗和恶意推荐其他节点以获得更多利益。由于缺乏有效的激励策略,很多节点既不评价也不推荐。目前的研究将机器学习方法作为一种预测OSN攻击的新方法。在异常分类的学习模型实现中,需要各种OSN属性作为用户的训练特征来训练学习模型。 OSN 属性是从连接到服务器的许多用户那里收集的。下图说明了 OSN 环境中用户之间的通信。

image-20220225224639829

通常,OSN 由一组有限的用户(节点)和关系(链接)组成。本实验通过提供节点 (n) 和节点的连接 (l) 来构建 OSN图。 OSN 中的许多节点由 N 表示,N = {n1,n2,n3…nf} ,以及由 L 表示的一组连接,L = {l1,l2,l3…lh}。参与者是人,小组、组织、计算机或其他信息知识处理实体。为了建立成员之间的互动,系统引入了社会关系或用户身份链接。用户个人资料包含许多个人详细信息,例如用户名、全名、电话号码等。隐私保护存在的缺点允许老练的攻击者操纵或破坏关键内容。他们可以利用社会工程技术和伪造的个人资料来窃取信息并操纵数据。虚假个人资料攻击危及企业或组织的声誉,并与异常和不必要的更新混淆。

0x02 Background

用户个人资料可以表示 OSN 环境中用户活动的历史信息,并用于捕捉普通用户的预期行为。为了收集用户资料,该实验侧重于在墙上发布的信息流。然后,收集其他有用的特征,如个人资料图片或社交活动(例如,连接朋友或关注者关系)。OSN 系统通常不提供历史数据更改。

本实验通过以下方式构建用户画像U:首先,调查从在线数据库语料库中获取用户流信息U。该流包括按层次顺序排列的 OSN 用户的数据流。以稍微不同的方式收集带有消息流的 OSN 数据集。该流描述了他/她的墙信息,它还包含发布在其他朋友墙上的用户消息。

在初始阶段从OSN 信息中收集数据,并使用这些信息来构建提取的特征。这些模型捕获了 OSN 用户的特征,例如用户名、电子邮件地址、消息流、位置或用于在用户之间交谈的母语。总而言之,该模型获取数据并提取几个特征,并使用学习模型训练这些特征。在最后阶段计算提取的特征,通过分析现有个人资料来确定帐户是假的还是良性的。

A.问题定义

在 OSN 中,个人或组织由一个节点表示。 OSN 由许多在 OSN 系统中进行通信的参与者组成。 OSN 社区具有节点和两个节点之间的关系,它们表示用于获取本地和全球网络层次结构的数据交换。 DeepProfile 有两个定义作为构建模型的以下特征。

定义1(社交网络):

OSN图的形式化表示为G=(N,L),参数N={n1,n2,n3…nn}, 即图中的节点(顶点),参数LL = {l1,l2,l3…ln} ,代表集合中的链接(边)。链接集 L⊂N × N 表示节点之间的关系。将顶点集表示为无向图。由于是无向网络,从节点 a 到 b 的边与从 b 到 a 的边之间没有区别。下表显示了图中的元素:

image-20220225224953278

在 OSN 架构中,研究可以采用具有以下特定组件的图:

(1) P 反映了图 G 的邻近矩阵。如果 (a, b) 是图 G 中的一个节点,则 P(a, b) = 1 或 P(a, b) = 0。

(2) Graph of Friend,即GF表示图 G 和节点 a ∈ G.N,代表包含所有直接连接的顶点的顶点。

(3) Total Friend,即TF(a, b) =|GF(a).N∪GF(b)N|表示a和b两个节点之间不同好友的数量。

通常,在分类问题中,一项研究构建了监督学习来处理恶意帐户检测。在这个过程中构造了一个训练区间([t0, t’0])和一个测试区间([t1, t‘1])。

定义 2(社交网络的属性):

公共OSN 采用无权无向图 G = (N, L)表示社交网络的拓扑结构。在本实验中将 Ai ∈ R^(NxN)表示为邻接矩阵。给定一个具有社交网络信息图 G 的网络。OSN 具有链接状态 Ai ∈ R^(NxN)和历史网络 G^h = {G^(t - N), ..., G^(t - 1)}。

OSN由几个属性组成,例如用户身份Pu和关系Ru。用户身份 Pu 是指真实的自然成员,是 OSN 中的个人帐户,由用户表示,包括用户名、年龄和其他属性组成。 Ru 代表用户在 OSN 中的社交关系,包括节点和边。 OSN 的显式属性定义为 P ,其中 P = {p1,p2,…pn} 是 OSN 系统中的用户身份集。该研究提供高级属性作为输入特征来训练模型分类器,如下所示:

(1)帐户身份

这些特征包括用户身份,其中包含用户名、活动帐户的全名。公共 OSN 通常向其成员提供常规 Web 和移动 Web,大多数用于移动平台的 OSN 应用程序运行在 iOS 和 Android OS 下。这些特征代表了用户资料的关键部分。全名和头像的兼容性表明每个帐户都可以归类为正常或可疑帐户。每当应用程序中的用户名或全名发生更改时,这可能表明入侵者已经破坏了帐户以提供对可疑应用程序的访问权限。

(2)关注者和朋友的数量

OSN 服务提供了通过发送直接消息接收方地址直接与其他用户交互的方式。 OSN 应用程序可能会统计某个圈子中有多少用户或朋友。有多种方法可以计算和监控它。例如,在Facebook上可以直接从个人资料中查看好友数量;在 Instagram 上,可以仅通过链接的朋友检查其他用户关注的关注者数量。特定用户每次都与其他用户建立个人交互。因此,链接用户之间的交互可以映射到一个模式中。它跟踪帐户以与熟悉的合法帐户进行交互。但是,异常的关注者会传播直接消息以引起收件人的注意。垃圾邮件发送者经常这样做是为了在引诱受害者之前测试公众的反应。

(3)时间互动

DeepProfile 模型捕获使用 OSN 服务的时间。一天中用户频繁活动的时间。在一天中,很多用户都有特定的时间段,他们更有可能发送消息或在墙上发帖,例如午休时间或安静时间段(睡眠时间)。通常,OSN 用户在休息时间(午餐时间或晚餐时间)至午夜之前在正常睡眠时间之前在 OSN 平台进行交互。在许多情况下,如果发现帐户流表明在睡眠时间有规律地使用,会将用户归类为安静时段活动并被视为可疑。

(4)地点

通常,OSN 用户与地理上或上下文上彼此靠近的其他用户交互。举个例子,Facebook 用户将与居住在同一个或附近城镇、就读于同一所大学或在同一组织工作的许多用户成为朋友。如果此用户突然帮助居住在另一个大陆的其他人并与之交流,则此用户可能是恶意的,将这些特征称为邻近概念。公共 OSN,例如 Facebook,通过将用户分组到网络中来定义这些特征。用户发送的消息所描述的邻近模型的映射。如果一个帐户将一条信息传递给同一系统中的某人,则该信息将被分组为本地信息。否则,当用户将消息发送给不同网络中的某人时,它被认为不是本地的。

(5)语言

在 OSN 中,用户可以自由地以任何语言传递消息。但是普通用户只会用一两个常用词写笔记。因此,此特征个人资料相对不可更改(稳定),用户语言的突然变化表明他们的活动发生了恶意更改。本文提供了一些名称、位置和样式不合适的特征,以确定所使用的语言。识别具有 140 个字符的短消息(例如 Twitter)通常难以描述语言。 Twitter 消息尤其成问题,主要是如果消息经常包含缩写词或不常用词。

(6)消息文本和爱好

通常,OSN 用户会发送大量带有普通信息的聊天消息。但假设许多用户经常谈论几个话题,例如运动队、喜爱的音乐或在线节目。用户发布消息的正常活动通常集中在一些喜欢的主题上。如果他们突然发送几个不同且不相关的事情,这个新帖子应该被标记为可疑。通常,从几个没有上下文的文本片段映射讨论主题是很复杂的。然而,今天的 OSN 应用程序使用户能够明确标记问题以及他们的消息正在谈论什么。

(7)网址信息

当用户在 OSN 墙上发布消息时,它包含用于访问额外资源的链接,例如博客、图片、视频或包含链接的新闻。之前的工作已经探索了 URL 分析,以确定用户消息是否可疑。在本研究中,DeepProfile 提供 URL 链接作为用户个人资料特征的一部分。但是,该研究侧重于捕获用户的常规活动,该模型并未尝试查找 URL 本身是否是恶意的。但是,该模型假设链接是否与特定用户的期望不同。利用 URL 链接中的域名来模拟发布消息中链接的使用。提取 URL 链接的复杂技术(自然语言处理)是合理的。然而,这样的研究超出了这项工作的范围。

(8)个人资料图片

捕获用户的个人资料图像是一种确认帐户是否正常或被盗用的技术。 例如,女性帐户的正常活动通过以任何样式显示她的照片来显示用户个人资料图像。 个人资料图像突然更改为男性照片,或其他不相关的项目应被评为可疑。 该模型获取个人资料图像作为特征来学习用户的典型行为,如果恶意用户与学习的用户个人资料不匹配,则将其标记为可能的妥协。

0x03 Model

A. 学习模式

多样化的研究提出了不同的方法,包括基于规则的、统计的和传统的机器学习算法。本研究没有使用标准模型,而是专注于监督学习来构建一个用于虚假个人资料检测的新模型。监督学习更适合分类任务,例如假个人资料问题。假设虚假账户不像机器人那样典型。因此,使用无监督学习模型进行适当分类的可能性较小。

建立监督学习来训练标记特征作为输入矩阵来预测结果。这些特征描述了有关某些 OSN 帐户的信息,例如姓名、性别、朋友数量、链接数量等。大多数情况下,深度学习算法获得称为工程特征的特征。通常,特征是工程元素和属性的组合。在 OSN 研究中将工程特征分为三个不同的类别:帐户的身份、彼此之间的关系以及帐户的行为。该研究利用几组特征的组合作为数据集。

选择深度学习作为模型的一个原因是一组高度非线性函数的自动表示。它可以是一种跨不同应用程序进行自动特征学习的方法,包括图像分类、语言建模和信息检索。此外,它是一种通用模型,可以减少适应新应用程序的麻烦,并且它们可以很好地泛化到看不见的数据。

B. CNN架构

CNN主要由三层组成,有输入层、隐藏层和输出层。 普通的 CNN 利用输入层将文本提取投影为矩阵输入。在输入层,网络层将特征提取投影为矩阵输入。为了计算特征提取结果,采用了权重共享的卷积层处理。卷积在滤波器和输入矩阵之间进行处理,以将一组滤波器形式 k ∈ R^(d × m)与输入矩阵 M ∈ R^(d × |s|)进行卷积。卷积层的目标是计算特征提取。通常,CNN 实现权重共享以减少网络中的参数数量。因此不需要优化许多参数,因为该方法可以更快地构建收敛。此外利用窗口过滤之间的宽卷积来估计每一层中的最佳局部特征。

另一方面,卷积可以处理多个输入特征图以产生增加层的堆叠特征图。在卷积运算中,用 xi 定义了第 i 层的特征图,有j个参数表示第i层中特征映射的索引:

image-20220225230457580

该模型不仅进行卷积操作,还收集隐藏单元中信息量最大的值。通常,一个普通的 CNN 会在数十层上重复该操作。在此过程中,它应用每一层学习来检测 CNN 网络的不同方面 。在最后一层,构建了一个全连接(FC,Fully Connected)层来计算向量 K(类数)维度的输出。在最后阶段提供了一个 SoftMax 函数来减少全连接层中的噪声信号,然后再产生神经网络的准确性和损失。通过以下函数计算分类器:

image-20220225230657911

上述函数具有类概率 p ∈ [0, 1]^n 和∑pi = 1。SoftMax 的输出表示为 logits。然而,当类数 n 很大时,使用完整的 SoftMax 进行学习是昂贵的。因此,SoftMax 的观察正在成为提高全连接层分类器性能的研究领域。

C. 动态CNN

在本文中通过引入 WalkPool 提出了一种动态 CNN,WalkPool 是隐藏层中的一种新颖的池化层,用于在分类任务中训练 NN。它是神经网络中的一种随机池化范式,它利用网络参数来获得池化值。原则上,池化通过执行非线性计算和减少参数数量来简化输出特征。就是得到一个合适的中间层的特征图宽度。通过计算一个 k-max 池化函数来建立 WalkPool 池化,以获取与网络方面相对应的池化参数 k。下图描述了 DeepProfile CNN 隐藏层的计算过程。

image-20220225230836050

构造函数以允许平滑提取更高阶并适应更长范围的元素。该模型通过利用池化参数 k 在隐藏层采用 k 值,k 是一个动态值,可以提取更高阶和更长的特征。所提出的 CNN 的基本操作是在一次迭代中同时运行的后向和前向传播。动态 CNN 使用以下函数计算前向传递:

image-20220225230915867

在上面的公式中,第一个网络计算特征映射作为动态 CNN 的输入层。动态 CNN 使用以下公式计算后向传播:

image-20220225230958545

在反向传递过程中,该层将计算 l(损失函数)相对于 xni 的梯度。由偏导函数 ∂l/(∂(x,ni) 计算得到的梯度值,并传递给网络的第一层。然后计算损失函数相对于k(n,ij)的梯度。

为了获得损失函数,CNN 从第一层到最后一层遍历所有神经元。 CNN的后向传播是指使用梯度下降计算损失函数相对于网络参数(权重和偏差)的梯度的误差的反向传播。为了获得最小的损失函数,需要使用梯度下降技术来更新学习参数。在本文中采用了交叉熵(CE,Cross-Entropy)损失函数,它主要是分类问题的损失函数,通过计算:

image-20220225231139017

在上述函数上,y‘i 是目标标签,yi 是分类器的输出。使用 CE 函数来获得概率分布输出,它是 SoftMax 的首选损失函数。

在本文中构建了 CNN 架构,通过前向和后向操作将属性计算为输入特征。该研究的重点是如何建立一个池化层来优化神经网络。因此,采用 k-max 池化概念来构建函数。基本上,在常见的 k-max 池化概念中,它需要一个值 k 和一个长度为 p ≥ k 的序列 p ∈ R^p。然后,在 p 序列中,k-max pooling 选择 p 的 k 个最高值的子序列p(k,max)。 p(k,max)中的值顺序是指它们在 p 中的原始顺序。因此,可以将 p 中可能相隔多个位置的 k 个最活跃的特征池化。然而,由于 k 的值是静态的(固定的),因此平滑提取高阶和长距离特征具有挑战性。

为了优化训练过程中的 CNN 性能,使用动态 k max pooling 概念来构建 CNN。本文设计了 WalkPool 池,而不是使用常见的 Max-pooling 来获得过滤器中最重要的值,这是一种动态池化操作,可以在每个池化层中获得最合适的值。 WalkPool 的主要思想是利用动态 k-max 池在神经网络中提取合适的特征图。池化参数 k 可以通过使 k 成为网络其他方面的函数来动态选择。它从池化窗口中检索 k 个最大值。下图说明了带有 WalkPool 池化特征的 CNN。

image-20220225231313663

上图描绘了具有建议池化的 CNN 架构。它由三层组成,包括输入层、隐藏层和输出层。在输入层中,模型将所有特征转换为向量值,然后再将其输入模型。隐藏层使用滤波器运行卷积过程,输入矩阵使用一组滤波器形式 k ∈ R^(d × m)将卷积输入矩阵 M ∈ R^(d × |s|)。卷积层旨在在整个训练过程中计算特征提取。卷积层运行输入数据的特征提取以在隐藏层中捕获更好的表示。

WalkPool 函数:假设 k 是网络输入矩阵长度的函数,l 是隐藏层中的一些当前卷积。为了构造函数,需要 L 作为卷积层的总数,ktop 是最顶层卷积层的固定最大池化参数,Sp 作为填充数。下表描述了 WalkPool 的数学符号。

image-20220225231425250

CNN 模型使用以下方法计算输入数据中的池化:

image-20220225231456562

本研究构造了一个函数,通过使用更多具有动态值的层参数来获得适当的 K-Max pooling 值。在前向传播中,N × N 池化部分将产生单个“winning unit”值。为了获得每一层的值,构造了一个新的函数,而不是从 l 层中选择最大值。因此通过计算简单的池化函数来获得“dynamic winning out”,以获得层 lkl 的 k 值。为了获得 kl 值,使用以下函数计算 kmap:

image-20220225231615321

WalkPool 函数通过比较每个池化层中的 ktop 和 kmap 之间的分数来获得池化值 kl。 ktop 的值是常数,kmap 的值由网络参数计算确定。该函数的基本思想是如何计算网络元素以确定k的值以找到合适的k最大值。该模型在每个窗口中使用宽卷积,以确保所有权重都得到整个参数动作。

WalkPool 通过动态改变池化层的值来运行,以获得 CNN 隐藏层中信息量最大的特征图。它不是在网络中使用线性值,而是根据动态参数计算输入矩阵的长度。它是使用确定的层数重新计算图形并学习特征顺序的 CNN 层次结构。为了计算 kmap 值,该函数获取由第 l 层表示的当前卷积,L 是卷积层的总数,ktop 是最顶层卷积层的固定最大池化参数。为了获得池化值,使用如下算法计算 WalkPool 函数。

image-20220225231642577

算法描述了如何计算网络参数以实现最优池化值。 WalkPool 尝试根据当前的 CNN 参数找到合适的 k-max 值。它利用参数 k 来获得最优的 k-max 池化值。在动态视图中,模型可以动态选择池化参数 k。 k 函数是从网络的输入方面获得的。该函数通过将向量的长度变为相同长度来计算池化窗口。该模型激活卷积之间和全连接层(FC,Fully Connected)之前的特征。

WalkPool 的主要思想是通过提供尊重网络参数的动态 k-max pooling 来修改常见的 K-Max pooling 操作。构造 WalkPool 函数来计算隐藏层参数以获得合适的池化值并获得合适的特征图。在函数中,池化参数 k 可以通过使 k 成为网络其他方面的函数来动态选择,以从池化窗口中检索 k 值。该模型在全连接层之前在隐藏层之间提供池化特征。

0x04 Experimental Setup

A. 数据集

本研究收集并提取了许多个人资料特征来构建基准数据集。该样本包含身份、全名、朋友数量、关注者数量、时间、语言、链接或 URL、消息样本和个人资料图像。在训练过程之前,将数据集分为训练和测试数据集。为了在训练和测试过程中取得良好的效果,本文提供了一个大型 OSN 作为数据集,其中包含带有良性和虚假目标的标记数据。通过使用 OSN 属性作为模型的输入,将用户个人资料的向量数据输入到学习模型中。

image-20220225231800065

在这项研究中收集了具有 3000 多个唯一用户的样本 OSN 个人资料作为数据集。通过分解许多个人资料信息来构建数据集。为了进行实验,本文观察了由三千个 OSN 成员组成的用户特征。本文提供了 1500 个带有正常标签的数据和 1500 个虚假的个人资料标签。为了达到最好的准确性和最小的损失,将数据彼此分开。在本实验中,该模型通过调整 CNN 的超参数来训练学习模型以获得最佳结果。通过训练显式 OSN 特征,可以在稀疏数据上训练学习模型。上表显示了实验的数据集信息。基准数据集提供了代表 OSN 环境中交互的基本特征。下表显示了用于训练和测试 DeepProfile 分类器的高配置信息。

image-20220225231819536

B. 数据预处理

为了进行预处理,该模型根据用户生成的文本获得多个 OSN 特征,包括身份号码、全名、朋友数量、关注者数量、语言、位置、消息主题、URL 链接、个人资料和背景图片。这些特征表示集群用户个人资料中模式的频率。数据预处理将所有输入样本转换为数值数组。然后,它将数组输入神经网络以进行训练和测试过程。在学习过程中,计算 OSN 上由显式和隐式特征组成的特征很重要。显式特征是在不同研究中广泛利用的原始用户元数据,例如信息可信度分类和用户身份链接。个人资料中不直接提供隐式特征。它们通常有助于代表特定任务的用户个人资料。包括年龄、性别或个性的特征是标准的隐式身份特征。在这项研究中收集显式特征并将它们提供给模型,以训练分类器模型进行恶意账户分类。

在这个阶段,创建数据标签来区分虚假和虚假的个人资料。在将特征输入学习模型之前,需要将所有特定特征转换为一组数值向量。模型在将特征转换为字节表示值后计算输入向量。特征提取过程对于支持学习问题中训练数据的质量具有重要意义。将数据集分为两部分,以确保模型在未见数据的训练和测试过程中的性能。为了允许训练计算,将数据集提供为二维数据网格中的表格。表格行对应于单个元素,列反映这些部分的数量。将行数称为 n_samples,将列数称为 n_features。实验介绍了特征矩阵和目标数组。特征矩阵(参数 x)以 [n_samples, n_features] 形式表示二维数值数组或矩阵。这项工作还利用一维目标数组(参数 y)。在馈送到分类器之前,特征和目标应该是数值数组。

为了训练模型,本文构建了一个分类器来计算 OSN 特征并调整隐藏层中的超参数以优化网络参数以提高 NN 性能。它是有效地处理原始数据的高维。该研究还提供了评估指标来估计 CNN 对数据集外的泛化程度。由于速度和简单性,采用它来评估 DeepProfile 模型在样本上的性能。

C. 避免过拟合

神经网络的计算图非常复杂, ML 算法的主要问题是优化和泛化之间的张力。在训练过程中,优化是调整模型以获得最佳性能的过程。泛化反映了经过训练的模型在未见过的数据上处理训练过程中过度拟合的能力。在 CNN 模型中,过拟合和欠拟合都会导致 DL 模型的性能下降。欠拟合是模型在训练数据上产生较差的性能并且对其他数据的泛化较差的情况。然而,DL 训练过程中最常见的问题是过拟合。过拟合在训练数据上产生了良好的性能,但它对其他数据的泛化能力很差。

这种网络的复杂性和训练数据的限制导致 NN 更容易过度拟合。因此,它需要一种对学习算法进行轻微修改的机制。为了允许网络适应数据,实现了正则化。它有助于在训练神经网络时避免过度拟合。隐藏单元的作用是从数据集中有效地逼近一个函数,可以推广到未见数据。该算法需要对复杂节点的权重矩阵进行惩罚。

image-20220225232125074

在这项研究中应用正则化器(regulizer)方法在社交网络数据集中获得有效的训练。正则化器的主要思想是将给定层中的几个权重随机归零。通过使用正则化器,隐藏层中节点的权重对其他节点的权重变得更加不敏感,并学会独立于其他神经元来决定结果。正则化随机关闭一些隐藏单元,因此隐藏单元不需要学习训练集中实例的每个不必要的细节。该操作对每个隐藏元素使用删除特征。用于生成细化网络结构的过程。上表描述了正则化器的数学符号。在函数上,考虑一个网络有 L 个隐藏层。在标准前馈中,对于 l ∈ {0, , L − 0},计算:

image-20220225232140649

正则化器为输入 x 和伯努利概率 p 等参数计算 ytrain 训练过程。在前馈操作中,使用以下公式实现具有伯努利概率的正则化器:

image-20220225232201763

为了计算下一层,正则化器使用细化的输出 y(i, (l+1))作为新的输入。该过程应用于隐藏层中的每一层。这个数量是从一个更大的网络构建到一个子网络采样的。在训练时,它通过子网络反向传播损失函数的导数。在测试时,权重乘以 p 并将权重缩放为 W(l) test = pW(l),因此单位始终存在。

D. 分类过程

将监督学习模型构建为二进制分类,以在恶意或正常个人资料之间进行分类。在输入输入矩阵之前,应该将数组转换为二进制张量以在网络上建立自适应。在最初的步骤中,所提出的 CNN 采用一组输入数据并将其交叉到隐藏层。在初始阶段,该网络接收 OSN 特征作为输入矩阵。

为了产生输出,网络运行卷积、池化操作和全连接层计算。卷积层的目标是通过在输入数据上滑动一个过滤器(较小的矩阵)来获取数字特征。然而,卷积过程会生成大数组。为了简化数组,通过实现一个新的池化函数来最大化池化操作。使用池化来减少特征图,并通过利用下采样技术来保留信息量最大的元素,以避免在 CNN 中过度拟合。

在隐藏层中,通过提供几个隐藏层来训练模型,以测量激活层的深度 CNN 性能。在本文中调整了自动权重共享特征以减少参数数量并提高网络的泛化能力。神经元的共享权重是一种通过降低网络复杂度的自由度来避免过拟合的方法。该方法可以更快地构建收敛,因此不需要对神经网络中的许多参数进行优化。

在池化层,将提出的池化函数作为 CNN 上的池化函数进行测试。所提出的带有 WalkPool pooling 的 CNN 利用通用函数来优化分类任务中的网络性能。它类似于自适应最大池化概念,其中 k 最大池化参数的值可以是动态的。通过选择和计算网络参数,通过比较标量 k 得到合适的池化值。

0x05 Results

A. 分类测试

为了对用户个人资料类别进行分类,使用不同的学习参数测试了 DeepProfile 模型。在训练中检查了一些著名的优化器,包括带有动量的随机梯度下降 (SGD)、Adam、Adagrad 和 RMSprop。在关键部分训练网络时计算损失梯度,以衡量训练和测试阶段之间的效率结果。还实现了局部变量的概念来计算损失函数。计算不同学习率下权重的损失梯度。

image-20220225232419914

在这个实验中实现了精度和执行时间之间的权衡。使用不同的超参数测试梯度下降和调整优化算法。为超参数选择一个值是提高网络训练质量的最重要部分之一。通过优化超参数,获得了网络的最高性能。在训练和测试过程中,调整 epoch = 15 和 batch size = 50。上表描述了 DeepProfile CNN 在计算验证准确度和损失方面的性能。用几个具有不同隐藏层数量的优化器来训练提出的 CNN,通过优化梯度下降来最小化目标函数 j(θ) 和模型的参数 θ ∈ R^d。模型以与目标函数 ∇θj(θ) 的梯度相反的方向更新设置。该研究设置学习率 η 以确定步幅大小以达到(局部)最小最大值。在训练和测试过程中,在用SGD+动量训练模型时获得了最好的精度和小的损失。下图用 SGD 优化器训练时所提出的 CNN 的准确性和损失。

image-20220225232540965

通过使用两个卷积层和两个完全连接的隐藏层,获得了 DeepProfile CNN 中的最佳架构。通过使用动量 m = 0.9 的 SGD 梯度下降在神经网络中实现了最佳结果。在卷积层,结合 ReLU 和 Sigmoid 作为激活函数。值得注意的是,发现 WalkPool 池中 Ktop 值的变化可以提高分类器的准确性。结果表明,具有较小 Ktop 值的动量的 SGD 产生最有效的结果。通过计算每一层的网络元素,WalkPool 函数可以优化神经网络的性能,因为该函数会根据 CNN 上的一些参数在每一层中选择一个合适的池化值。因此,它比传统的机器学习算法产生了相对较高的准确性。值得注意的是,发现更多具有大量神经元的层并不能提高预测能力。由于神经元数量的限制,它可以扩大计算资源。本研究计算 OSN 特征作为数据集来测试动态 CNN 的有用性。通过模拟证明,实现了准确性和损失的权衡。DeepProfile 网络可以通过多样化的输入向量获得准确的结果。实验结果表明,分类准确率可以达到很高的准确率,损失很小。值得注意的是,该模型不仅产生了高效率,而且图形也以更好的性能运行。

B. 比较测试

在这一部分中提供了在相同的超参数调优和环境下 WalkPool Pooling、Max pooling 和 Average pooling 的比较结果。结合池化函数计算 NN 的准确度,以说明每个池化在分类任务中的性能。下表显示了在输入 2400 个训练样本和 620 个验证样本时不同池化函数的比较结果。

image-20220225232521817

在第一个实验中,该研究在没有池化层的情况下训练 CNN 模型,这意味着 CNN 通过卷积与 stride 替换池化层。然而,没有池化的 CNN 无法在几个 epoch 中产生良好的准确性。在这种情况下,CNN 需要池化层来减少输出特征的维度并呈现一定程度的不变性。根据训练结果,带有池化层的 CNN 比没有池化层要好。为了确保 WalkPool pooling、Max Pooling 和 Average Pooling 之间的性能,将池化层添加到 CNN 中。众所周知,最大池化和平均池化是确定性池化类型,它们根据池化窗口的最大和平均得分来获取池化值。没有使用普通的确定性池,而是将 WalkPool 测试为随机池,以在分类任务中训练 CNN 模型。实验表明,所提出的带有 WalkPool Pooling 的 CNN 可以实现对虚假账户分类的有希望的准确性。然而,当训练超过 13 次迭代时,该实验的准确性会降低。可以通过提供更多数据集来训练模型来解决。

C. 评估指标

image-20220225232631204

该实验通过使用交叉验证提供了对性能模型的评估。它用于测量灵敏度、特异性和准确率。模型的评估计算假阳性率 (FP)、真阳性 (TP)、真阴性 (TN) 和假阴性 (FN)。该研究进行了性能评估以评估 DeepProfile 的性能。该实验通过使用交叉验证来计算召回率、精度、F1 分数、ROC 和混淆矩阵来评估性能模型。上表显示了几种算法的召回率、精度和 F1 分数。使用以下函数计算指标:

image-20220225232647204

该实验还绘制了 ROC 和 AUC,以估计各种阈值的敏感性和特异性,而无需真正改变阈值。 DeepProfile 在分类器中采用二进制分类。它需要将输出转换为二进制值以扩展 ROC 曲线。它对于分类上下文很有用。它是随着标准的变化(TPR 和 FPR)的相对运行特性曲线。 ROC 绘制了二元分类的性能。在曲线中,数量为 0.5 的区域反映了模型与随机性一样好。下图描述了一些监督学习算法和 DeepProfile 在二元分类任务中的 ROC 比较。

image-20220225232802707

实验得出 AUC = 0.9547,这意味着该区域的值在度量评估中是有价值的。 AUC 通过测量基于两个类的分离的排名来运行,这反映了模型区分正类和负类的能力。如上所示,DeepProfile 实现了良好的水平预测,因为它产生的 AUC = 0.9547 并且优于其他传统的学习方法。

为了总结 OSN 保护策略中提出的学习技术,所提出的方案可以成为在庞大数据集中进行帐户分析的前瞻性选择。这种方法的另一个好处是降低了恶意账户分析的研发成本。本研究发现所提出的模型不仅可以实现有效的结果,而且神经网络可以执行更好的精度。在实际案例中,CNN 是处理 OSN 恶意活动问题的一种前瞻性选择。

0x06 Conclusion

为了处理账户异常问题,以往方法提出了具有手工特征工程的统计技术和学习算法。然而,特征工程和计算资源是昂贵的。本文没有使用普通学习,而是提出了 DeepProfile,这是一种具有新型 CNN 的模型,具有通用池化特征来处理虚假的个人资料分类。该方法通过使用 WalkPool 池化层来优化 CNN 计算并提高准确性,从而建立动态 CNN 架构。

参考链接:https://www.sciencedirect.com/science/article/pii/S2214212619303801


文章来源: https://www.freebuf.com/articles/database/323618.html
如有侵权请联系:admin#unsafe.sh