APP下载

基于双偏好矩阵的B2B智能推荐研究与实践

2019-06-13张朝霞吴艳华赵正阳

铁道学报 2019年4期
关键词:类别矩阵协同

王 普,张朝霞,吴艳华,赵正阳

(1.中国铁道科学研究院集团有限公司 研修学院,北京 100081;2.中国铁路北京局集团有限公司 天津电务段,天津 300140;3.中国铁道科学研究院集团有限公司 电子计算技术研究所,北京 100081)

随着互联网、电子支付、大数据等技术的快速发展,各类电子商务平台逐步增多。电子商务的发展主要包括3个阶段:①基于电子数据交换EDI(Electronic Data Interchange)的电子商务阶段:20世纪60年代,出现了应用于企业间的EDI技术和银行间的电子资金转账EFT(Electronic Funds Transfer System,又称电子支付)技术作为电子商务应用的系统雏形;②基于互联网的电子商务阶段:以全球的互联网为架构,以交易双方为主体,以网上支付和结算为手段,以客户信息数据库为依托的一种新的商务模式迅速发展,这也是今天所说的电子商务;③智慧电子商务阶段:以主动、互动、用户关怀等多角度与用户进行深层次沟通的主动互联网营销模式出现,进一步满足了消费者的个性化需求。

电子商务平台的分类有多种,常用的包括企业对消费者B2C(Business-to-Customer)、企业对企业B2B(Business-to-Business)、消费者对消费者C2C(Customer-to-Consumer)等[1-2]。面向消费者(B2C、C2C)类的电商平台起步很早,如美国的亚马逊、eBay,中国的京东、中粮我买网、淘宝网等,平台架构和关键技术快速发展、逐步完善,已经进入智慧电子商务阶段,通过主动推送、实时更新、个性化推荐等方式提升消费者用户体验,提升用户黏度,实现精准营销。近年,以企业为背景的B2B类电商平台也逐步发展,如阿里巴巴、慧聪网、找钢网、易派客、国网商城等,这些平台也在探索运用大数据关键技术提升企业用户体验。企业用户的检索、浏览和购买等行为特征与个人用户差异较大,基于企业用户的企业背景特征开展B2B类电商平台智能推荐是其必然发展趋势。

1 国内外现状分析

文献[3]提出了推荐系统的定义,常用推荐算法主要包括协同过滤推荐、基于内容的推荐、基于二部图的推荐、基于关联规则的推荐、基于社交网络的推荐等[3-4]。由于算法原理和过程的侧重各有不同,上述推荐算法各有优劣,适用的典型应用场景也各不相同。总的来说,协同过滤推荐算法具有适用于个性化推荐、自动化程度高、处理复杂非结构化对象等优点,是最适用电商网站的推荐算法之一,其应用最为广泛[5-6]。

协同过滤算法可以分为三大类,分别为基于用户、基于产品和基于模型的协同过滤推荐算法[7]。文献[8-11]提出基于用户的协同过滤算法,通过目标用户的购买、浏览、评价等数据,找到相似用户群体并进行推荐的过程,也可以形象地描述为“人推人”。文献[12-13]基于产品的协同过滤算法,通过用户现有行为数据,计算目标产品与用户购买、浏览产品的相似度,从而将相似产品推荐给用户的过程,也可以形象地描述为“物推物”。文献[14-18]提出基于模型的协同过滤算法,其中包括了大量使用用户群组信息的推荐算法以及为解决电商冷启动问题而在文献[19-20]提出的改进方法。

但是专门针对B2B电商平台的推荐系统,很少有学者展开深入的研究。与面向消费者的平台不同,B2B电商平台的商品和用户,都具备独特的企业特征,如平台中的商品以企业特有和业务需求的商品为主,用户的搜素、浏览和购买行为与所属企业的经营范围相关等。铁路B2B电商平台(或招投标采购平台)以铁路企业的特殊需求商品为主,供货商和采购用户都具有典型的铁路企业属性,如某些企业只采购工务专业设备,因此其用户的专属业务领域特征明显。针对B2B电商平台的这些独有特征,提出智能推荐的总体架构,并基于平台数据构建具有企业属性的双偏好矩阵协同过滤算法,提高B2B电商平台智能推荐系统的适用性和精度。

2 B2B大数据分析平台

2.1 平台总体架构

