APP下载

支持向量机在物品智能推荐中的应用

2020-12-28张泽瑞陈杰宋楚平

现代计算机 2020年31期
关键词:适应度染色体变异

张泽瑞,陈杰,宋楚平

(南京科技职业学院信息工程学院,南京 210048)

0 引言

校园网二手商品的交换和买卖旨在发挥旧物的剩余价值,以商品流通来促进学生间情感交流、文化交流和社团活动,对培养学生的环保理念、商业意识和沟通能力都有很大的裨益。这其中,将物品推荐给学生的准确率高低直接影响用户的体验,对微校园App 的推广起着决定性的作用。物品推荐和效果评价一直是一个比较复杂的问题,由于校园物品的多种类、多属性和难描述的特点,另受学生个性、喜好和周围环境的影响,目前还没有完善的技术手段对学生的物品搜索进行准确的智能推荐,导致系统的搜索结果往往与学生的需求相差甚远,影响了系统的口碑和市场竞争力。

随着数据挖掘和人工智能技术的发展,多种推荐算法如协同推荐、关联规则、分类聚类和神经网络等在物品推荐方面得到应用,相关的深入研究也随之展开,如利用关联规则算法计算与推荐预测评分最高商品具有关联关系的关键节点,以此关键节点作为多样性商品推荐依据的推荐方法[1];将图像匹配应用到图像推荐模型中,与传统推荐模型结合以提高推荐结果准确度的LSH 算法[2];一种融合知识图谱与用户评论的根据商品推荐价值进行Top-k 推荐商品的推荐算法[3];通过数据预处理建立分散类,得到目标用户所在区域,计算相似度来实现商品个性化推荐的方法[4];以及优化读者评价矩阵和相似度模型的协同过滤改进算法等[5]。考虑到校园二手物品数量规模不大、门类不多、物品特征容易定义的实际情况和兼顾推荐的计算效率,决定采用基于统计学习理论发展起来的支持向量机(Support Vector Machine,SVM)来解决物品推荐的不稳定问题。尽管在小样本分类方面,SVM 已被证明是一种非常有效的方法,具有良好的泛化能力和全局最优解[6],但该方法的模型参数仍没有具体理论来指导选择,需要根据实际应用做进一步优化处理。

1 支持向量机推荐模型的构建

SVM 的基本思想是通过非线性映射(称为决策函数),把样本空间映射到一个高维的特征空间,将原本空间线性不可分的问题,转化成在高维空间通过一个线性超平面将样本完全划分开,从而得到分类的最优解。决策函数由位于超平面附件的几个支持向量决定,因此该方法不仅算法简单,而且具有较好的鲁棒性,特别适合解决样本数据较少、先验干预少的非线性分类问题,物品推荐模型符合上述问题特征,可采用SVM 来实现微校园App 中二手物品的智能推荐。

物品的学习样本集表示为{x1,x2,…,xi,yi}(xi∈Rn为输入变量,yi∈N+为对应输出值),SVM 模型通过核函数φ(x)将输入空间向量x→映射到高维空间以构建一个线性分类函数f(x),来实现物品的分类。

式中w 为权值矢量,b 为阈值。问题的求解关键是找最小w,可将找最小w 表示成凸优化问题,即:

为提高模型的鲁棒性,引入惩罚因子C>0。利用Lagrange 乘子向量、对偶原理及核函数方法,将SVM 的约束问题最终转化得到如下回归函数:

式中σ为径向基核带宽的调节参数,结合(3)式得到以下的支持向量机物品推荐模型。

由式(5)可以看出,SVM 模型的性能和泛化能力主要取决于参数C和σ,常采用试验法或网格搜索法来确定合适的参数,但这些方法效率低且容易陷入局部解,最终导致模型精度不高和稳定性不够。为此本研究考虑到遗传算法(GA)的全局搜索能力和全局最优解的特点,决定采用遗传算法在一定范围寻找参数C和σ,来保证模型的有效性和准确性。

2 推荐模型的参数优化

推荐模型的参数优化问题是结合校园网的应用实际情况,以及物品的特征属性和师生的查询方式,通过合理设计遗传算法的编码方式、适应度函数和遗传算子,寻找支持向量机的最优参数,主要工作有:

(1)实数编码。由于SVM 的调参染色体基因X 的编码形式可表示为 {Ci|σi},其中Ci、σi∈R+。任何一组参数(Ci、σi)一个染色体,Ci、σi为染色体上的 2 个基因,取值为实数,因此此处采用实数编码,符合参数大空间搜索过程,克服了二进制码搜索效率低、精度不高的缺点。

(2)适应度函数。遗传算法在进化搜索中是利用适应度值选择个体的,适应度值大的个体将有更多的机会繁衍下一代,使优良特性得以遗传。适应度函数是算法演化过程的驱动力,其好坏直接影响后续的遗传算子操作,此处采用SVM 的均方根误差的倒数作为适应度函数,即:

式中ti为样本的真实值,yi为样本的预测值,l 为样本个数。为避免样本各特征数据量差太大而影响模型精度,同时有利于提高模型训练速度,此处采用归一化对所有样本数据进行了处理。

(3)选择算子。用轮盘赌方式按个体的选择概率大小选择出第一代样本。利用6 式计算各个体的适应度值,然后利用7 式计算个体被选中的概率pi。显然那些误差值小的个体被选中的可能性大,选中的个体染色体的遗传性正比于其选择概率pi,这样样本中的个体均有较高的适应度和生存优势。

