1. 引言
在互联网经济的快速发展下,推荐系统是其中的重要研究课题之一 [1] ,其应用范围广泛,包括旅游 [2] 、虚拟电商 [3] 、云购物和社交媒体 [4] 、股票等。京东、腾讯、亚马逊、阿里巴巴、抖音等企业都已经成功地在其网站或产品中使用了推荐系统。通过调研分析互联网上的大多数网站都可以归类于个性化网站(各大电商网站和知识网站等)。这些电子商务网站商品数量关系更注重网站内容的构建,而忽略了用户的检索意图,从而导致用户体验较差。研究如何去提高检索质量是个性化电子商务网站优化研究的重点 [5] 。
推荐算法分为三类 [6] :基于内容的推荐 [7] [8] 、基于知识的推荐和协同过滤(CF)推荐 [9] 。CF算法在推荐系统中具有重要的应用 [10] ,其使用程度最高。该算法通过挖掘用户的历史行为数据来研究用户的偏好 [11] ,然后根据不同的偏好对用户进行分组,并向他们推荐相似偏好的项目(商品和网站) [12] 。
尽管对推荐系统的研究很多,但目前还没有在个性化电子商务网站中得到广泛应用。如果一些个性化电商网站想要实现用户意图的预测性推荐功能,需要做的工作是十分复杂的。并且发现一些不同的电子商务网站之间存在一定的重复度,大量网站之间的重复性工作导致了各种资源的浪费。对此,我们对个性化的电子商务网站的结构特征进行分析,提出了一种基于增量改进的CF的推荐算法,其中电子商务网站中的每个可访问链接都可以被视为CF模型中的一个项目。
与传统的基于CF算法的推荐系统相比,ICFR模型具有以下优点:(a) 适用范围更广。此推荐系统新定义了文章中CF算法的元素(项目和评分),避免了要求用户明确对项目进行评分的局限。(b) 增量更新算法实现了计算量的减少。系统根据用户的浏览行为自动更新用户的评分数据。(c) 该推荐系统的功能的模块化。电子商务网站开发人员可以在不更改或增加大量的代码的情况下实现基于ICFR的个性推荐。
2. 相关工作
协同过滤
基于用户的CF推荐算法是使用率最高、反馈最好的方法之一 [13] 。近年来,基于用户的CF推荐算法在许多推荐系统中得到了广泛的应用 [14] ,并且有许多研究对CF推荐算法改进。Jia等人 [15] 开发了一种基于用户的旅游景点推荐系统。CF算法在旅游领域得到有效应用。
CF算法是使用具有相似偏好的群体来推荐所需的信息。CF算法的核心是计算相似度 [16] 。为了识别具有相似倾向的用户,CF推荐系统中常用的相似度计算方法有三种:皮尔逊相关系数(PCC) [17] 、余弦相似度和修正余弦相似度 [18] 。
皮尔逊相关系数计算公式定义如下:
(1)
其中,
看作两个用户i和j共同评论的集合,c是这个集合的元素,
表示用户i对元素c的评价,
和
分别为用户i和j的评价平均值。
余弦相似度、修正余弦相似度计算公式定义如下:
(2)
其中,
分别是用来分别表示元素的向量。
(3)
其中,U看作两个用户i和j共同评论过的用户的集合,
表示用户u对元素
的评价,
为用户的评价平均值。
CF推荐系统中的主要计算量是相似度计算过程。传统的CF算法主要在静态离线设置中表现最佳 [19] 。由于数据在不断变化和更新,系统需要一次重新计算当前用户与其他用户之间的相似度。因此,Thomas等人 [20] 设计了共聚类算法的增量和并行版本,并用它来构建一个高效的实时CF框架。Guo Kehua等人 [21] 提出了一种基于用户间相似性增量更新的可伸缩性问题解决方法,并提供了高质量推荐的潜力。
3. 系统模型及问题描述
3.1. 推荐系统模型
Figure 1. Architecture and work process of ICFR
图1. ICFR的结构和工作流程
图1显示了服务器的架构结构和工作流程,通过处理用户的访问行为向用户端推荐合适的项目列表并增量更新数据。该过程主要由3个部分组成:(1) 用户行为信息获取与规范化,(2) 项目推荐过程,(3) 增量更新计算。
在ICFR算法中,我们首先在用户端获取用户端信息(账户、用户端物理地址、附加需求等)用以识别当前用户。并且将用户的浏览行为(用户浏览时间、收藏夹)均记录在网站日志中,间接衡量用户对网页的偏好程度,从而用于用户项矩阵的建立(如图1(a))。然后,服务器启动由CF算法实现的推荐过程。通过计算相似度矩阵,从用户–物品矩阵得到用户–用户相似度矩阵。当前用户的偏好可以通过k近邻算法从与当前用户更相似的其他用户中预测出来(如图1(b))。在当前用户退出网站或关闭与服务器的当前会话时,系统将分析网站日志并将提取的数据规范化为用户对项目的评分。然后,采用增量更新算法对历史数据进行更新(如图1(c))。ICFR实现工作的流程如图1所示。
3.2. 用户信息获取
ICFR模型采用CF算法来预测用户偏好。在CF算法中,用户、物品和评分是用户–物品矩阵的三个关键元素。传统上,我们简单地将某一类容易区分的事物视为“物品”,而“评分”则直接来源于用户评分。但在ICFR模型中,我们使用隐式评分的方法来衡量用户对物品的兴趣程度。
我们在CF算法中重新定义了“item”,将网站中所有可访问的链接都作为“item”元素,并不区分是首页、栏目或者内容页的链接。
定义3.1:
项目集(IS):给定一个网站
具有W可访问的链接,且
满足:
(4)
其中:
1)
是网站W中任意一个可访问的链接,且
。
2)
是连续的恒等式。
定义“rating”的获取方法是ICFR体系中项目外的另一个重要部分。目前,CF算法中的两种主要的评分模型是显性评分和隐式评分。依赖于在电子商务网站的使用中用户不需要对项目进行评分,但是用户在网站浏览时的行为与他们的兴趣密切相关,我们选用隐式评分模型,通过从网络日志中收集用户的网站浏览行为数据,并将数据量化到一定的值范围作为用户对项目的评分。
一般来说,用户的浏览行为包括浏览次数、页面滚动时间、收藏书签、收集等动作。从网页日志中提取到用户的浏览行为数据后,我们将其量化到一定的数值范围。在ICFR模型中,我们可以预先在系统中提供一个规则类型的用户行为列表。我们假设有
类型的用户行为预先存储在一组
中(
,
)。身份是行为的唯一标识符号,
表示数据类型(布尔值或数值),而
暂时是空值。此外,
的值由开发人员根据自己的需要所确定。
在ICFR模型中,用户集US被定义为
,满足
(其中
是每个用户的独特标志,client代表了用户或其他符号信息)。假设用户u在一段时间内向服务器发出请求,因此我们可以分析网站日志并从中提取一组用户行为。
定义3.2:
用户行为集:
,一组用户的一组行为满足:
其中:
1)
的BS在设置是从网站日志中提取的。
2) S表示用户访问过的项目数。
3)
分别表示用户或用户端和项目的身份。
每个用户只能为一个项目打分,因此,用户行为集Γ中的
进行归一化。在归一化过程中,我们分别处理用户行为的两种数据类型,归一化算法为表1所示。
Table 1. Normalization algorithm program flow
表1. 归一化算法程序流程
3.3. 推荐算法
UBCF和IBCF是推荐算法的两个主要算法,适合不同的应用场景,但它们的思想相似。UBCF与IBCF的不同点:(1) 目的不同。(2) 建议的多样性。(3) 用户特征对算法的影响。在本文工作中,考虑到个性化电子商务网站中存在大量的商品项目和内容更新频率高的特点,对比UBCF和IBCF的不同算法之间的差异与适用性,采用UBCF算法,系统根据用户的共同兴趣向用户提供推荐。相似度的计算和最近邻的寻找是UBCF算法的两个主要工作。ICFR的推荐过程如图2所示。
Figure 2. Process of recommendation system in the server
图2. 服务器中推荐系统过程
此外,推荐过程中所需的数据集
由前一部分获得的。用户项矩阵
由
构建。在UIM中,列表示项目,行表示用户。其中N为用户数量,W为项目数量,
表示用户i对项目j的评分,结构如下式(5)所示:
(5)
用户或商品项目之间的相似性计算是UBCF的关键步骤。在ICFR模型中,选用PCC作为计算用户间相似度的方法。但是,在传统CF推荐系统中使用PCC方法,缺少对于用户之间共同评分的重要性的考虑。本文采用了一种改进的PCC方法解决共同评分的占比问题。
传统的PCC公式定义如下:
(6)
其中
代表的项集用户
共同评价,即
,
。在式(6)的基础上,我们在其中加入了普通额定值的权重因子CW。
。
表示用户对所有网页的贡献率之和。
表示用户
和用户
的物品的总和。计算公式如下:
(7)
(8)
因此,改进的PCC相似度公式表示为
(9)
计算所有用户之间的相似度值后,得到用户–用户的相似度矩阵(user-user similarity matrix, UUSM),其记录了每两个用户之间的相似度值,如下所示:
(10)
k邻域和基于阈值的邻域是解决当前用户的最近邻寻找的问题的两种常用方法。对比两种算法的特点,考虑ICFR中可能的冷启动问题,本文采用k邻域算法,通过算法选择当前用户的最近邻。将NNV赋值为邻的个数,
作为暂存在的用户,最近邻的集为
作为输出结果表示当前用户最近的邻。最后,给出了以下公式对UUSM中的空白评分的比例实现预测:
(11)
其中
代表了用户
所对应项
预测的比例,
代表所有用户
的平均比例。
对于当前的用户
贡献率,我们已经为那些用户尚未评分的项目填写了空白评分。通过对集合
进行降序排列,推荐项目列表RIL定义为
。
3.4. 增量更新计算
对于CF算法的可扩展性作为研究CF算法所面临的巨大挑战之一。传统CF算法上,如果UIM矩阵发生一些变化,则需要重新计算整个UUSM矩阵,这个过程的时间复杂度很高。因此,本文使用增量更新去计算程序在用户与服务器关闭当前会话时的触发。假设用户
在浏览
网站
时间后,关闭了会话,在
访问
网站时,在网络日志中记录了该网站的
访问行为。可以计算出
所对应的分数
并把它们表示成一个集合
,其中
表示用户
对项目
的归一化评分。基
于
,通过增量更新计算算法直接更新了用户–项目UIM矩阵和用户–用户UUSM相似度矩阵。其中UIM矩阵容易被所更新的新评分集
影响。通过公式(9)来计算用户之间的新的相似度与其他用户之
间的相似度
。其中公式(9)分解为四个因素:
,
,
设
分别表示更新后的分解因子,则更新后的相似度值
应为:
(12)
由式(6)和式(9)可以看出,
中的元素值,随着
和
的变化而变化。所以我们定义了3个集合,它们是
、
、
,其中(
,
,
) (
)。这3个集合的变化是增量更新计算的关键因素,有两种情况可能发生:
1)
和
基于这个条件,我们可以得到在
和UUSM中值是没有变化。
2)
和
,这表示在
的所有项目在此之前没有被
评价过。然而
在
的变化,
。
(13)
额外的存储空间来存储高速缓存因子计算方法如下表2所示。
尽管增量更新法计算当前用户与其他用户之间的相似度的时间复杂度为Ο(n),与总更新法时间几乎相同,该方法相比所具有的优势:(1) 降低了计算密度。(2) 将增量更新计算分为四种情况,与TUM相比,计算量更少。
Table 2. Cache factor algorithm flow
表2. 高速缓存因子算法流程
4. 实验结果
4.1. 实验
为了评估性能,我们基于ICFR模型实现了一个场景,服务器端模拟了一个普通的电子商务网站平台。在模拟过程中,我们从真实电子商务网站抓取近1500条电商信息,分别注册910个用户作为CF算法的项目集和用户集。项目集包含来自三个级别的网页的链接,可以访问主页、专栏或内容页,其中每个链接都被视为一个项目。将ICFR方法应用于电子商务网站个性化服务时,存在CF推荐算法面临冷启动问题。为了缓解这一问题,随机生成了910个用户的一些访问日志,并构造了用户项矩阵和用户相似度矩阵。其中的访问网站日志并不是完全随机的。根据链接的文本信息将所有项目分成8个主题,并让每个用户对其中一个主题存在偏好。规定了用户访问行为的评分范围归一化为0~5。为了比较,基于以下推荐准确率和时间成本标准ICFR模型的性能评价。
4.2. 推荐系统的准确性
ICFR模型中推荐的准确性是通过推荐列表中每个结果的期望来估计的。因此,将推荐准确率定义为:
(14)
其中,count是推荐结果的个数,
表示用户对项目的期望,其范围为
。
在ICFR模型中,预测评分中当前用户的邻域的数量会在很大程度上影响准确率。然后,计算推荐列表中第一个
的accuracy,其中
表示从开始计算的推荐列表中的结果个数。举例说明了
在不同
的变化时accuracy的情况如下图3所示。
由图3可以得到两个主要结论:
1) 当
不变时,随着
的增大,accuracy先不变化,但
继续增大时,accuracy从某一点开始减小。
2) 当
较小且不变时,accuracy几乎是相同的,但随着
增大到一定值后,accuracy随着
的增加而增加。
Figure 3. Accuracy of different
图3. 不同
的准确性
考虑到增加
导致更多的计算量的影响。在模拟环境中,我们设置的
的值为12。在接下来的实验中,
保持相同的值12,
设为120。
4.3. 时间成本评估
本实验比较了IUM和TUM的时间成本。在使用增量更新计算时分析了四种情况。单个增量更新过程的时间消耗
包括两个用户之间的相似性计算时间和其他处理过程的时间。其定义如下:
(15)
其中,
为相似度计算时间,满足:
(16)
其中,
为ci情况发生的时间,
为ci情况发生的频率。
对不同的
和
关系设定进行时间成本实验分析,我们假设所有元素在
都来于
,(a) Case2,
。(b) Case3,
。(c) Case4,
。其结果如图4所示。
(a)
时的时间成本
(b)
时的时间成本(c)
时的时间成本
Figure 4. Time cost in IUM
图4. IUM时间成本
实验结果从图4中可以得知,当Case1时,
。通过对比分析,发现在Case2的情况时时间成本是最大,远远大于Case3和Case4两种情况,在Case4中
和
的关系所进行设定时的时间成本为最小。
Figure 5. Time cost comparison between IUM and TUM
图5. IUM和TUM的时间成本对比实验图
另一个时间成本对比实验是IUM和TUM在ICFR模型中的时间成本对比实验。ICFR中的IUM只需要计算当前用户的相似度信息。但是在TUM中,需要更新整个相似矩阵。因此,在上述两种实验中进行了9种不同的更新过程。实验结果如图5所示。
从图5可以发现,使用TUM方法在不同的更新状态下所需要的时间成本变化明显,第3种更新状态的情况所需要时间最长,而使用IUM方法在不同的更新状态下所需要的时间成本为大致相等,呈现为较低的时间成本现象。通过对两种不同的方法对比分析TUM花费的时间远远超过IUM,后者约占前者的10.3%。在本实验所使用的IUM方法通过时间成本估计衡量性能是远远优于TUM的性能。
通过两组不同的时间成本估计实验,对本文所构建的ICFR模型中所使用方法与参数设置的合理性进行充分的证明。
5. 结论及未来工作
本文提出了一种电子商务网站的推荐系统模型——ICFR。通过基于用户的协同过滤算法的选择实现模型的构建并且应用于电子商务网站的推荐应用中。对UBCF算法中所涉及主要元素(用户、商品、评分)的重新定义;本文介绍了如何将UBCF算法应用于电子商务网站的推荐具体方案。该方案采用改进的PCC相似度算法计算用户之间的相似度;讨论UBCF更新机制,与传统的更新方法相比,该方法减少了推荐系统的计算量。所构建的基于增量改进的协同过滤的电商推荐系统——ICFR,通过模拟的电商平台对其模型进行实验结果其模型的效果拥有较高的准确性,可以高效的实现向不同偏好的用户推荐符合其偏好的商品和电子商务网站,实验证明本文提出的模型取得了满意的推荐效果。在未来的工作中,计划为协同过滤推荐算法寻找更好的增量更新策略。