目前,大多数B2B电商平台都是基于传统的B/S架构进行设计和开发的。随着平台用户、商品、成交量等的不断增加,数据量和商品检索、成交时间等都将受技术架构和软硬件条件的限制。大数据技术的成熟应用,有效地解决了以上问题[8]。因此,提出B2B电商大数据分析平台总体架构,如图1所示。

图1 电商大数据分析平台总体架构

在电商平台应用系统外搭建大数据分析平台,用于提升智能推荐、用户画像等数据分析应用的处理效率。B2B电商大数据分析平台,除存储的数据和数据分析应用与B2C/C2C类的电商平台略有差异,其原理和处理流程等均相同。电商大数据分析平台实现数据采集、清洗、存储、建模和分析等功能。基于硬件基础设施,平台中存储了用户信息、商品库、用户行为数据、商品交易数据、企业特征数据等。同时,为了提升数据的存储和处理速度,满足算法引擎的分析需求,不同类型特征的数据分别存储于数据仓库和分布式文件系统,并按照数据分析主题进行数据建模。

一般的电商平台应用系统主要包括三大类页面,分别是首页、搜索页和详情页。电商大数据分析平台,可为应用系统的不同页面、不同模块提供不同的推荐策略,或者是组合策略。以下简要列举某铁路电商平台网站各页面不同模块的推荐策略,见表1。

表1 不同板块的推荐策略

2.2 平台智能推荐引擎

电商大数据分析平台中最核心的是智能推荐引擎。B2B电商大数据分析平台与面向个人消费者类的B2C平台间,在推荐引擎中存在局部差异,B2B电商推荐引擎中需要考虑供需双方的企业特征信息,从而进一步提升推荐引擎的精准度。在智能推荐引擎基本架构中,增加了企业特征数据、特征提取、特征转换,以及特征向量2(企业-类别特征向量)的构建过程,如图2所示。

图2 B2B智能推荐引擎基本流程

加入企业特征数据的智能推荐引擎,其中的协同过滤算法的向量矩阵,由原来的一个用户-商品矩阵,变为用户-商品和企业-类别两个矩阵,因此提出了双偏好矩阵协同过滤推荐算法。

3 双偏好矩阵协同过滤推荐算法

双偏好矩阵协同过滤推荐算法是为了进一步满足B2B电商平台智能推荐的精准度而提出的,增加了平台中供货企业和采购企业的特征信息。接下来就双偏好矩阵的构建,以及协同过滤推荐算法的求解流程进行详细描述。

3.1 企业-类别&用户-商品双偏好矩阵

双偏好矩阵由两层构成,内层为企业-类别矩阵,以数组的方式存储了企业和商品类别的打分信息;外层为用户-商品矩阵,分别存储了用户与企业的对应关系、类别与商品的对应关系。如图3所示。

图3 企业-类别&用户-商品双偏好矩阵

企业-类别矩阵的构建,实现以企业为单位与商品类别间建立打分矩阵。一方面,有针对性地提升了B2B电商平台的推荐准确度,不仅可以为用户推荐企业需要的产品,更能推荐适合当前用户岗位需求的产品;同时也保证同一企业的不同用户对企业整体购买历史、企业最新需要等有更好的了解。

从矩阵存储的角度来说,传统的用户-商品矩阵采用协同过滤算法求解的过程中,通常采用k近邻算法对矩阵中的k个邻居进行检索,但因为用户-商品矩阵中的用户和商品数量都十分巨大,导致矩阵稀疏搜索时间成本高,同时可能存在算法在使用初期找不到相应的k个邻居。企业-类别矩阵的构建可以压缩原来存储用户-商品矩阵的空间,使得原本稀疏的矩阵变得密集,从而缩小搜索范围,去除矩阵中的噪声[6]。

3.2 双矩阵协同过滤算法

双矩阵协同过滤算法是协同过滤算法在实际应用中的一种改进。协同过滤算法基于物以类聚、人以群分的思想,对每个用户建立用户-商品矩阵,其表示如下。

若设用户集合U共有n个用户,使用集合{u1,u2,…,un}表示;商品集合I共有m个商品,使用集合{i1,i2,…,im}表示。若对用户ui以购买次数、浏览次数为评分标准建立评分矩阵,则用户ui对商品ik的评分为

S(ui,ik)=λB(ui,ik)+γL(ui,ik)

( 1 )

式中:B、L分别为购买、浏览的统计次数;λ、γ为浏览购买在评分中的权重参数。通过统计次数加和乘以权重参数可得到用户ui对商品ik的偏好评分S(ui,ik),即Sik。对所有用户的所有偏好进行计算可得用户商品偏好评分矩阵Sui,样例数据见表2。