(4)交叉算子。染色体 (Ci、σi)采用实数编码,用线性组合方式进行个体交叉操作。设两个体对应染色体 Xi和 Xj进 行 交 叉 操 作 ,则Xi=μXi+(1-μ)Xj,Xj=μXj+(1-μ)Xi。交叉系数μ在每次交叉时随机取值,一般取缺省值μ=0.75。

(5)变异算子。几种常用的变异算子主要有基本位变异、均匀变异和高斯变异等,因为(Ci、σi)是在一定范围内选择的,这与均匀变异在某一范围内均匀产生随机数相吻合,因此采用均匀变异以某一较小概率替换个体编码中各个基因座上原有的基因值。如随机选择待变异染色体X 中变异位j,将它置成以概率β(一般取β=0.01)均匀出现的随机数Uj,Uj的取值范围为[mini,maxi]。

参数C、σ寻优的具体步骤如下。

Stepl:算法参数初始化。染色体按实数编码,随机产生种群数50,最大遗传迭代次数200,收敛系数T=0.5,指定C、σ的搜素范围。

Step2:对种群中的每个染色体,利用6 式计算它的适应值fi。

Step3:如果Pk<=T,或者到达最大迭代次数,则搜索停止并输出当代中最大适应度的个体;否则以概率pi从种群中随机选择一些染色体构成新的种群。

Step4:利用交叉、变异算子对当代进行处理,以产生新的染色体种群;返回步骤2,直至迭代终止。

将输出最优解参数C、σ来训练SVM 模型,然后利用训练好的模型进行物品推荐。

3 推荐模型的训练与应用

3.1 模型的训练

样本数据来自如图1 所示的微校园App 后台数据,样本的特征为{价格,新旧度,颜色,大类,推荐系数},其中,新旧度取值(0,1),值越大表示物品越新。颜色也取值(0,1),值越大表示该颜色越受用户欢迎,根据物品销售情况动态调整某一颜色的值。大类取值[1-15],分别表示书、笔记本、台式机、手机、iPad 和自行车等物品。推荐系数是人工标注的模型输出值,其整数部分为物品大类标号,小数部分表示匹配度,该值越大表示被推荐的机会越大。

图1 微校园App

图2 训练绝对误差分布图

样本数据准备好后,然后利用MATLAB 2012b 的遗传算法工具来寻求最优解参数(C,σ),初始化参数见表1。

表1 CA 主要参数

而SVM 的训练采用林智仁教授开发的LIBSVM软件包来完成,由于物品的推荐系数与物品大类、颜色、新旧度及价格有关,将这四个指标作为SVM 模型的输入,推荐系数作为模型输出。图2 是参数(C,σ)在搜索范围内训练模型时推荐系数的误差值w(w=|ytyp|,yt为实际值,yp为预测值)。

由图2 可以看出,参数对(C,σ)的最优组合在(240,0.05)附近。经过迭代训练后,得到SVM 模型的最优参数为C=231.58,σ=0.047。

3.2 模型的应用效果

为进一步检验模型的应用效果,随机选取曾经浏览过微校园App 的100 名学生为推荐对象,其中男生59 名,女生41 名。让他们按物品的大类、价格、颜色和新旧度搜索自己心仪的物品,看模型据此推荐的物品是否得到学生的认可和满意。此场景的推荐结果性能评价有别于有样本标签的分类评价,因为无法事先通过标签来标注某一物品是否被学生认可,只有经过统计学生的真实体验和感受才能计算出模型的准确率和满意度,准确率P 和满意度R 的计算公式如下:

其中gj是被学生接受的第j 个推荐物品,N 是推荐物品总数,fi是学生对第i 个推荐物品的满意度(用满意、基本满意和不满意来表示),分别取值为(1|0.5|0),取前3 个最大推荐系数的物品给学生,现场统计并计算P 值和R 值,计算结果如表2 所示。

表2 准确率和满意度统计结果

由表2 可以看出,学生认可了约79%的物品,满意率为67%,说明系统推荐取得了较好的效果,这主要得益于学生事先通过App 对可能推荐的物品进行了特质指向,有利用模型直接利用这些特征来计算物品的推荐系数,从而保证了推荐的精度和可信度。本应用采用k=3 个最大系数来推荐,如果数据库中物品种类和数量不足够大,有可能这k 个近邻的物品相似度并不高,就会降低模型的推荐效果。

4 结语

本文在SVM 的基础上,针对普通App 不能主动推荐搜索结果的缺点,将遗传算法的全局参数寻优与SVM 的小样本最优解相结合,解决了微校园App 中二手物品的推荐困难和不准确性问题。初步的应用结果显示,本推荐模型无论是在准确率还是满意度方面都得到用户的认可。但本模型没有考虑物品的点击率和用户特征,后续的研究将一并考虑这些因素对模型进行优化,来进一步提高模型的适应性和推荐满意度。

猜你喜欢

适应度染色体变异
改进的自适应复制、交叉和突变遗传算法
变异
多一条X染色体,寿命会更长
为什么男性要有一条X染色体?
启发式搜索算法进行乐曲编辑的基本原理分析
真假三体的遗传题题型探析
能忍的人寿命长
变异的蚊子
病毒的变异
基于人群搜索算法的上市公司的Z—Score模型财务预警研究