基于SOM的用户参与设计方案聚类算法研究
2020-08-12李昂谈莉斌余晓流
李昂,谈莉斌,2,余晓流
(1. 安徽工业大学 机械工程学院,安徽 马鞍山 243002; 2. 南京航空航天大学 机电学院, 江苏 南京 210016)
0 引言
随着互联网技术的进步和社会信息化的发展,客户需求逐渐变得个性化、多样化。客户不仅仅作为一名消费者,如有兴趣还可以成为一名产品设计的参与者[1-2]。积极的用户会用业余时间,在互联网平台上表达对产品的需求期望。用户作为非专业的设计人员,无序地、自由地参与设计,表达出的都是一些模糊的、碎片化的信息,而这些模糊的、碎片化的产品设计方案,无法直接映射到产品模型当中。
近年来,学者们提出了很多设计方法,致力于将客户需求聚类分析映射到产品模型当中。如杨沁等[3]提出了基于模糊集的递阶型和等价型客户需求聚类算法,增强了处理用户需求信息的能力;姚海等[4]提出了基于Kano模型和模糊聚类理论,对散乱的需求特征进行合并归类;尹辉勇等[5]根据用户表达产品知识需求信息复杂性和模糊性的特点,定义需求信息转化的原则及方法,并运用了矩阵、向量等数学知识,有效地建立了需求信息的识别、筛选和转化模型;JIAO J等[6]提出了用关联规则挖掘数据,通过分析客户需求信息与基于模糊聚类功能化产品的关系,来进行产品设计;杨德清等[7]在面向在线产品社区,利用K-means聚类算法建立了动态用户需求Kano模型;在3D打印应用服务中,彭育辉等[8]在互联网环境下,提出基于STL模型的异地实时协同环境系统,来解决异地分布的客户需求的沟通与交流。上述文献中,分别对于用户需求聚类分析和产品开发模式都作出了探索,并且有一定的指导意义。
对于互联网上用户参与式设计,随着用户之间的交互,设计方案会迭代收敛[9],但人工交互的周期有时较长。因此,针对以上分析,本文提出基于大规模用户参与设计的碎片化信息,考虑用户交互行为,介绍了智能聚类算法,用计算机辅助的方法来模拟实际产品方案的演化过程,缩短开发周期,最后通过仿真实验验证了该方法的可行性。
1 参与式设计的模拟算法提出
1.1 用户参与式设计特征简述
用户参与式设计,区别于传统的协作创新设计的自上而下进行决策的形式,是一种用户出于自己的兴趣与需求,自发组织、无明确设计任务的形式。由于移动互联网的便利性,用户可以无序地参与到产品方案设计当中,自由地表达设计需求。从整体来看,由于用户的非专业性,他们的产品设计方案呈现出碎片化的、不完整的特点。随着信息通信系统的发展,尤其是网络应用的发展,人们对互联网中大量信息的自由访问也日益增多[10]。这不仅使参与设计的用户规模变大,同样会带来用户间的交互行为,使产品的设计方案处于一个动态演化的过程。
在开放式设计中,用户规模和设计过程互动环境的变化,不影响产品设计方案逐渐趋同的趋势,即用户关于产品的设计方案是逐渐收敛的[9-11]。这些收敛后得到的产品设计知识,是相对完整的、理性的,可以直接映射到产品模型中。虽然经用户交互后的产品设计信息会逐步完整且收敛,但有时人工交互迭代周期会比较长,继而会影响到产品的设计周期。
1.2 SOM网络模型的基本原理
自组织映射(self-organizing map,SOM)神经网络,它是由TEUVO Kohonen教授提出的、较为广泛的应用于聚类的无监督学习算法[12]。SOM神经网络是由输入层和输出层(也称竞争层)组成的双层网络,其网络结构图如图1所示。输入层有n个神经元,竞争层由m个神经元组成的一维或二维平面阵列(图中为二维)。
图1 SOM网络结构
SOM网络模型主要功能是将输入的高维空间数据映射到一个低维(一般是一维或二维)输出中,同时还会保留原有数据集的拓扑关系。SOM神经网络通过对输入模式的反复学习,可以调整权值向量,使之与输入模式的概率分布趋于一致,即概率保持行[13]。这种特性在分类聚类中能反映样本集的本质区别,大幅度减弱了一致性准则中的人为因素[14]。
1.3 用户参与式设计特性与SOM神经网络特性
本文根据用户参与式设计和SOM神经网络的特性,做出了比较。如表 1所示,从组织参与来看,用户参与式设计是自发组织、无明确设计任务的。用户表达出的设计方案是碎片化的、不完整的。SOM神经网络算法,是一个无监督的自组织学习过程,能处理不完整的信息[15],输入向量可随机选取。而在SOM算法中,会有网络权值向量的调整过程,即合作过程和自适应过程[16],以此来体现用户间的交互行为和交互过程中整体设计方案的动态变化等。
从开放式设计过程来看,随着用户交互迭代,设计方案动态演化并逐渐收敛,得到相对完整的、理性的产品设计方案。在SOM神经网络中,随着训练的进行,权值的逐渐调整,输出层的网络不断变化到最后收敛的一个过程。SOM算法的概率保持性,对用户设计方案作为输入向量,能不失真地映射出用户的总体需求,也是可行的。
通过以上分析,本文认为可以使用计算机辅助方式,利用SOM神经网络算法,来模拟实际的参与式设计中用户交互收敛过程,从而更快地得出产品设计方案。
表1 用户参与式设计与SOM神经网络特性比较
2 基于SOM网络的用户产品设计方案聚类
基于SOM网络的用户参与式设计的产品方案聚类算法,以计算机对产品特征需求数字化处理后整理成矩阵形式为基础,然后取每个用户对应的功能向量为输入向量。例如,用P1=(s11,s12,…,s1b)表示用户1对某产品的b种功能设计方案,则a个用户构成的设计方案阵可用矩阵表示为:
(1)
每行表示同一用户对不同功能的设计方案,每一列表示对同一功能所有参与用户的设计方案。这种矩阵形式下,每个行向量表示每个用户对应的功能向量,作为SOM网络的输入向量。为了方便计算,分别对每种功能下(即每列)的数据进行归一化处理,公式如下:
(2)
应用SOM网络模型时,首先需要定义基本参数有:网格的行和列(即输出层的结构)、邻域半径、迭代次数以及增益函数(学习率)。训练神经元时,按照(3)式进行权值的迭代更新:
(3)
式中:xi(t)为输入向量;wij(t)为权值向量;η(t) 为学习率参数,0<η(t)<1且一般随着迭代步数t递减;Nj*(t)为获胜神经元j*的邻域。
通过比较输入向量xi与初始化后的权值向量的欧式距离得到获胜神经元j*,调整获胜神经元的权值向量wj,再次与输入向量比较欧氏距离,经过迭代到一定次数以后得到聚类结果。本文的迭代次数是要大于收集到的参与设计的用户数。
基于SOM网络的用户产品设计方案聚类划分步骤为:
步骤 1 用户初始方案数字化。对收集到的用户设计方案,借助计算机处理成如式(1)的矩阵形式。
步骤 2 初始化网络。对网络权值向量wij(0)(j=1,2,…,m) 随机取值,并作归一化处理。
步骤 3 选取输入模式向量。从处理后得到的矩阵中,取用户对应的功能向量作为网络的输入向量,并对选定后的输入向量进行归一化处理。
步骤 5 调整权值向量。在获胜神经元邻域范围Nj*(t)内,按照式(3)调整相应领域范围内的权值向量,并且更新学习速率和有效邻域半径。这一步即合作化过程和自适应过程。
步骤 6 判断收敛性。判断迭代次数是否达到预设的最大值,直到达到最大迭代步数(或特征映射稳定)时结束算法,否则返回步骤3。
经过以上步骤,输出最后得到的所有输出层神经元的权值向量,即聚集到的所有用户参与设计的方案集合。这些设计方案是相对完整的,可直接映射到产品设计的模型中。
3 仿真实验
基于Matlab 9.0平台,通过一个实例来说明SOM神经网络可模拟用户参与式设计方案的动态收敛过程。根据用户参与式设计的产品方案,通过数值化后构造的矩阵中,对于不同功能需求间有时会有数量级的计量差别。因此在同一功能下,先用式(2)作归一化处理,变成区间0,1的数值。由于用户的异质性,不同用户提出的产品设计方案也是各不相同。因此,本文使用rand函数生成矩阵元素服从0~1之间的均匀分布,来表示归一化后的用户设计产品方案矩阵,用来代替工程实践中获取的用户初始方案数据。
本文使用selforgsom函数创建SOM神经网络,创建网络竞争层为六边形拓扑结构,将所有的输入向量作为训练样本,这里输入向量为p=rand(2,1 000)矩阵的列向量,再利用函数train对网络进行训练。由于迭代次数影响网络的聚类性能,所以本文设置迭代步数为5,100,500,1 000这4个步长来观察其性能。利用plotsompos函数得出不同迭代次数条件下SOM神经网络的特征映射图。
为了使数据的收敛聚特性可视化,把输入数据与权重绘入到同一张图上,如图2-图5所示。从图2-图5可以看出,SOM神经网络的学习就是权值向量不断向输入向量方向调整的一个过程。图中,较小的点为输入向量绘制,较大的点为每个输出神经元权重向量绘制。图2-图4中,权重向量在变化是因为训练在不断进行,即模拟不同用户的加入和意见交互的现象,用户的产品设计方案处于一个动态变化的过程。图4-图5中,虽然训练还在继续,但权值向量已基本不再变化,即模拟用户对于产品设计方案已趋于收敛。图5中,权值向量就是输入向量的一种聚类映射,即模拟碎片化的产品方案聚类成了有用的完整的设计方案,可直接映射到产品的模型之中。
图2 步长为5时网络的权值分布图
图3 步长为100时网络的权值分布图
图4 步长为500时网络的权值分布图
图5 步长为1 000时网络的权值分布图
通过仿真分析可得出,SOM神经网络算法模拟的用户参与式设计,与文献[9]中实际的动态收敛过程相吻合,并且缩短了产品的开发周期。
4 结语
本文通过对用户参与式设计与SOM神经网络作出了特性比较来说明使用SOM算法模拟的可行性,并利用计算机软件Matlab建立的SOM神经网络,对随机产生的二维向量进行聚类,分析了可以用SOM神经网络算法来模拟实际的大规模用户参与式设计方案收敛的过程。仿真结果表明,对于具体的大量用户开放式参与设计过程,可以借助计算机辅助的方式,使用相应的聚类算法模拟用户相对较长的交互收敛过程,从而缩短产品开发周期。