表2 用户-商品评分矩阵

在用户-评分矩阵当中,可能出现如表2中u3用户所示的情况,即新用户对所有商品都不存在任何评分偏好。故用户-商品偏好矩阵无法对u3用户进行相应的推荐。但在B2B电商场景中,由于用户除自身属性外,用户所在企业的所有用户也构成一个具有共同属性特征的用户集合,可用C表示。同理,如表2中i2商品所示,由于i2为新上架商品,故不存在用户对i2商品具有偏好评分,但用户对与i2所属类别相同商品具有评分,故对于用类别商品可用集合K进行表示。结合式( 1 )所示评分计算方法、用户所在企业集合C、商品所属类别集合K,可计算企业-类别偏好评分矩阵,推导过程如下:

首先,设有企业Ci,商品分类Kj,那么对于企业Ci的用户Cip对商品分类Kj的商品Kjq可使用式( 1 )计算出对应偏好评分向量为

S(Cip,Kjq)=λB(Cip,Kjq)+γL(Cip,Kjq)

( 2 )

则企业Ci对Kj的整体评分SCiKj为

( 3 )

使用式( 3 )对企业集合C、商品所属类别集合K进行计算后可得企业-类别评分矩阵SCK,样例见表3。

表3 企业-类别评分矩阵

经过上述推导得到用户-商品、企业-类别两种偏好矩阵,但对于如何选择矩阵进行具体推荐仍存在问题,为解决这一问题,进一步引入用户活跃度、商品热度两种概念。用户ui的活跃度即用户ui对于所有商品的浏览、购买次数,若用户浏览、购买次数较多,则可评价为活跃用户,用户活跃度可表示为

( 4 )

在式( 4 )中可通过δ控制权重决定f(ui)的最终结果,并且通过式( 5 )判定用户是否为活跃用户。

( 5 )

在得到用户-商品或企业-类别评分矩阵后可使用相似度计算方法去计算各个用户或企业间的相似度。关于相似度的计算方法有很多种,如余弦相似度、欧几里德距离度量、皮尔逊相关系数等。本文采用皮尔逊相关系数,用式( 6 )来计算用户&企业间的相似程度。

( 6 )

式中:X,Y分别为两个用户、两个企业间的偏好向量。通过式( 6 )可以计算出两个向量皮尔逊相关系数,从而可获得各个用户间和企业间的偏好相似度。通过偏好相似度的值,找到与目标用户、企业偏好相似度排名靠前的k名用户、企业,根据其用户-商品和企业-类别评分矩阵的结果得到所推荐的商品序列。

3.3 双偏好矩阵协同过滤算法流程

以双偏好矩阵为基础构建的协同过滤算法基本流程如图4所示。

双偏好矩阵协同过滤算法中,最关键的3个步骤为收集用户-商品和企业-类别偏好、类型/商品相似度计算、关联类别的查找。

图4 双偏好矩阵协同过滤算法流程

3.3.1 收集用户/企业偏好

用户偏好获取是推荐系统的关键,偏好获取的准确性直接影响推荐系统的准确性。作为B2B电商大数据分析平台的关键算法之一,偏好的获取主要利用MapReduce中的Word-Count方法,对用户浏览、访问、购买商品的次数进行统计。同时,为防止过量浏览、访问所造成数据分布偏移,对次数进行归一化处理,并使用算法对数据进行过滤,去除次数较小的数据噪声,防止偏好矩阵过于稀疏。

3.3.2 类型/商品相似度计算

根据用户/企业的浏览、访问、购买商品行为分析得到其偏好后,可构建用户-商品和企业-类别评分矩阵。在对用户-商品和企业-类别进行检索的过程中,通过相似度计算方法判断用户间、企业间的相似程度,从而给用户&企业推荐相似操作行为的用户&企业所关注的商品&类别。

3.3.3 关联类别的查找

B2B电商平台中的商品通常归属于固定的类别。同时,类别的划分可以包含多个层级,通常情况下类别划分越详细越容易推荐出偏好的商品。但同时由于某些商品很难归于固定的类别,因此也为类别层级的划分带来困难。很多特定的类别或商品,与同一层级或上几层级中的特定类别或商品存在一定的关联关系,如成品与配件间的关系、产品与耗材间的关系。

