英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料
电子商务中基于内容的自动推荐
摘要
电子商务中信息量的增长速度远远快于我们的处理能力。推荐系统运用知识发现技术来帮助人们找到他们真正想要的。然而,所有以前的方法都有一个重要的缺点:无法找到新添加的项目。本文基于流入集的概念,提出了一个支持向潜在用户自动推荐新项目的通用框架。提出了一种简单有效的索引结构和启发式信息检索技术算法,用于在高维数据集中搜索反向k近邻。实验结果表明,该方法优于以前的算法,有效地提高了性能。
1 简介
随着电子商务的快速发展及其日益普及的易用工具,世界正变得越来越全球化。但是,电子商务网站上惊人数量的新闻、广告和其他产品信息让我们觉得有必要找到一些新技术,可以大大减少无用信息,帮助我们筛选所有可用信息,找到对我们最有价值的信息。推荐修复系统是这些技术中的一种,通过识别可能符合每个用户口味或偏好的特定项目来筛选最有价值的信息。用于构建推荐系统的一些最广泛使用的技术包括协同过滤(CF)[1],关联规则发现[2],贝叶斯网络[3]和霍廷[4]等。不幸的是,所有这些现有的推荐系统方法都必须依赖于项目的访问记录或用户的使用历史,并且仅仅关注用户的当前需求,因此它们不可避免地具有一个明显的缺点:最近添加到网站的项目或页面无法被找到。因为这些新的项目或页面没有被访问的记录,没有来自用户的评级,数据挖掘算法仍然没有找到关系,这些都使得人们很难发现它们。这通常被称为“新项目问题”。潜在用户如何尽快找到这些新项目?如何及时向那些可能特别喜欢这张专辑的真正顾客推荐这张新专辑?实际上,每一天、每小时甚至每分钟都有许多新项目被添加到电子商务网站中。在这篇文章中,我们提出了一个解决这个问题的总体框架。探索了一种新的查询机制,自动地为那些可能有与该项目的内容特征相匹配的相似品味或兴趣的用户推荐新项目。
本文的其余部分组织如下:在第2章中阐述了我们研究的自动修复系统的总体框架及其关键组件。第3章给出了反向k最近邻的理论基础和索引树RkNN树的基本结构。在第4章我们报告了将新算法分别应用于不同高维数据集的实验结果。在第5节对论文进行了总结分析。
2新项目自动推荐系统框架
近年来,人们把更多的注意力放在用户的兴趣和爱好上,通过改进检索过程为用户提供更有意义、更合适的检索结果。在实际生活中,用户大多希望第一时间就能获取最新的相关信息。与类似于搜索代理的被动信息获取模型相比,本论文研究的主动信息获取模型可以为那些由于信息爆炸难以找到有效信息的人节省很多时间。自动推荐系统根据用户在互联网上访问相似内容的情况,将他们分成有相似偏好可能性的组。新项目的语义内容特征将被提取以便匹配特征向量数据库的格式。在将其添加到数据库后,我们提供了一种计算和检索新项目和用户群特征向量之间的相似性/距离的有效方法。实际上,这是一个寻找新项目“流入集”的过程,可以通过反向k近邻查询来完成。最后,该项目将被推荐给可能有与该项目的语义内容特征相匹配的相似品味或兴趣的用户。
图1. 基于内容检索的推荐系统架构
页面、文本、脚本和图像等都存储在一个大型数据库中。通过内容特征提取,这些信息被一系列将单个实例映射到高维的点的特征向量表示出来。
2.1 .从页面视图中提取语义特征
在网络应用程序中,页面视图是语义上有意义的实体,如项目。通过内容特征提取,每个页面浏览量p可以被表示为k维特征向量,其中k是在全局字典中从站点提取的特征的总数。特征向量中的每个维度代表页面浏览量内相应的特征权重。因此,页面视图的特征向量由下式给出:
;是页面视图的第个特征,
2.2 从用户行为中提取语义特征
我们采用了戴和巴马沙尔描述的用户交易数据库的特征提取方法。用户事务是每个用户会话中页面浏览量的相关子集。数据预处理准备个页面浏览量集合,和一个用户事务集合,其中(具有唯一标识符)是的一个子集。每个事务被视为页面浏览量参考空间上的一维向量:。是与业务中的页面浏览量相关联的权重,可以表示该pi重要性。权重可以通过多种方式来确定,以满足需求。内容挖掘可以使用相关联的页面浏览量持续时间的函数来捕捉用户对内容页面的兴趣。因此,所有用户事务的集合可以被视为一个的事务-页面浏览量矩阵,用表示。对于网站中的整个页面浏览量集合,我们有页面浏览量特征矩阵。然后,如果我们在事务中将每一个页面浏览量映射到一个或多个内容特征,则可以得到一个新的矩阵,其中。是一个k维特征向量空间且业务的第个特征权值,。因此,用户事务可以表示为内容特征向量,反映用户对特定概念或主题的兴趣。
2.3 .基于相似兴趣的用户聚类
在信息检索中聚类的使用基于聚类假设“紧密相关的事物往往与同一请求相关”。根据假设,如果在聚集相似用户和不相似用户方面做得很好,我们将提高推荐质量。基于以上矩阵,我们定义了用户之间相似性/距离的度量。假设和分别是用户甲和用户乙的交易特征矩阵。
距离
其中支持矩阵中的特征,即特征在矩阵中的出现频率与具有相同的含义。我们在建立索引结构的过程中完成了用户聚类,这将在下一节详细介绍。
图2 .基于交易相似性的用户聚类
2.4 用影响集的概念向用户群推荐新项目
最近邻问题是信息检索、多媒体系统、空间数据库和数据挖掘等实际工作应用和研究领域的一个重要课题。最近,越来越多的人开始关注它的反向形式,即所谓的“影响集”问题。反向k最近邻问题是找出数据集中所有将给定查询点作为其k最近邻之一的点[6]。这种情况会在找到受新开店地点影响的顾客群,或决定某个呼叫中心管理的服务范围等时出现。推荐系统将通知那些发现新添加的项目最相关的网络用户的子集。基于不同用户群的固有信息,我们只需以新项目的特征向量为查询向量,执行简单的反向k近邻查询,就可以完成向正确用户群推荐新项目。返回的结果是一组用户,他们具有与该项目的内容特征相匹配的相似品味或兴趣。接下来,我们将详细描述这一点。
3 反向k最近邻查询
首先,我们给出了这两个问题的形式定义。表示个特征向量集合,距离: 表示为第2.3小节中给出的相似性/距离测量函数。查询特征向量且查询参数。
定义1 的最近邻定义为:
定义2 的反向最近邻定义为:
值得注意的是可能是空的,也或者有一个或多个元素。
引理3
证明:这对于和的定义是显而易见的。
推论4 假设是和它的最近邻之间的距离,
证明:如果距离,那么是或者是的的一个纽带,根据定理1,是的,否则,不是的,反之亦然。
注意k最近邻和反向k最近邻不是对称的。也就是说,,反之亦然。
图3 .k最近邻和反向k最近邻不是对称的
根据定义1和2,。所以RkNN(q)将返回空的,或者具有k个或多于个元素。
3.1 .高维逆向k近邻查询面临的挑战
对于非常大规模的问题,传统的聚类技术精度和性能较差。因为在例如事务向量的典型应用中的特征数量通常是几十到几百个。一些类似于奇异值分解[10]的技术已被广泛用于增加密度和降低高维特征空间的维数。然而,在许多情况下,降维的结果仍然具有相当大的维数。其余维度都相对重要,这意味着任何有效的索引方法都必须保证对所有这些维度的良好选择性。
在高维空间中,随着维度的增长,的情况会复杂得多。[8]中的扩展属性变为“对于任何查询点q,将在二维数据空间中最多返回6个数据点,在三维空间中最多返回12个数据点。此外,这个数字将随着尺寸的增加呈指数增长。在Linfin;情况下,的基数在d维上至多为。随着维数的增加,RNN数呈指数级增加,这使得所有当前搜索的算法实际上对于更高维度来说都是不可行的,因为搜索空间的数量将非常大。此外,由于邻居和反向邻居不是直接对称的,高维查询的退出方法如叉树、虚拟文件和智商树不能直接适用于查询。
3.2 .RkNN树的结构
在上述研究的基础上,我们开发了,这是一种新的启发式索引技术,它基于一种简单而有效的算法来搜索高维数据集中的和。通过使用对数据集进行重组,并利用其在目录节点中的启发式信息来实现索引查询,我们可以在高维数据集上取得良好的实验性能。
图4 .树的结构
在树中,叶子结点是一个2元素向量,其中指的是维数据集中的特征向量,指的是从到数据集中其个最近邻居的距离。目录节点包含个形式的分支数组。是指树中其子节点的个点的数组。有两种情况:
- 如果指向叶子结点,则是包含该叶中所有数据节点的最小球体区域。。
- 如果指向一个目录节点,则。。
索引结构使用最小包围球而不是最小包围代表区域形状的矩形有两个原因。首先,查询的性能对区域直径很敏感。的直径比长。将数据点分布到较小的区域有助于减少区域重叠,提高查询性能。其次,球体的存储只有一个中心(1个数据类型)和一个半径(1个浮动类型),而矩形需要两个对角点(2个数据类型)来表示它。在高维数据空间中,前者通过节省大约一半的存储空间而使自己脱颖而出。
3.3 .存储和搜索策略
对于驻留在磁盘上的数据库,必须访问的块数被视为输入/输出量的度量,也是查询成本的度量。因此,当前对驻留在磁盘上的索引技术的研究主要集中在降低页面访问的成本上。磁盘访问的时间包括数据传输时间以及磁盘寻道时间,而事实证明磁盘寻道时间比前一次更昂贵,因此最小化页面访问并不会导致CPU响应时间的优化。在观察的基础上,我们采取了不同于以前的方法,将页面连续存储在同一层次的树中。也就是说,包括同一层次树中的节点在内的所有页面都将保存在连续的内存(物理)空间中。并利用连续存储策略的特性,将传统的深度优先遍历模式改为广度优先遍历模式。模式逐级遍历树,更好地利用磁盘缓冲区,获得更高的磁盘传输率。连续的页面可以被预取到磁盘缓冲区,以减少总线繁忙时对磁盘的物理访问次数。
我们根据用户代表的特征向量将所有用户一个接一个地插入树。在这个过程中,我们保留了每个节点的启发式信息,如等。一旦要求从树的根搜索某个查询向量的反向最近邻,该算法必须确定在当前目录节点下应该行进或修剪哪些分支。一个好的搜索策略的目的是将必须行进的节点数量减少到最少。最佳行进顺序不仅取决于从到每个从根到叶的的距离,还取决于的大小和每个子的布局。因此,在开始搜索之前,我们计算和当前节点的之间的,并生成一个,其点指的是根据这些排序的分支列表。然后,算法判断是否大于字段,如果是,则表示没有向量低于这个目录节点并将作为它的k个最近邻居。因此这个分支可以被修剪,并且它下面的所有节点都不会被移动。实验评估表明,这些策略可以显著提高搜索性能。
3.4 .反向近邻查询算法
算法1 反向最近邻查询算法
1:RkNNlarr;Phi;;
2:nlarr;| S |;
3: rknn_numlarr;0;
4:if current node p is a leaf node then
5: temp_k_dist=Dist(q,p);
6: if temp_k_distlt;=p.k_dist then
7: RkNN[rknn_num]=p;
8: rknn_num= rknn_num 1;
9: end if
10:end if
11:if current node d is a directory node then
12: genBranchList (q,branchList) //ABL
13: sortBranchList (branchList)
14: for i larr; 1,d.num do
15: temp_k_dist = MINDIST (q,d.bi.MBS)
16: if temp k dist le; d.bi.max_k_dist then
17: RkNNQuery(d.bi.child_ptr,q)
18: end if
19: end for
20: end if
请注意,个最近邻查询仍然可以像传统的[树7]一样被有效地容纳。
3.5 树的维护
树是动态的,可以增量更新。插入、删除和更新的过程可以通过几个和查询操作的简单组合来完成。我们先看插入项,当一个点被插入到生成的树中时。我们执行搜索操作来找到它的,并创建叶子结点需要的表单(,)。接下来,RkNN查询可以给我们受影响点的信息,即。对于每个,我们用每种形式的重新计算它的,并且它的辅助节点的字段和也需要调整到树的根。这可以通过与查询算法非常相似的方式来完成。最后,我们插入就像普通树一样。现在,我们把注意力转向删除。首先,我们找到目标点并将其从适当的叶L中删除。就像插入操作一样,中的那些受影响点必须被找到并重新计算它们的,并且相关的目录节点必须被调整。更新操作由两个步骤组成:删除,插入。
4 实验评估
由于在已发表的文献中没有给出其他反向k最近邻算法,我们选择了[6]中介绍的直接算法,该算法通过顺序扫描所有向量数据库来找到反向k最近邻,并确定那些使落入其预计算圆()的向量,也就是说,将作为它们的最近邻。我们进行了一系列实验来分析RkNN查询在不同维度和大小数据集下的响应时间和页面访问。所有实验都在运行Linux Ret Hat 9的奔腾4 @ CPU 1
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[18765],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。