在互联网上,一个新产品从概念到成品的过程中,必然从周边获取大量的信息以支撑其具体的设计,而且获取信息的耗时越短就越有机会跑赢市场、获得商机。这一原则在工业制造领域内仍然成立。有研究表明,制造系统内部物品检索所花费的时长占据产品设计周期的一半[1],但在现有条件下,产品研发厂商都不得不忍受这一过程。同时,随着工业4.0的推进,系统集成度越来越高,数据呈现出爆炸性增长,物品信息检索耗时过长与尽可能缩短产品设计时长之间的矛盾更加突出。由此,面向制造业物品检索的推荐系统[1-4]应运而生。
目前,大部分产品在设计阶段使用的信息系统内部用于定义知识主题(分类)的基础均来源于物料清单(bill of materials,BOM)[1]。基于此,推荐系统的实现方式包含四类:基于协同过滤推荐[2,5],基于内容推荐[6],基于知识推荐[3-4],基于组合推荐[1]。基于协同过滤推荐假设如果用户行为相似,那么他们兴趣也相仿。在推荐过程中,用户个人兴趣扮演着最重要的角色,这与“物品为主,人员为辅”的生产系统存在一定的冲突,仅仅考虑用户行为容易忽略物品本身所包含的关联信息,同时,它无法解决冷启动[7-9]问题。基于内容推荐的系统仅仅衡量物品与物品之间的相似度,割裂了物品与用户之间的关联。基于知识推荐的方法从理论上更偏智能化。文献[3-4]利用本体知识完成了旧产品到新产品的推演。但是,本体集对于整个制造行业来说是个很大的数据集,需要经过大量专家共同构建,而目前制造行业中大量的定制化需求致使其品种繁多,难以形成通用的本体集。因此,组合推荐经常作为一种取长补短的折中方案。然而,现有组合推荐模型[1]仅以公式的形式描绘了推荐的关键步骤,并非从实践系统的角度出发,在不考虑推荐项具体形态的情况下还忽略了推荐系统冷启动等问题,不能直接应用于工业信息系统。
针对此,本文遵循以物品为主、用户为辅的原则,考虑推荐物品具体形态(生产制造基础信息BOM),在提出“物品-用户”组合推荐模型的基础上,以系统套件的方式实现了包括零部件、半成品、产品等多个维度的推荐系统。
(1)零部件tm。零部件是生产所需的原材料,是构成任意产品的最小单元,通常由工厂购买而来。
(2)半成品th。半成品由n个零部件和m个半成品组成(某一半成品可由多个半成品组成)(n>0,m≥0,且n、m为自然数),由工厂通过购买或生产而来,但不是卖给客户的产品。
(3)成品tp。成品是由工厂生产且卖给客户的最终产品,与th类似,是一个包含n个tm和m个th元素的集合。
(4)BOM。BOM是生产所使用的物料清单,其中,每个BOM对应一个tp或th。BOM的每一行表示一个物料,即th或tm。当th对应的BOM包含在tp的BOM中时,称之为该成品BOM的子BOM。因此,BOM的文本清单中隐含成品、半成品和零件之间的包含关系。例如,假设产品A由半成品B和C组成,B由半成品D和诸多零部件组成,半成品C和D中只包含零部件,那么产品A对应的BOM如表1所示,表1包含子BOM表2、表3和表4,表2包含子BOM表4。
(5)BOM词w。BOM词是BOM中任意一个以空格作为分词标志的词,不一定是自然语言中的单词,但刻画了BOM所包含的特征。比如,表1“描述”列的第一行“主板机插组件OCZ-ZT550W-2 REV:001 A T26”包含“主板机插组件”、“OCZ-ZT550W-2”、“REV:001”、“A”、“T26”5个BOM词。若用“|*|”表示基数,有tm={w1,w2,…,w|tm|},th={w1,w2,…,w|th|},tm={ w1,w2,…,w|tp|}。
(6)BOM树。用树叶子节点N表示BOM中为tm的行,中间节点N表示BOM中为th的行,无向边E表示BOM和子BOM的直接关联,那么BOM是一棵由节点N和边E组成的无序树BT ={N,E}。譬如,表1对应的BOM树如图1所示。若将树用相邻矩阵进行存储,那么表5是产品A的矩阵表示。
(7)候选集。候选集T={t1,t2,…,t|t|},是推荐系统中推荐候选项的集合。t是tm、th和tp的统称。
(8)候选项向量。候选项向量表示为V,Vt=(f(w1),f(w2),…,f(w|w|))是 t= { w1, w2,…,w|t|}通过函数y=f(x)变换后形成的向量。
(9)物品类别(主题)。物品类别表示为C,C={c1,c2,…,c|C|},在封闭系统中C是一个有限的集合,|C|为该集合的基数。
(10)用户集。用户集表示为U,U={ u1,u2,…,u|U|},其中,ui(i=1,2,…,|U|)表示单个用户,|U|为用户集的基数。
(11)发生概率(得分)。发生概率表示为R,并以下标区分不同事件的发生概率。
(12)用户标签集。用户标签集表示为L,L={l1,l2,…,l|L|}。|L|为该集合的基数,li(i=1,2,…,|L|)为单个用户的某一特征标签。
表1 产品A的BOM
Tab.1 The BOM of product A
标签项目编号项编号描述数量单位策略BL203145436主板机插组件OCZ-ZT550W-2 REV:001 A T261EA2CL1003146728小板机插组件OCZ-ZT700W-1 REV:009 E T261EA2DL3023153354散热片组件12-3261EA2EL101224220电阻 MF 510K 1/10W F06032EA2FL7471221725电感 CI ZL-0420-008 T DIP TIMO8EA2GL3031221432电感 CI ZL-0420-008 T DIP NEO3G2IL1801221361绝缘粒 6.3×3×4.55 白色 UL94V0 BN2EA2JL3411220766三极管KSC2383OTA 160V1A TO92L FSC2EA2KL7121220709三极管MMBT2907A 50V0.6A SOT23 TC2EA2ML1901220708思维特电子灌封胶 JG-910-B 胶白 GP8.5G2OL2801217809锡条 Sn 99.7 Ag0.3 RJ GP1.4G2PL3401217453锡丝 Sn 0.3Ag 0.7Cu 1.2 GP2G2RL501217291磁珠 3×1.2×3 BULK MX2EA2SL601216727三刀卡ESP 150W V54 180℃B=C 550×110 GP2EA2TL3451216481螺钉 十字盘头组合GB90748-88 M3×7 ROHS2EA2
说明:标签列仅为了方便标注树节点而添加标签,不属于BOM的内容。标签标注规则见文献[10]。
表2 半成品B的BOM
Tab.2 The BOM of semifinished product B
标签项目编号项编号描述数量单位策略DL3023153354散热片组件12-3261EA2EL101224220电阻 MF 510K 1/10W F06032EA2FL7471221725电感 CI ZL-0420-008 T DIP TIMO8EA2GL3031221432电感 CI ZL-0420-008 T DIP NEO3G2JL3411220766三极管KSC2383OTA 160V1A TO92L FSC2EA2KL7121220709三极管MMBT2907A 50V0.6A SOT23 TC2EA2OL2801217809锡条 Sn 99.7 Ag0.3 RJ GP1.4G2PL3401217453锡丝 Sn 0.3Ag 0.7Cu 1.2 GP2G2RL501217291磁珠 3×1.2×3 BULK MX2EA2TL3451216481螺钉 十字盘头组合GB90748-88 M3×7 ROHS2EA2
表3 半成品C的BOM
Tab.3 The BOM of semifinished produet C
标签项目编号项编号描述数量单位策略IL1801221361绝缘粒 6.3×3×4.55 白色 UL94V0 BN2EA2ML1901220708思维特电子灌封胶 JG-910-B 胶白 GP8.5G2SL601216727三刀卡ESP 150W V54 180℃B=C 550×110 GP2EA2
表4 半成品D的BOM
Tab.4 The BOM of semifinished product D
标签项目编号项编号描述数量单位策略EL101224220电阻 MF 510K 1/10W F06032EA2PL3401217453锡丝 Sn 0.3Ag 0.7Cu 1.2 GP2G2RL501217291磁珠 3×1.2×3 BULK MX2EA2TL3451216481螺钉 十字盘头组合GB90748-88 M3×7 ROHS2EA2
图1 产品A的BOM树
Fig.1 BOM tree of product A
表5 产品A的相邻矩阵
Tab.5 The adjacent matrix of product A
ACBIMSGFDJKOEPRTACBIMSGFDJKOEPRT111000000000000001028.520000000000001000381221.400000001000000000000000010000000000000000100000000000000001000000000000000010000000000000000120022020000000001000000000000000010000000000000000100000000000000001000000000000000010000000000000000100000000000000001
(13)兴趣标签。兴趣标签表示为L(u),是用户u标签集L中满足一定条件的子集。
(14)问题定义。给定物品候选集T和用户标签集L,如果用户满意程度为s(临界值为α),目标函数为s=f(L,T),假设当目标函数值s不小于临界值α时满足用户需求,那么本文的问题是求解ST={ti∈T∶s=f(L,T)∩s≥α},返回用户的推荐集合ST。
首先针对推荐内容维度,提出根据内容相似和结构相似来定义物品的距离并以此为基础划分其类别(主题) 。然后对另一个用户标签维度定义计算用户近似度的公式,并给出量化用户兴趣的方法。最后,在不忽略系统冷启动问题的基础上,介绍本文所使用的推荐算法。
2.1.1 基于内容相似的距离
假设空间中有2个分别包含n维词汇信息的候选项向量V1(xw11, xw12, …, xw1n)和V2(xw21, xw22,…, xw2n),那么引入向量空间余弦相似度[11]后,它们的相似距离被定义为
(1)
其中,dc的取值范围为[-1,1],dc取值越大,表示V1和V2相似度越高。xwi为wi经过函数f(wi)变换后的数值。由于tm所包含的w数量不多且结构单一,而th和tp包含数目过多的w且结构复杂,因此,本节针对两种情况分别定义相应的f(w)函数。
(1)零部件内容文本向量化。零部件内容近似采用了词频向量法。词频向量法把BOM词出现的频率作为表征一句话或者一段文本的主要信息,并针对重要的词语进行频数统计,形成数学向量,从而实现文本到数学符号的转换,即
ftm(w)=q(wi;tm)
(2)
式中,q(wi;tm)表示BOM词wi在tm={w1,w2,…,w|w|}中的发生频率。
例如,表1中的零部件tmJ和零部件tmK,通过词频变换后的向量如表6所示,分别为VtJ=(1,1,1,1,1,0,0,0,0)和VtK=(1,0,0,0,0,1,1,1,1)。
表6 词频转化为向量
Tab.6 From word frequency to vector
标签三极管KSC2383OTA160V1ATO92LFSCMMBT2907A50V0.6ASOT23TCJ111110000K100001111
(2)半成品与成品内容文本向量化。此处采用了“词频-逆向文件频率”法即BOM词频-逆向文件频率法[12],公式如下:
fth|tp(w)=TFIDF(w,dBOM,D)=
TF(w,dBOM)·IDF(w,D)
(3)
(4)
式中,TF(w,dBOM)为BOM词w在文档dBOM中的出现次数;IDF(w,D)表示词w在物料清单语料库中的独特性;DF(w)为包含了词汇w的物料清单数;|D|为语料库中的文档总数。
2.1.2 基于结构相似的距离
本节将计算半成品与成品BOM树之间的近似程度转换成计算树相邻矩阵之间的相似距离。其中,根据文献[4]中的正交普氏分析过程,两个相邻矩阵MX和MY的相似距离被定义为
(5)
ds的取值范围为[0,1]。当且仅当ds取值为1时,MY与MX相同或者其中一个矩阵是另一个矩阵的真子集。trace{A}表示矩阵A的对角线元素之和,矩阵P来自于MX和MY的正交普氏分析的结果。其中,对于正交普氏分析而言,MX为基准矩阵,MY为用于匹配的矩阵,P为自转正交矩阵[13]。
2.1.3 基于集成相似的距离
集成模型在统计、计算和表示上都比单一模型更有优势[14],因此,本文在计算tp、th之间的相似距离时,集成了BOM结构相似距离和内容相似距离的办法。具体定义为:给定某两个tp(th)的结构相似距离ds和内容相似距离dc,集成模型的距离计算公式为
dens=weq1ds+weq2dc
(6)
weq1=weq2=1/2
如文献[11]所述,等权重集成虽然较为简单,但简单的方案可能在实际应用中效果很好。尤其是在面对依赖权重估计来做预测的模型时,等权重的办法往往能避免模型性能的不稳定及估计错误带来的风险。
2.1.4 基于相似距离分类
物品的主题或分类是推荐系统的重要依据。基于前文对距离的定义,本节实现了机器学习领域中的K-Means聚类算法[12]。它将3个模型所提供的距离作为K-Means的输入,每个物品都是K-Means的“点”,近似值是“点”与“点”之间的距离。当算法1的输入参数dDF为tm时,距离为式(1)的输出。同理,当输入参数为tp或th时,距离来自式(6)。算法1的复杂度为O(n)。
算法 1 frm-ModelCapability (distDF,k)
输入:近似集dDF,可能存在的类别数k
输出:K种分类
开始
1.for all d∈dDF do∥d是dDF中的列
2. 初始化常数k
3. 随机选取初始点为质心
4. while质心不再改变 do
5. 以d作为距离,扫描样本与每个
质心之间的数值,将样本归类到
最相似的类中
6. 重新计算质心
7. end while
8.end for all
9.Return K种分类 ∥Score中包含模型的F1 Recall和Precision值
2.2.1 用户兴趣量化
本节采用标签来量化用户的兴趣,即以一种主动学习的方式为用户打上相应的标签,并形成针对每个用户的兴趣标签描述矩阵(向量)。假设用户u包含的标签集合为L,那么u的兴趣量化函数L(u)的定义为
L(u)={l∈L∶LP(u,l)≥θ}
(7)
其中,LP(u,l)表示标签l相对用户u的正样本发生概率,θ为一个临界值,可以判别标签l是否达到用户u的兴趣水平。因此,如果假设发生概率过低的标签均为兴趣集的噪声,θ的实际作用是去噪。例如某一标签li在用户ui的众多标签集中的发生概率仅为0.000 1,远低于平均发生概率,那么它很可能是用户偶然的点击,尚未形成“兴趣”。
这里包含两个需要解决的问题,一是用户标签的来源,二是如何准确判别该标签是否属于当前用户兴趣范围。解决问题的数据基础是用户的浏览历史记录和用户自身属性,如年龄、性别、所属工厂等。
(1)类别和主题标签。用户的类别或主题标签主要来源于搜索内容的类别(主题)划分。2.1.4节对物品的归类是本节类别标签的来源。假设用户u的浏览内容中包含物品分类集C={c1,c2,…,cn},并用下标区分不同用户的标签集,那么其对应的标签为Lu⊇ {lc1,lc2,…,lcn},兴趣标签的判断条件为LP(u,lci)≥θ。
(2)关键字标签。当用户u标签集中大部分LP(u,lci)<θ且lci∈Lu,那么仅按照浏览主题和标签标注用户的策略基本失效。为弥补此不足,本文中引入关键字标签。这里的关键字全样本集来源于BOM中的w,兴趣标签的判断条件为LP(u,lwi)≥θ,关键字全样本集的获取如算法2所示。
算法 2 frm-KeyWrd(Boms)
输入:BOM文本集
输出:返回得分位于0.652 6之上的集合
开始
1. for all Bom∈Boms do∥d是dDF中的列
2. Bom→{w1,w2,…,wn}
3. for all wrd∈{w1,w2,…,wn}Boms do
4. Scoring.add(TFIDF(w))
5. end for
6.end for all
7.Return top-65.26% w ∥返回65.26%的关键字集合
算法2采用了递向词频法TFIDF。首先对过去两年的BOM文本做预处理,预处理步骤包含分词切割和计算TFIDF得分。在假设TFIDF得分服从正态分布的基础上,将正态分布在σ内的w视为关键字样本集。TFIDF法主要对文本进行处理,速度较快,算法的复杂度为O(n)。
(3)物品来源标签。物品的来源标签包含三种ltm、ltp、lth(零部件、成品和半成品)。该标签的计算和统计方法与类别标签相似。
(4)身份特征标签。物料采购员、电路设计工程师、产品工程师等因个人偏好、身份特征、年龄等诸多因素导致其对信息的需求均不相同,因此,本文引入身份特征这一标签,主要包含用户个人的岗位ltitle、所属工厂lfactory、年龄lage、性别lgen。同时,为将这些特征标签融入兴趣量化的公式中,我们在计算这些标签是否满足LP(u,l)≥θ条件时将LP(u,l)设定为1。
2.2.2 用户相似定义
协同推荐的基本假设为具有相同兴趣的用户具有相似的信息检索需求,因此,度量两个用户的相似程度是开展推荐任务的基础。假设用户集里包含3个用户u1、u2和u3,已知u1和u2的共同兴趣标签有8个,用户u1和u3的共同兴趣标签数是2,那么u1和u2的近似程度要高于u1和u3的近似程度。基于此,本文度量用户相似度的公式定义如下:
(8)
其中,L(ux)指的是用户ux的标签集,L(ux)∩L(uy)是所有用户ux和uy的兴趣标签交集,L(ux)的计算方法见式(7)。
2.2.3 用户邻域计算
用户的邻域计算是协同推荐的关键步骤,其中,邻域用户数的实现方式有静态和动态之分。静态办法就是对所有当前用户均选择k个最近似的用户作为其邻域,而动态指的是利用临界值来动态获取近似度超过临界值的邻域。本文在系统实现中采用了预处理的静态办法,依据式(8),返回数据库中与当前用户最相似的k个用户,具体如算法3所示。
算法 3 K-NearestUsers(ui,users)
输入:当前用户ui, 包含近似关系的用户集users∥users之间的近似关系由预处理完成
输出:top-k个最近的u集合
开始
1.userSet = users.containUi(ui)∥获取与ui有du关系的所有用户
2.userSet.sortByDu() ∥按du大小排序
3.Return getTopk(userSert)∥返回top-k个邻域用户
算法3包含了一个预处理的集合users,即预处理部分将用户的近似关系持久化于数据库中,仅在用户有了新的标签才对其作更新操作。
2.3.1 基于内容推荐(CB)
本节在2.1节的基础上为用户提供基于内容近似的物品推荐。假设Ci是用户ux浏览物品ti(i=m、h、p)的类别,T(Ci)函数表示获取类别Ci的t集合,∧表示条件与,Tux为用户ux的推荐候选集合,那么内容推荐则是从候选集Tux={t1,t2,…,t|t||ti∈T(Ci)∧Ci∈{C1,C2, C3,…,Cn}}中决策出top-kCB个与ti同分类且dens1距离最短的推荐项列表,如算法4所示。
算法 4 CB-RecommendationItems(ti,C,dens1)
输入:物品类别矩阵C和ti距离列表dens1
输出:top- kCB个最近的ti集合
开始
1.Ci=getC(ti) ∥获取ti的类别
2.Tux=getItems(Ci)∥满足{t1,t2,…,tn|ti∈T(Ci)∧Ci∈{C1,C2,C3,…,Cn}}
3.CBSets=Tux join getItemsWithDistance(dens1)∥为候选集添加距离属性
4.Return SCB= { ti∈CBSets:0<=i<kCB}∥返回top-kCB属于Ci分类且离ti距离最短的物品
算法4与第1节中的推荐结果ST={ti∈T:s=f(L,T)∩s≥α}在形式上不是一一对应的。这里,我们将标签L和类别C等同,那么目标函数为s=f(C,T),而目标达成的判断依据s≥α在算法4中被转换成三个条件:①返回的结果集的元素数量为top-kCB;②属于Ci分类;③离ti的距离是top-kCB最短。
2.3.2 协同过滤推荐(CF)
假设T(L(uy))函数表示用户uy兴趣标签集所包含的物品集合,uy∈{u1,u2,…,uk}为ux的top-kCF个相似用户,那么ux的推荐候选集为Tux={t1,t2,…,t|t||ti∈{T(L(u1)) ∪T(L(u2))∪…∪T(L(uy))∪…∪T(L(uk))}}。本节的任务是从候选集Tux中决策出top-kCF个当前用户最感兴趣的物品列表。为此,本节引入Resnick’s算法的评分公式[15]:
(9)
其中,Px,i表示当前用户ux的候选集Tux中的第i个元素的得分,为用户ux的平均得分,即平均发生概率。函数du来源于式(8),表示用户的近似性。Rx,i表示ti在ux中的得分。推荐过程的具体实现如算法5所示,算法的复杂度为O(n)。
算法5 CF-RecommendationItems(u,Tux)
输入:用户近似度矩阵u和物品列表矩阵Tux
输出:top-kCF个评分最高的ti集合
开始
1.for all uy∈u do
2. 初始化常数kCF
4.end for all
5.Return SCF= {t1,t2,t3,…,tkCF} ∥返回top-kCF最高分的t集合
算法5对于问题定义ST={ti∈T: s=f(L,T)∩s≥α}而言,目标函数为s=f(L,T),条件s≥α的解释为:①返回结果集的元素数量为top-kCF;②物品ti得分满足式(9);③属于top-kCF最高分的t集合。
2.3.3 组合推荐
协同推荐基本上解决了基于内容推荐的品种单一问题,并易获得较好的推荐质量,但正如前文所说,它无法解决系统的冷启动或用户信息量过少时的推荐问题[16],因此,本节以协同推荐为基础,结合2.3.1节内容,定义组合推荐的公式如下:
(10)
其中,当且仅当当前用户有浏览历史记录但与其他用户的标签交集只有身份属性时,采用基于内容推荐(content based,CB)即根据现有用户的兴趣标签推荐同类型的物品。相反,如果当前用户有浏览历史记录并与其他用户有除身份标签以外的共同兴趣标签时,采用2.3.2节的协同推荐方法。但是,如果用户没有物品浏览记录,本文引入产品的停留时间作为生命力因子,区别对待在tm、th和tp的基础上修订并集成的频繁集挖掘算法[17],为用户推荐当前被频繁使用的物品集合。
(1)成品的频繁集合。由第1节的实体描述中可见,成品 tp是一棵BOM树。本节在提取tp频繁集的时候,将其看成独立的个体(每个BOM就是一个独立的频繁项)并以点击率作为频次的度量。因此,BOM集和频度q如表7所示。
表7 BOM的频度
Tab.7 The click frequency of BOM
BOMqBOM11BOM22BOM33BOM41BOM59BOM65︙︙BOMn-156BOMn5
对频次的频率化处理公式如下:
(11)
RBOM,i表示频繁集中第i个BOM的得分。推荐集FRE(BOM)={BOMi |BOMi∈{BOM1,BOM2,…,BOMn}}的获取必须满足3个条件:①属于最近一段时间被点击的物品集;②BOMi的停留时间不低于超参数κ;③RBOM,i得分不低于0.3。
(2)零部件和半成品的频繁集。tm和th分别为BOM树的叶子节点和子树,因此,本节引入文献[17]的办法,对任意一个包含子节点Nc的父节点Np进行频度计算,公式如下:
qBTNp=
(12)
(13)
其中,B为BOM树,h(B,N)表示节点N在树中的高度,Q为树节点中的零部件个数。式(13)是对频次的频率化处理。BNi表示以Ni为根节点的子树,RBTNi,i表示数据库中第i个子树的得分,那么推荐集为SFRE(B) ={Ni |Ni∈{N1,N2,…,Nn}}。
实验设置的第一个参数是实验环境。实验运行在64bit的Ubuntu上。该系统拥有一个2.4GHz第三代英特尔酷睿四核CPU、16GB的RAM内存、一个64GB SSD固态硬盘和一块750GB硬盘。
实验设置的第二个参数是实验数据。本节实验所用数据来自于真实的生产环境,约包含1154份BOM,350 000个物品的数据集。实验所用数据集均从这份数据抽样形成。
实验设置的第三个参数是实验对象。前三组实验对象基本一致,分别是原始的信息搜索系统InfoSystem和本文的系统RecoSystem。第四组实验分为三个部分,第一部分测试对象是系统参数k和θ,第二部分测试对象是结构近似度量Struct、内容近似度量Content和本文度量办法Reco,第三部分是基于内容推荐(CB)、协同过滤推荐(CF)和本文的组合推荐模型RecoModel。其中,RecoSystem是本文推荐系统的实现,InfoSystem表示集成推荐系统前的生产信息系统,RecoModel是推荐引擎。RecoSystem和RecoModel属于自主开发,InfoSystem是商用系统。三者的关系为RecoSystem包含RecoModel,RecoSystem将集成到InfoSystem中去。
实验设置的第四个参数是评价指标。第三组实验的评价指标是响应时间,第二、第四组的评价指标是平均绝对误差(mean absolute error,MAE)。假设R表示推荐项的得分集,|R|为推荐集大小,Rij表示元素Rij的真实得分,PRij为推荐系统的预测得分,MAE的计算公式如下:
(14)
本文推荐系统RecoSystem涵盖物料近似搜索、我的关注及能解决冷启动问题的热门产品推荐功能。InfoSystem主要查询功能是物料的精确查询,InfoSystem要求使用者精确记住每种物料的所有具体参数,当数据量逐步增大时,在InfoSystem中进行搜索将成为一种挑战。同时,InfoSystem无法解决工厂业务上的需求,如抛开市场品牌标签后查找近似零部件或用料非常接近的半成品和成品。然而,这些问题都将在推荐系统中得到解决,在RecoSystem中,用户可通过关注收藏操作自定义个人兴趣,由推荐系统综合考虑用户主被动两种情况进行相应的推荐,用户只需被动接收满足需求的信息,另外,用户亦可主动发起对物品近似搜索,所以既能够提升信息获取的效率,又能够解决手工进行近似匹配的麻烦,因此,RecoSystem是现有信息系统的重要补充。
分别在不同的数据集上测试统计推荐引擎RecoModel推荐结果的MAE,测试结果如图2所示。由图2可见,本文推荐系统的MAE在随机形成的数据集上基本恒定在85%的水平。一方面,由经验可判断85%的满意程度属于推荐系统中较好的水准,另一方面系统的MAE随数据集的不同而呈现较为平稳的波动,符合预期。
图2 数据量的影响
Fig.2 The effect of data size
图3 响应时间对比结果
Fig.3 The comparison results of the response time
分别在不同的数据集上测试系统搜索功能集成前后推荐模型的响应时间,测试结果如图3所示。图3显示RecoSystem与InfoSysttem的响应时间较为接近,并不因为多集成了推荐模型带来多余的系统开销。本文在InfoSystem的基础上集成推荐模型时,推荐模型所使用的数据如推荐项距离、主题分类、部分标签等通过系统预处理任务来完成,不占用系统响应开销。同时,部分需要实时计算部分如用户标签、兴趣标签、邻域等每次只更新变动过的部分。假设这部分的计算与搜索同时并发执行,那么RecoSystem的响应时间为max{执行时间, InfoSystem的响应时间},在推荐模型线上开销尽可能小的前提下,InfoSystem并不因为多集成一个模型而使系统响应骤然变慢。
模型性能测试包含四个实验,前三个实验分别测试参数k、θ和相似距离定义策略的变化对系统性能的影响,最后一个实验是本文与现有流行推荐系统的对比实验。所有实验结果均来自于多次(超过5次)执行后的平均值。
(1)用户邻域数k取值对系统性能的影响。抽出式(10)中的协同推荐部分单独测试用户邻域大小对其性能的影响。图4测试结果显示,当k=1时模型的性能最好,k取值从1~4的过程中模型MAE的波动不大,但k=4是模型的MAE从90%以上下降到83%的临界点。考虑到不给k取过小的值,本文系统的用户邻域k取值为4。
图4 邻域数k取值的影响
Fig.4 The effect of the neighborhood number k
(2)θ取值对系统性能的影响。θ是本文用来判别当前标签是否能成为用户兴趣标签的依据。图5的测试数据是包含35万个物品记录的数据集。测试结果显示,θ以0.1的步长不断递增,模型MAE值随其增大,当θ取到0.4时,模型MAE值达到峰值,因此,本文系统的超参数θ取0.4。
图5 θ对系统性能影响
Fig.5 The effect of θ on system performance
(3)距离定义方法对系统性能的影响。Reco是Struct、Content和Ens(集成模型)的综合,对tm采用Content办法,对th和tp采用Ens方法。图6的测试结果显示,系统采用Reco时性能最好,随着数据量增大,MAE波动平稳。Struct和Content结果较为接近,Content的效果略优,尤其是在数据集全为tm时(数据集为50 000),Content优势凸显,因为50 000数据集的物品全为tm,tm的结构是一个叶子节点,没办法通过结构度量tm与tm之间的相似程度,此时,系统处于随机状态。
图6 距离度量方法对系统性能影响
Fig.6 The effect of distance measure method on system performance
(4)推荐系统性能对比实验。图7的实验结果显示,本文模型RecoModel较纯CB模型有约10%的MAE优势,同时,在数据量小于70 000前纯CF模型的MAE高于RecoModel的MAE,但当数据量大于70 000后,CF模型的MAE小于RecoModel的MAE并迅速下降。在稳定性方面,RecoModel的MAE基本在83%~85%之间变化,且波动率不大,较纯CB模型和纯CF模型更稳定。
图7 推荐算法对比实验
Fig.7 The comparison experiment on Recommended algorithms
本文遵循以物品为主、用户为辅的原则,在考虑推荐物品具体形态的基础上,针对生产制造基础信息BOM,实现可集成到现有生产制造系统的推荐系统。系统涵盖三个模块:用户主动定制自身偏好模块、推荐引擎、包含数据存储和处理部分的用户兴趣挖掘模块。自下而上看,系统在数据存储和处理时,全面分析BOM中物品、半成品、成品等所包含的特征,提出基于内容相似、BOM结构相似及两者集成的相似距离定义办法,根据物品特征选择合适的相似距离定义公式,并以距离为基准划分物品的主题或分类。同时,基于用户浏览产生的历史记录或用户自行定义的自身偏好量化用户兴趣、定义用户近似公式。最后由推荐引擎结合物品与用户,实现包括基于内容推荐和基于协同过滤在内的组合推荐,决策出用户所需的推荐列表。处理冷启动时,引入频繁集搜索算法,并结合生命周期的概念,在筛除过时集的基础上再形成频繁集合以提高推荐命中率。实验表明,本文推荐模型能为用户提供有效的近似搜索功能,是现有生产集成信息系统的补充,同时能有效推荐用户所需信息,有效降低其主动搜索信息所耗费的精力。
[1] HAO Jia, YAN Yan, WANG Guoxin, et al. A Probability-based Hybrid User Model for Recommendation System[J]. Hindawi Publishing Corporation Mathematical Problems in Engineering, 2016,1:1-10.
[2] WILMANN R, KASTN W. Product Ramp-up for Semiconductor Manufacturing Automated Recommendation of Control System Setup[M]. Lübeck:RonPub UG, 2016:219-254.
[3] 刘庭煜,汪惠芬,贲可存,等. 基于多维情境本体匹配的产品开发过程业务产物智能推荐技术[J]. 计算机集成制造系统, 2016, 22(12): 2727-2750.
LIU Tingyu, WANG Huifen. BEN Kecun, et al. Intelligent Business Artifact Recommending Approach for Product Development Processes Based on Context Ontology Matching[J]. Computer Integrated Manufacturing Systems, 2016, 22(12): 2727-2750.
[4] FAJAR J E, MARTA S, ESTEFANIA S, et al. Ontology-based Data Integration in Multi-disciplinary Engineering Environments[J].Journal of Information Systems, 2017,4(1):1-26.
[5] YEHUDA K, ROBERT B. Advances in Collaborative Filtering Recommender Systems Handbook [M]. Boston:Springer, 2017:77-118.
[6] SON J, KIM S B. Content-based Filtering for Recommendation Systems Using Multiattribute Networks[J]. Expert Systems with Application, 2017,89(15):404-412.
[7] BLERINA L, KOSTAS K, STATHES H. Facing the Cold Start Problem in Recommender Systems [J]. Expert Systems with Applications, 2017, 41(2014):2065-2073.
[8] JYOTIRMOY G, SANJAY K J. A Survey on Solving Cold Start Problem in Recommender Systems [C]∥International Conference on Computing, Communication and Automation. Greater Noida,2017:1-13.
[9] WEI Jian, HE Jianhua, CHEN Kai, et al. Collaborative Filtering and Deep Learning Based Recommendation System for Cold Start Items[J]. Expert Systems with Applications. 2017, 69:29-39.
[10] SHIH H M. Product Structure BOM-based Product Similarity Measures Using Orthogonal Procrustes Approach[J]. Computers & Industrial Engineering, 2013, 61(3):608-628.
[11] GENTE V, KENNY G, MEYLER A, et al. Combining Expert Forecasts: Can Anything Beat the Simple Average?[J].International Journal of Forecasting, 2013,29(1):108-121.
[12] AMITA M, KALYANI K, POOJA K. Prediction of Heart Disease Using K-Means and Artificial Neural Network as Hybrid Approach to Improve accuracy[J]. International Journal of Engineering and Technology, 2017, 9(4): 3081- 3085.
[13] GENG Zhiqiang, LI Yanan, HAN Yongming, et al. A Novel Self-organizing Cosine Similarity Learning Network[J]. Energy, 2018: 142(1): 400-410.
[14] SIMOPOULOS C, WERETILNYK E, GOLDING G B. Prediction of Plant IncRNA by Ensemble Machine Learning Classifiers[J]. BMC Genomics, 2018,19(1):316.
[15] 吴旭,张雄. 一种融合云模型和新人的推荐算法[J].信息技术,2016,2552(5):140-146.
WU Xu, ZHANG Xiong. Recommendation Algorithm Integrating Cloud Model and Trust[J]. Information Technology, 2016, 2552(5):140- 146.
[16] 雒兴刚,杨勇.基于联合分析的可配置产品优化选择方法[J]. 中国机械工程, 2012, 23(5): 578-584.
LUO Xingang, YANG Yong. Optimization Method for Configurable Products Based on Conjoint Analysis[J]. China Mechanical Engineering, 2012, 23(5): 578-584.
[17] ISRAT C, RICHI N. Identifying Product Families Using Data Mining Techniques in Manufacturing[C]∥Proceedings of the Twelfth Australasian Data Mining Conference. Paradigm, 2014:113-120.