4 算法实践及对比

双偏好矩阵协同过滤算法,适用于带有企业特征的B2B电商平台。阿里巴巴、国网商城、慧聪网、找钢网、易派客等电商平台均为B2B类型的平台;也有很多铁路电商平台以经营铁路物资为主,货主方和采购方均为企业,都属于B2B类型的电商平台。这类平台均可采用双偏好矩阵思想构建其评分矩阵,实现企业商品的精准推荐。本文以某铁路电商平台为例,对双偏好矩阵协同过滤算法进行应用实践。算法实践的过程主要包括数据获取、数据整合建模、算法应用和结果验证等。

4.1 数据获取

获取某铁路电商平台的数据,基础数据表主要包括用户表、企业表、商品表、类别表等,动态数据表主要包括用户浏览记录表、用户购买记录表等。以下仅以用户表、商品表、用户浏览记录表、用户购买记录表为例。

(1)用户表:主要记录用户自身相关信息,选取了用户ID、企业ID等属性。

(2)商品表:某铁路电商平台商品表包含约13万条记录,每条记录包含商品ID、商品名称、商品单价、商品折扣价、折扣率、所属类别ID等属性。

(3)用户浏览记录表:平台中存储的用户浏览记录表主要包括用户ID、所属企业ID、商品ID、商品名称、浏览开始时间、浏览结束时间等属性。

(4)用户购买记录表:平台中存储的用户购买记录表主要包括用户ID、所属企业ID、商品ID、商品名称、商品数量、成交单价、成交总额、成交时间、运费、折扣等属性。

4.2 双偏好矩阵初始化

交易系统数据导入大数据分析平台过程中,需对导入的数据进行数据清洗,剔除或修改错误的字符、编码,修复格式错误、数据不完整等。同时,需在平台中构建新的数据分析计算模型。导入数据见表4。

表4 导入数据示例

注:商品名称中“*”“**”为商标。

采用Word-Count方法对偏好矩阵进行初始化。根据用户对商品的浏览、访问、购买频次等,对用户-商品矩阵进行初始化,根据企业对类别的购买频次等,对企业-类别矩阵进行初始化。初始化示例见表5、表6。

表5 用户-商品评分矩阵示例

表6 企业-类别评分矩阵示例

偏好矩阵的存储可通过数据字典的方式保存,其中key存储用户-商品或企业-类别,value为对应的偏好评分。由于用户对商品、企业对类别的偏好差异性,评分矩阵数值差异较大,为了防止对推荐产生的偏差、推荐结果过于收敛等情况的出现,算法计算过程中对评分进行归一化处理。

4.3 算法实践

算法实践过程中,需建立相应的整合表,用来保存用户ID-企业ID、商品ID-类别ID、商品ID-商品名称、类别ID-类别名称等不同映射,从而使得计算和推荐的返回结果更加直观。

通过电商系统获得访问用户ID,检索得到用户所在企业ID,以及相应的偏好矩阵等。读取偏好矩阵皮尔逊相关系数进行运算,生成偏好相似度矩阵。根据用户所在企业相似度推荐商品类别,再根据商品类别推荐商品。需要注意的是,类别当中不需要排除已经浏览(购买)过的类别,而商品中需要去除掉已经浏览(购买)过的商品,防止重复推荐。

4.4 结果对比

与传统的协同过滤算法、KNN算法相比,双矩阵协同过滤算法在准确率、召回率、覆盖率和新颖度[21]等方面具有明显优势。以某铁路电商平台中相关数据为基础,过滤掉没有购买记录的商品以及没有企业信息的用户,使用数据的80%作为训练集,20%作为测试集进行测试,并分别就准确率、召回率、覆盖率和新颖度进行对比。

4.4.1 准确率

准确率是推荐算法当中的最能体现算法性能的指标,计算公式为

( 7 )

式中:Lu为用户u喜欢的商品序列;Bu为推荐返回的商品序列。

同理,整体评分为

( 8 )

对于准确率的评价,采用推荐序列长度为1、5、10的三种推荐序列,对比了三种算法的准确率。对比结果如图5所示。

图5 准确率测试

通过结果统计图可知,双矩阵协同过滤在整体准确率上远高于协同过滤或KNN。为进一步对比对于新用户推荐的效果,在测试集中,选取用户活跃程度较低的用户进行测试。测试结果如图6所示。

图6 不活跃用户准确率测试

