基于BP神经网络-协同过滤的云制造供应商推荐系统
2019-08-27赵晓宇
赵晓宇
摘要:为更加准确的为制造服务需求方推荐制造服务供应商,提高云制造平台的运行效率,本文将BP神经网络与协同过滤算法相结合,构造了一个制造服务供应商推荐系统。系统结合了神经网络强大的非线性拟合能力以及协同过滤推荐算法的可解释性,从而更加精准的为制造服务需求方提供推荐服务。最终发现,本文提出的系统推荐准确率要优于传统的协同过滤推荐算法。
Abstract: In order to recommend manufacturing service providers for manufacturing service demanders more accurately and improve the operational efficiency of cloud manufacturing platform, a manufacturing service provider recommendation system is constructed by combining BP neural network with collaborative filtering algorithm. The system combines the strong non-linear fitting ability of neural network and the interpretability of collaborative filtering recommendation algorithm, so as to provide more accurate recommendation services for manufacturing service demanders. Finally, it is found that the proposed system recommendation accuracy is better than the traditional collaborative filtering recommendation algorithm.
关键词:云制造;BP神经网络;协同过滤;推荐
Key words: cloud manufacturing;BP neural network;collaborative filtering;recommendation
中图分类号:TP391.3 文献标识码:A 文章編号:1006-4311(2019)20-0128-03
0 引言
智能制造是实现制造企业信息化的重要途径之一,而云制造是实现智能制造的一个重要方式。云制造主要运用互联网技术搭建一个制造资源共享云平台,平台将汇集制造企业的剩余制造资源、制造能力,并将其提供给制造资源需求者。这种制造方式可以有效地降低制造资源需求方的制造成本,同时也能够充分利用制造资源供应商的剩余制造资源。
制造服务推荐是云平台的功能之一,快速准确地为制造资源需求方推荐制造资源供应商能够有效提高云平台的运作效率,同时也能够极大的提升云平台的用户体验。因此,提升云平台制造资源供应商推荐准确率对于云平台良好运营至关重要。
1 环境描述
在现实生活中,商品种类繁多,消费者往往只购买过其中一部分商品。然而,在其未购买过的商品中也许会存在符合消费者需求的某种商品,为了避免消费者错过符合其需求的商品,应当为消费者进行合理准确的商品推荐。推荐已经逐渐成为了商品交易系统的一项基本功能,例如天猫、京东等电商平台均已集成了商品推荐功能。
本文的目标是构建一个推荐系统,通过构建的推荐系统能够更加精确的将制造服务供应商推荐至制造服务需求方出。精准的推荐能够减少交易的时间成本,提高交易效率,另一方面也能够增加云制造平台用户的用户体验,进而保证云平台的良好运营。
本文假设存在一个云制造平台,且平台上具有多个参与者以及多种制造服务。当某一制造服务需求方购买其需求的制造服务后,需对制造服务供应商的当前次制造服务进行评分,评分角度应从制造平台所设定的多个指标所出发。当用户再次购买制造服务时,系统根据历史数据为其进行制造服务供应商的推荐。
本文的研究背景正是基于这样一种环境,符号描述如下所示:
①平台参与者:m1,m2,m3,…,mN,其中mi为第i个参与则,其既可以作为制造服务供应商,也可以做作为造服务需求方。
②制造服务种类:s1,s2,s3,…,sp平台共有p种制造服务,其中si为第i种制造服务。
③评价指标:i1,i2,i3,…,im,为m个评价指标,当制造服务交易完成后,制造服务需求方可以从这些指标出发,对当前制造服务供应商此次制造服务进行评分,分值为1~10分。
④Tb:每个平台参与者作为制造服务sb供应商时,在各个指标上被评分的均值。如果制造服务供应商没有该项制造服务,则其各个指标评分为均为0,如表1所示。
其中,vij表示第i个平台参与者作为制造服务sb的供应商在第j个指标上的平均得分。
⑤Bb:制造服务sb的交易矩阵,如表2所示。
其中,tij表示mi购买mj的sb制造服务的次数。
⑥IDab:表示ma在购买制造服务sb的侧重指标集合,例如IDab={i2,i5,i7}表示ma在购买服务sb时侧重于i2,i5,i7这三个指标。
⑦Mb:表示所有供应商的sb制造服务在IDab指标上的平均得分,假设IDab=k,则Mb如表3所示。
显然,表3为表1的一个子集。
⑧Eab:表中数值为ma提供过sb制造服务的供应商在侧重指标IDab上的平均得分,假设侧重指标总共有K个,Eab如表4所示。
最后一列为ma购买当前sb服务供应商的sb制造服务的次数,代表了ma对当前sb制造服务供应商的喜好程度。显然表4为表3的一个子集。
2 模型构建
假设制造服务需求方为ma,所需求的制造服务种类为制造服务sb。针对ma的需求,通过模型计算,最终將制造服务sb供应商推荐优先级进行排序,之后推荐至制造服务sb需求方ma处。
2.1 BP神经网络的构建
神经网络是机器学习中常用的一种预测模型,由于隐层以及激活函数的存在,使得神经网络具有了超强的非线性拟合能力。神经网络既可以解决分类问题,也可以解决回归问题,本文将运用神经网络解决回归问题。
本文首先构建一个三层bp神经网络,将Eab作为神经网络的训练数据,每一行为一个样本。Eab的第一列至倒数第二列为样本特征数据,最后一列为样本标记。
神经网络输入层神经元个数为IDab(IDab中元素的个数)个,隐层神经元个数为超参数需要进行进一步调节,输出层神经元个数为1,最终输出ma对当前制造服务供应商的喜好程度。神经网络结构如图1所示。
将某个制造服务sb供应商在IDab上的平均得分输入至训练后的神经网络,输出ma为对当前供应商的喜好程度。将表3再次输入训练好的神经网络即可得到ma对于每个制造服务sb供应商的喜好程度,从中选出喜好程度最大的制造服务sb供应商记为mmax。
2.2 协同过滤推荐
协同过滤推荐算法是一种经典的推荐算法,其分为基于用户的协同过滤算法以及基于物品的协同过滤算法,本文采用基于物品的协同过滤算法。
基于物品的协同过滤算法的核心思想为找到与目标用户所喜好物品相似的物品推荐给目标用户。如图2所示,喜欢物品A的用户都喜欢物品C,因此判定物品A与物品C较为相似,而ma喜欢物品A,因此可将物品C推荐给ma。
本文中需要运用表2找出与供应商mmax最相似的sb服务供应商,并按照相似程度进行排序,将相似度排名前q位的制造服务供应商推荐给ma。
3 算例分析
考虑在一个云平台上共有100家企业,记为m1,m2,…m100;云平台上总共有20种制造服务,记为s1,s2,s3,…,s20;20个评价指标,记为i1,i2,i3,…,i20。通过寻找100个具有相关专业背景的本科生作为云平台参与者进行情境模拟,并获取相关数据。
现制造服务需求方m15需要购买制造服务s3,T3如表5所示。
之后,运用python编程语言,通过第三方深度学习框架tensorflow进行神经网络的搭建,接着将E153中的数据进行随机划分,其中25%的数据作为测试集用于模型测试,剩余75%的数据作为训练集用作模型训练,训练过程中训练集及测试集损失函数值如图3所示。
通过神经网络训练过程中训练集以及测试集的损失函数值的变化趋势可以看出神经网络迭代训练至5000次时已经收敛。与此同时还可以看出,测试集损失要低于训练集损失,也就表明模型具有一定的泛化能力。
之后,将M3再次输入神经网络获得m15对于所有供应商的喜好程度,其中喜好程度最大的供应商为m65,其喜好程度为30.20369。
式中d(x,y)表示x,y之间的欧氏距离。显然,欧氏距离越大则相似度越小。未对m15提供过制造服务s3的制造服务供应商按照与m65的相似度进行排序,将相似度排名前10位的制造服务供应商推荐至制造服务需求方,相似度从大到小前10名的制造服务供应商依次为m65,m34,m32,m6,m45,m83,m91,m41,m22,m82,随后将其推荐至制造服务s3需求方m15处。
最终通过10次试验对比发现bp神经网络-协同过滤算法的推荐准确率要优于单纯使用协同过滤算法,如图4所示。
4 结论
为了提高云制造供应商推荐准确率,本文通过将神经网络与协同过滤算法相结合,构建了一个云制造供应商推荐系统。推荐系统综合了神经网络的非线性拟合能力以及协同过滤算法的可解释性。所提出的推荐系统的具体工作流程为:①运用历史数据以及所构造的神经网络可以预测得知制造服务需求方对于制造服务供应商的喜好程度。②获取制造服务需求方喜好程度最高的制造服务供应商并计算其与其他供应商的相似度。③随后按相似度从高到低对供应商进行排序,将相似度较高的制造服务供应商推荐至制造服务需求方。最后,运用提出的系统进行了算例分析,通过模拟100家制造企业之间的交易来获取数据。运用所得数据对神经网络进行训练,最终为制造服务需求方进行供应商推荐。通过10次实验发现,本文提出的系统推荐准确率均高于单独使用协同过滤算法的推荐准确率。
参考文献:
[1]马言春,彭志平.基于市场机制的云服务管理研究[J].计算机技术与发展,2012(3):214-216.
[2]王宗武.基于用户聚类的协同推荐算法研究[D].广东工业大学,2013.
[3]高睿.基于深度神经网络的视频个性化推荐系统研究[D].深圳大学,2017.
[4]孙晓琳.云制造环境下供应商匹配方法研究[D].2016.
[5]印桂生,崔晓晖,马志强.遗忘曲线的协同过滤推荐模型[J]. 哈尔滨工程大学学报,2012,33(01):85-90.
[6]荣辉桂,火生旭,胡春华,等.基于用户相似度的协同过滤推荐算法[J].通信学报,2014(2).
[7]练绪宝.基于排序学习和卷积神经网络的推荐算法研究[D].大连理工大学,2016.
[8]程磊,高茂庭.基于深度神经网络的推荐算法[J].现代计算机(专业版),2018(22):5-9.