system: [SYSTEM]

user: 5. 实验和结果分析 为了验证本文提出的ML-ELM-NeuralWalk在信任评估中的优越表现，对算法的准确性和速度进行了一系列实验，并与现有的最先进的信任评估算法NeuralWalk [ 11 ]、OpinionWalk [ 8 ]、MoleTrust [ 5 ] 和TidalTrust [ 4 ] 进行了比较。 5.1. 数据集 本文采用了两种常用的信任评估真实数据集Advogato [ 13 ] 和Pretty Good Privacy (PGP) [ 14 ]。数据集Advogato是从一个在线软件开发社区收集的，其中一个用户对另一个用户的信任程度代表了用户对另一个用户的软件开发实力的态度，用户之间的信任程度分为四个级别。数据集PGP来自公钥认证网络。在该数据集中，一个用户对另一个用户的信任程度表示该用户认证了另一个用户的可信度，用户之间的信任程度也被划分为四个级别。表1汇总了两个数据集的统计数据。 Table 1 Statistical overview of Advogato and PGP dataset 数据集 边的数量 节点的数量 Advogato 51372 5420 PGP 100000 26812 表1. Advogato和PGP数据集的统计汇总 5.2. 实验设置 ML-ELM-NeuralWalk的超参数包括：3.1节中神经网络输入数据xij的维度d、神经网络的隐藏层的数量f以及每个隐藏层节点的个数L p 和激活函数g p (•)，4.2节中算法的最大迭代次数Q。 当算法的迭代次数大于等于1时，为了使形成的训练集更准确，将G (0) 中的用户i到用户j之间的二跳信任路径作为构成xij的优先选择。因为Advogato和PGP中两个节点间的二跳信任路径的条数大多数小于32因此，设d = 64。在进行信任计算时，如果G (0) 中用户i到用户j之间的二跳信任路径的条数小于32，则随机选择计算出的间接信任组成的路径作为构成xij的补充，如果此时xij的维数仍然小于64，则剩余位置填充为零。如果G (0) 中用户i到用户j之间的二跳信任路径的条数大于32，则随机选择32条信任路径来组成xij。设置每个隐藏层节点的个数相同，即L p = L p +1 ，每个隐藏层激活函数g p (•)都选择ReLU(x) = max(0， x)。 从图4中可以发现，在Advogato数据集中，当神经网络的隐藏层的数量f = 2时，ML-ELM-NeuralWalk的F1得分最高，因此设f = 2。在隐藏层的数量f = 2时，当隐藏层节点的个数L p 的大小从100增长到1800时，ML-ELM-NeuralWalk算法的F1分数在逐步提升，当L p ≥ 1800时，ML-ELM-NeuralWalk算法的F1得分没有明显的变化，且随着隐藏层节点数目的增加，算法的速度逐渐下降，在综合考虑算法的准确性和算法的速度之后，设Advogato数据集中的L p = 1800。 从图5中可以看出，在PGP数据集中，当神经网络的隐藏层的数量f = 2时，ML-ELM-NeuralWalk的F1得分最高，因此设f = 2。在隐藏层的数量f = 2时，当隐藏层节点的个数L p 从50增长到800时，ML-ELM-NeuralWalk的F1得分有较大提升，当L p ≥ 800时，EW的F1分数趋于稳定，在同样的综合考虑算法的准确性和算法的速度之后，设PGP数据集中的L p = 800。根据六度分离理论，设EW算法的最大搜索深度为6，又因为当ML-ELM-NeuralWalk算法的迭代次数为3时算法的最大搜索深度为6，因此设Q = 3。 对于ML-ELM-NeuralWalk算法，训练集分为两部分：一个用于训练，另一个用于验证。训练数据和验证数据的比例分别为80%和20%。整个ML-ELM-NeuralWalk算法是使用python 3.6实现的。 实验的计算机采用英特尔酷睿i7-8750H、2.20 GHz CPU、8 G内存和128 G SSD硬盘。 5.3. 准确性 使用机器学习算法中评价准确性常用的指标——F1分数、平均绝对误差(Mean absolute error， MAE)来作为本文评价信任计算准确性的指标。由于Advogato和PGP数据集中的信任值r ij 是用1，2，3，4四个序数表示的，而TidalTrust、MoleTrust和OpinionWalk算法需要信任值的范围在0到1之间，因此将Advogato和PGP数据集中的信任表示方式进行转换，如表2所示。TidalTrust、MoleTrust和OpinionWalk算法计算的是连续信任值，而ML-ELM-NeuralWalk和NeuralWalk算法计算的是分类信任值，为了方便进行比较，TidalTrust、MoleTrust和OpinionWalk算法计算出来信任值后，再计算与分类信任值的距离，选择距离最近的分类信任值作为其分类信任值。 图4. ML-ELM-NeuralWalk算法在Advogato上的信任计算准确性 图5. ML-ELM-NeuralWalk算法在PGP上的信任计算准确性 Table 2 Transformation of the representation of trust values in a datase 数据集 信任评级 分类信任值 Advogato/PGP 1 0.1 2 0.4 3 0.7 4 0.9 表2. 数据集中信任值表示方式的转换 在Advogato数据集中，对TidalTrust、MoleTrust、OpinionWalk、NeuralWalk和ML-ELM-NeuralWalk算法的信任计算准确性进行了比较。从图6中可以发现，ML-ELM-NeuralWalk有最高的的F1得分和最低的MAE，体现了ML-ELM-NeuralWalk算法在信任计算准确性方面的优越性。 图6. 不同算法在Advogato上信任计算的准确性 为了验证ML-ELM-NeuralWalk算法在信任计算准确性方面的优越表现不依赖于数据集，使用PGP数据集分别对ML-ELM-NeuralWalk、NeuralWalk、OpinionWalk、MoleTrust和TidalTrust算法的信任计算准确性进行评估。ML-ELM-NeuralWalk的F1得分最高为0.902，比第二优的算法NeuralWalk的F1分数0.866高出0.036，MoleTrust的F1分数最低为0.607。通过观察图7(b)可以发现ML-ELM-NeuralWalk算法在MAE上的表现仍然最好为0.063，NeuralWalk算法的MAE为0.077，MoleTrust算法的MAE最高为0.209。 图7. 不同算法在PGP上信任计算的准确性 以上比较结果表明，在Advogato和PGP数据集中，基于归纳的信任评估方法在信任计算准确性方面优于基于推断的信任评估方法，且ML-ELM-NeuralWalk算法在信任计算的准确性方面则明显优于现有的信任计算方法。主要原因是基于机器学习的归纳信任评估方法可以实现更准确的信任计算且ML-ELM-NeuralWalk算法在信任计算准确性方面继承了ML-ELM对于分类问题有较高准确性的特性。 5.4. 速度 在TSN中，由于存在大量的用户，这就使得用户之间的信任关系变得非常的庞大，所以信任计算的算法必须具有高效性。由于神经网络的训练过程是比较耗时的，而ML-ELM-NeuralWalk和NeuralWalk算法都需要进行训练，因此观察这两种算法进行训练时的速度。在Advogato数据集中，ML-ELM-NeuralWalk和NeuralWalk的训练时间分别为32716.4 s和114921.6 s。在PGP数据集中，ML-ELM-NeuralWalk和NeuralWalk的训练时间分别为36617.1s和197632.4 s。从以上实验可以得出结论，在Advogato和PGP数据集中，ML-ELM-NeuralWalk的训练速度都比NeuralWalk的训练速度快得多。