由图6可见,对于无购买浏览行为的用户,协同过滤或KNN很难对其进行推荐,TOP1准确率不足10%,TOP10准确率几乎接近0%。但双矩阵协调过滤算法,利用企业的特性,对于不活跃用户TOP1准确率约为38.8%,TOP10准确率虽有所下降,但仍可大于10%,超过了普通的协同过滤算法。

4.4.2 召回率

与准确率相对的测试指标为召回率,召回率指在推荐列表中能推荐出多少用户喜欢的商品,计算方法为

( 9 )

与准确率相同,Lu为用户u喜欢的商品序列,Bu为推荐返回的商品序列。同样可计算整体召回率结果为

(10)

对三种算法的测试结果如图7所示。

图7 召回率测试

如图7可见,双矩阵协同过滤算法与另外两种算法的召回率指标并无明显差异。说明,双矩阵协同过滤算法在提升准确率的同时,并不会损失召回率的性能。

4.4.3 覆盖率

覆盖率指的推荐算法中推荐的所有商品在全部商品当中的比例,主要考虑到冷门商品的推荐。覆盖率的计算公式为

(11)

式中:C为覆盖率;n为商品种类;Lu为对用户u的推荐列表。

测试结果如图8所示。

图8 覆盖率测试

由于双矩阵协同过滤算法加入了商品类别的计算,所以对于分类当中的冷门商品同样有概率出现在用户的推荐列表中。可见对于KNN与协同过滤算法覆盖率均不足60%,也就是有40%以上商品没有出现在推荐列表中。但双矩阵协同过滤算法将覆盖率提升至79.2%,相比于另外两种算法,优势明显。

4.4.4 新颖度

新颖商品是指用户没有采购或浏览过的商品。通过推荐用户可能喜欢的新分类中的商品,达到提升商品新颖度的目的。新颖度指标计算方法为

(12)

式中:Bu为算法为用户u推荐的商品集合;Ku为用户喜欢的商品分类集合;Lu为用户u喜欢的商品集合。

同理,整体新颖度评分为

(13)

按式(13)对三种算法进行测试,结果如图9所示。

图9 新颖度测试

通过图9可以看出,对于传统协同过滤、KNN等算法,新颖度较低只有不到20%,而双矩阵协同过滤,由于对于不活跃用户同样可推荐出用户喜好类型的商品,所以对于整体新颖度相比另外两种算法提升十分明显。

5 结束语

双矩阵协同过滤算法能够有效地解决电商平台冷启动、数据量少等问题。现有的各种电商平台都是基于用户-物品的关系进行推荐,无法体现B2B电商平台的企业特征。双偏好矩阵协同过滤算法针对B2B电商平台的特点,在某一企业可能存在多个用户的情况下,研究电商个性化推荐系统的构建,该推荐系统既保证推荐了企业需要的商品,又加入了用户个人的偏好。此外,对于点击量较小且与其他用户关联较少的用户,因为相似企业间有共同偏好存在,也可以推荐出对应类别,从而加强对长尾数据的适应性。同时,由于存在企业-类别偏好属性,对于新用户可直接进行推荐。对于新添加的商品,虽然没有用户对应的打分以及行为可获得,但仍可以使用企业-类别矩阵进行推荐。

在电商平台推荐系统上分别对协同过滤算法、KNN算法、双矩阵协同过滤算法,在准确率、召回率、覆盖率及新颖度4个推荐算法常用测试指标进行对比测试。双矩阵协同过滤算法相比于其他算法在准确率方便有了很大提升的同时,并没有降低召回率。此外对于覆盖率、新颖度都有了质的提升,对于推荐算法整体性能与用户体验都有较大的改进。在时间上,我们在单机单核为2.9 GHz的电脑上执行,在数据量为56万条的情况下,计算时间约为0.4 ms。

在算法实践的过程中,如果能将商品类别的划分更明确、更合理,则用户体验可进一步得到提升。在后续的其他模块中,随着数据量的增多,机器学习、深度学习相关的算法将更有助于提升计算速度。利用深度学习的算法,能够实现准确预测用户想法,做到个性化、智能化。

猜你喜欢

类别矩阵协同
输入受限下多无人机三维协同路径跟踪控制
家校社协同育人 共赢美好未来
论陶瓷刻划花艺术类别与特征
蜀道难:车与路的协同进化
一起去图书馆吧
“四化”协同才有出路
初等行变换与初等列变换并用求逆矩阵
矩阵
矩阵
矩阵