一种数据处理的方法和装置与流程

文档序号:12596498阅读:174来源:国知局
一种数据处理的方法和装置与流程
本申请属于应用于数据处理
技术领域
,尤其涉及一种数据处理的方法和装置。
背景技术
:随着信息技术的发展,用户在浏览网上信息时,推荐系统可以根据用户的喜好推荐相应的物品。其中,协同过滤算法是推荐系统中最常用的方法之一,其基本思想是具有相似兴趣的人会喜欢相同的物品,相似的物品也会被同一个人喜欢,其中最重要的是计算用户之间、或者物品之间的相似度。在现有公开的计算方法中,一般是利用(用户,物品,喜好度)这种三元组来构造用户物品之间的稀疏矩阵,再利用传统的相似度计算方法,如Cosine(余弦)夹角,EuclideanDistance(欧几里得距离)等方法,来计算稀疏矩阵中任意两个向量之间的相似度。但是,该方法存在一定的缺陷。以计算用户之间的相似度为例,由于用户向量内包含的物品之间都是独立的,它们的关联关系无法体现在相似度计算之中,如在网页浏览中,用户习惯性通过A页面跳转到B页面,或者学计算机的和学金融的人在查找资料时,都可能会通过本专业的资料进而查找到统计方面的书籍,只有书籍的信息,我们没办法很好的区分这两类人。而且,对于计算稀疏矩阵的相似度来说,现有很多的改进方案是通过填充矩阵中缺失值来解决,一般方法有均值填充、簇内平滑、预测值填充等,这些方法也存在简单粗糙或者运算量大的问题,最主要的是,协同过滤的算法要解决的问题就是填充缺失值,也就是用户对未知物品的喜好度,这种在计算前就填充上,必然会导致计算的偏差,继而再循环迭代运算,从而导致运算量迅速增大。技术实现要素:有鉴于此,本申请的目的在于提供一种数据处理的方法,以解决现有技术中对相似度进行判断准确度低的问题。一种数据处理的方法,包括:获取用户的访问信息,根据所述用户的访问信息以有向图形式构建用户访问路径图,所述用户访问路径图中包括节点、有向边、节点的访问量以及所述有向边的访问量,所述有向边表示其连接的两个节点间的访问顺序;从所述用户访问路径图中选择任一起始节点作为出发点,经过所述用户访问路径图中所有的节点,依据预设算法依次计算有向边的权重,所述起始节点为只有出度的节点;将所述有向边连接的两个节点加入预设队列;如果计算出的权重不小于预设值,将当前计算权重的有向边作为频繁项加入预设的已选集合;依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量,计算得到至少两个用户之间的相似度。上述的方法,优选的,还包括:如果计算出的权重小于预设值,将当前计算权重的有向边加入废弃集合。上述的方法,优选的,还包括:依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量建立维度矩阵。上述的方法,优选的,所述从所述用户访问路径图中选择任一起始节点作为出发点,经过所述用户访问路径图中所有的节点,依据预设算法依次计算有向边的权重,包括:按照用户访问路径图中任一起始节点对应的任意有向边的方向,获取以所述起始节点为起点对应的有向边为第一有向边,计算所述第一有向边的权重;基于所述第一有向边的终点对应的节点不是所述用户访问路径图的结束节点,获取第二有向边,所述第二有向边的起点对应的节点与所述第一有向边的终点对应的节点相同;判断所述第二有向边的终点对应的节点是否在所述预设队列中;如果是,沿所述第二有向边的方向回溯至所述第二有向边的起点对应的节点,并从所述预设队列中删除所述第二有向边的终点;如果否,依据预设算法计算所述第二有向边的权重;基于所述第一有向边的终点对应的节点为所述用户访问路径图的结束节点,从所述预设队列中删除所述第一有向边的终点对应的节点,所述结束节点为只有入度的节点。上述的方法,优选的,所述依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量,计算得到至少两个用户之间的相似度,包括:从所述维度矩阵中获取任一维度向量,计算所述维度向量的均值和方差,所述维度向量包括节点和/或者有向边;依据所述维度向量的均值和方差计算得到所述维度矩阵的稀疏度的第一因素;依据所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度。上述的方法,优选的,所述依据所述维度向量的均值和方差计算得到所述维度矩阵的稀疏度的第一因素,包括:依据第一用户的所述维度向量的均值以及第二用户的所述维度向量的均值,计算得到第一用户和第二用户在所述维度向量的均值相似度;依据第一用户的所述维度向量的方差以及第二用户的所述维度向量的方差,计算得到第一用户和第二用户在所述维度向量的波动相似度;依据所述均值相似度和所述波动相似度,计算得到所述维度矩阵的稀疏度的第一因素;具体采用如下公式:其中,simm(i,j)表示所述维度矩阵的稀疏度的第一因素,avgi表示向量i的均值,avgj表示向量j的均值,vari表示向量i的方差,varj表示向量j的方差;其中,表示第一用户和第二用户在所述维度向量的均值相似度,表示第一用户和第二用户在所述维度向量的波动相似度。上述的方法,优选的,所述依据所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度,包括:预设调节系数;依据所述调节系数、结合所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度;具体采用如下公式:SIM(i,j)=α·simm(i,j)+(1-α)·simt(i,j)其中,SIM(i,j)表示两个用户之间的相似度,simm(i,j)表示所述维度矩阵的稀疏度的第一因素,simt(i,j)表示所述维度矩阵的稀疏度的第二因素,α表示调节系数。一种数据处理装置,包括:构建模块,用于获取用户的访问信息,根据所述用户的访问信息以有向图形式构建用户访问路径图,所述用户访问路径图中包括节点和有向边,节点的数值表示所述节点的访问量,所述有向边表示节点间的访问顺序,所述有向边的数值表示所述访问顺序的数量;权重计算模块,用于从所述用户访问路径图中选择任一起始节点作为出发点,经过所述用户访问路径图中所有的节点,依据预设算法依次计算有向边的权重;节点处理模块,用于将所述有向边连接的两个节点加入预设队列;有向边处理模块,用于判断计算出的权重是否小于预设值,并在计算出的权重不小于预设值,将当前计算的有向边作为频繁项加入预设的已选集合;相似度计算模块,用于依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量,计算得到至少两个用户之间的相似度。上述的装置,优选的,所述有向边处理模块还用于:如果计算出的权重小于预设值,将当前计算的有向边加入废弃集合。上述的装置,优选的,还包括:矩阵模块,用于依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量建立维度矩阵。经由上述的技术方案可知,与现有技术相比,本发明提供了一种数据处理的方法,包括:获取用户的访问信息,根据所述用户的访问信息以有向图形式构建用户访问路径图,所述用户访问路径图中包括节点、有向边、节点的访问量以及所述有向边的访问量,所述有向边表示其连接的两个节点间的访问顺序;从所述用户访问路径图中选择任一起始节点作为出发点,经过所述用户访问路径图中所有的节点,依据预设算法依次计算有向边的权重,所述起始节点为只有出度的节点;将所述有向边连接的两个节点加入预设队列;如果计算出的权重不小于预设值,将当前计算权重的有向边作为频繁项加入预设的已选集合;依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量,计算得到至少两个用户之间的相似度。该方法中,根据用户的访问信息以有向图的形式构建用户访问路径图,并结合了用户范围路径图中有向边,考虑物品之间的顺序关系,增加了不同用户间的相似度计算的维度,让近者愈近,疏者愈疏,有助于增加相似度计算的准确性,并且考虑到维度中向量的均值与波动性,相比于传统计算稀疏矩阵相似度的方法,大幅度提高计算的效率,同时保证计算结果的准确性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请提供的一种数据处理方法实施例1的流程图;图2为本申请提供的一种数据处理方法实施例1中的用户访问路径图;图3为本申请提供的一种数据处理方法实施例2的流程图;图4为本申请提供的一种数据处理方法实施例3的流程图;图5为本申请提供的一种数据处理方法实施例3中的用户访问路径图;图6为本申请提供的一种数据处理方法实施例4的流程图;图7为本申请提供的一种数据处理方法实施例5的流程图;图8为本申请提供的一种数据处理方法实施例6的流程图;图9为本申请提供的一种数据处理装置实施例1的结构示意图;图10为本申请提供的一种数据处理装置实施例2的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示的为本申请提供的一种数据处理方法实施例1的流程图,该方法包括以下步骤:步骤S101:获取用户的访问信息,根据用户的访问信息以有向图形式构建用户访问路径图;其中,所述用户访问路径图中包括节点、有向边、节点的访问量以及所述有向边的访问量。首先,对用户访问物品的访问信息进行获取,该访问信息中包含访问的物品、访问该物品的访问量、用户的访问顺序、以及该访问顺序的访问量等,则基于该访问信息实现构建该用户访问路径图。具体的,在该用户访问路径图中,将该访问的物品以节点表示,访问该物品的访问量用节点旁边的数值表示,将该两节点间的访问顺序用有向边表示,该访问顺序的访问量有向边旁边的数值表示。具体实施中,该用户访问路径图中,允许回路的存在。具体实施中,该节点表示用户访问的页面。例如,在电商领域,该页面就是商品,在新闻领域,该页面就是文章。其中,用户访问路径图中根据是根据用户访问的顺序构建的,节点的数据和有向边的数据也是用户访问一次就加1。其中,该用户访问路径图中,每个节点的出度之和等于入度之和。其中,入度是指从其他节点进入该节点的访问方式,出度是指从该节点进入其他节点的访问方式。需要说明的是,该用户访问路径图中包含两种特殊的节点——起始节点和结束节点,其中,该起始节点是用户进行某次访问时访问的第一个物品(如页面),其只有出度没有入度;该结束节点是用户进行某次访问时访问的最后一个物品(如页面),其只有入度没有出度。如图2所示的为本实施例中提供的用户访问路径图,其中,该图中包括11个节点,采用圆圈表示,分别为ABCDEFGHIJK,节点间为有向边,表示了两个节点之间的访问顺序,用箭头表示,其中,按照访问顺序,从A节点能够分别访问D节点和E节点,且A节点的访问量为5,从A节点到D节点的访问顺序为3次,从A节点到E节点的访问顺序为2次;从B节点能够分别访问E节点和G节点,且B节点的访问量为7,从B节点到E节点的访问顺序为6次,从B节点到G节点的访问顺序为1次;从E节点能够访问F节点,且E节点的访问量为8,从E节点到F节点的访问顺序为8次;从D节点能够访问F节点,且D节点的访问量为3,从D节点到F节点的访问顺序为11次;从F节点能够分别访问H节点和G节点,且F节点的访问量为11,从F节点到H节点的访问顺序为7次,从F节点到G节点的访问顺序为4次;从C节点能够访问G节点,且C节点的访问量为1,从C节点到G节点的访问顺序为1次;从F节点能够访问I节点,且G节点的访问量为11,从G节点到J节点的访问顺序为11次;从G节点到H节点的访问顺序为11次,J节点的访问量为11,从H节点能够访问G节点、I节点和K节点,且H节点的访问量为18,I节点的访问量为2,从H节点到I节点的访问顺序为2次,从H节点到K节点的访问顺序为11次。例如,该图2中的E节点,入度为B节点到E节点的6次和A节点到E节点的2次,则其入度为2+6=8,出度为E节点到F节点的8次,入度与出度相同。又如,该图2中的G节点,入度为B节点到G节点的1次、F节点到G节点的4次、H节点到G节点的5次以及C节点到G节点的1次,则其入度为1+4+5+1=11,出度为G节点到I节点的11次,入度与出度相同。其中,该图2中,节点ABC作为用户访问路径图的起始节点,其只有出度,无入度;而节点IK作为用户访问路径图的结束节点,只有入度,无出度。需要说明的是,该用户访问路径图是根据一个用户的访问信息构建的,当有多个用户时,分别为每个用户构建一个与其对应的用户访问路径图。步骤S102:从所述用户访问路径图中选择任一起始节点作为出发点,经过所述用户访问路径图中所有的节点,依据预设算法依次计算有向边的权重;其中,该用户访问路径图中的起始节点为只有出度的节点,如图2中的ABC。相应的,在该用户访问路径图中选择一个起始节点作为出发点,按照访问顺序,经过该用户访问路径图中的所有节点,以实现计算该用户访问路径图中任意两个节点之间的有向边的权重。其中,该用户访问路径图中的有向边的权重为该有向边两端的节点之间的访问量,即访问次数。其中,当两个节点之间仅有一条有向边时该有向边的访问量就是该有向边的权重;两个节点之间包含至少两条有向边以及至少一个节点时,该至少两条有向边(或者成为多条有向边)的权重为其中任一条权重最小的有向边的权重。具体的,参考图2,单条有向边以F→G为例,节点F的访问量为11,但是从节点F跳转到节点G的只有4次,因此以4代表F→G的有向边的权重。具体的,参考图2,多条有向边以D→F→H→I为例,它是由多条有向边连接的多个节点,其中,D→F的支持度为3,F→H的支持度为11,H→I的权重为2,则该多条有向边的支持度为权重最小的有向边也就是H→I的权重2。需要说明的是,经过该用户访问路径图中所有的节点的具体过程,在后续实施例中会做详细说明,本实施例中不做详述。步骤S103:将所述有向边连接的两个节点加入预设队列;其中,该用户访问路径图中每一个节点都需要进行后续的相似度计算,因此,在通过有向边的方向经过所述用户访问路径图中所有的节点过程中,依次将每个有向边连接的两个节点加入预设队列中,以实现将该用户访问路径图中的所有节点加入预设队列中。步骤S104:如果计算出的权重不小于预设值,将当前计算权重的有向边作为频繁项加入预设的已选集合;需要说明的是,本申请中还以有向边的权重代表该有向边的支持度,当该支持度大于预设值时,则该有向边可以被定义为频繁项,即用户频繁访问该访问顺序。其中,该预设值是指支持度达到的最小数值,当该支持度达到该最小数值时,该有向边为频繁项,否则,支持度小于该最小数值时,该有向边为非频繁项。具体的,当该有向边的权重不小于该预设值时,则判定该有向边为频繁项,有较多次数的该访问顺序;当该有向边的权重小于该预设值时,则判定该有向边为非频繁项,该非频繁项有较少次数甚至为0的该访问顺序。相应的,当该有向边为频繁项时,将当前计算权重的该有向边作为频繁项加入预设的已选集合,以使得在后续步骤中基于该已选集合中的有向边进行计算相似度。具体实施中,如果计算出的权重小于预设值,则该有向边为非频繁项,用户使用该访问顺序的次数较少,其对整体的相似度并无影响,所以,将当前计算权重的有向边加入废弃集合,该废弃集合中的有向边不再后续的计算中使用。。具体实施中,可以在执行本申请中的方案之前预设队列、已选集合以及废弃集合,在执行步骤S103-104时,直接将节点加入队列、将频繁项加入已选集合即可,无需临时设置。步骤S105:依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量,计算得到至少两个用户之间的相似度。其中,该预设队列中的节点为该用户访问路径图中的所有节点、该已选集合中的有向边为频繁项,其是被频繁访问的路线,结合该节点被访问的次数以及该有向边代表的访问顺序的次数,计算至少两个用户之间的相似度。具体实施中,可以对任意两个用户之间的相似度进行计算。其中,可以从该预设队列中选择任一维度(如节点或者有向边),计算两个用户对该维度进行访问的相似度,具体的,首先计算两个用户对于该维度的方差和均值;进而根据该方差和均值以及预设的算法计算得到本申请中提出的计算维度矩阵的稀疏度的第一因素;并将现有技术中计算相似度的方法作为第二因素,结合该第一因素计算得到该两个用户的相似度。后续实施例中会针对该计算过程进行详细说明,本实施例中不做详述。需要说明的是,由于现有技术中不考虑该有向边,在本申请中,增加了该有向边以及其访问量进行相似度的计算,考虑物品之间的顺序关系,增加了不同用户间的相似度计算的维度,让近者愈近,疏者愈疏,有助于增加相似度计算的准确性。综上,本实施例提供的一种数据处理方法中,以有向图的形式构建用户访问路径图,并结合了用户范围路径图中有向边,考虑物品之间的顺序关系,增加了不同用户间的相似度计算的维度,让近者愈近,疏者愈疏,有助于增加相似度计算的准确性,并且考虑到维度中向量的均值与波动性,相比于传统计算稀疏矩阵相似度的方法,大幅度提高计算的效率,同时保证计算结果的准确性。如图3所示的为本申请提供的一种数据处理方法实施例2的流程图,该方法包括以下步骤:步骤S301:获取用户的访问信息,根据用户的访问信息以有向图形式构建用户访问路径图;步骤S302:从所述用户访问路径图中选择任一起始节点作为出发点,经过所述用户访问路径图中所有的节点,依据预设算法依次计算有向边的权重;步骤S303:将所述有向边连接的两个节点加入预设队列;步骤S304:如果计算出的权重小于预设值,将当前计算权重的有向边作为频繁项加入预设的已选集合;其中,步骤S301-304与实施例1中的步骤S101-104一致,本实施例中不做赘述。步骤S305:依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量建立维度矩阵;其中,该预设队列中的节点为该用户访问路径图中涉及的全部节点;该已选集合中的有向边为频繁项,其是被频繁访问的路线;该节点的数值则表征了该节点被访问的次数,该有向边的数值表征了该有向边代表的访问顺序被访问的次数,这些信息表征了用户对于网络页面访问的习惯等相关信息。则,将该预设队列中的节点、已选集合中的有向边、节点的数值以及有向边的数值建立维度矩阵,以实现将该多个信息在维度矩阵中展示。具体的,每一节点、该已选集合中的每个有向边均作为一个向量进行建立维度矩阵。如下表一所示的,为一个维度矩阵,item1-3表示3个节点,item1→item2和item1→item3表示两个频繁项。其中数据分别代表用户(user)访问物品的次数,该物品包含节点和频繁项,空白值代表没有用户访问该物品。表1item1item2item3item1→item2item1→item3user145343user283user3454具体实施中,该维度矩阵中可以存储多个用户的预设队列中的节点、已选集合中的有向边、节点的访问量以及有向边的访问量等信息。具体实施中,由于该多个用户的预设队列中的节点、已选集合中的有向边、节点的访问量以及有向边的访问量等信息按照维度矩阵形式保存,使得在后续计算用户之间的相似度时,可以直接从该维度矩阵中按照向量获取相应的数据,提高了数据处理的速度。需要说明的是,现有技术中仅考虑节点的访问次数,而不考虑该有向边,在本申请中,增加了该有向边以及其数值进行相似度的计算,考虑物品之间的顺序关系,增加了不同用户间的相似度计算的维度,让近者愈近,疏者愈疏,有助于增加相似度计算的准确性。步骤S306:依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量,计算得到至少两个用户之间的相似度。其中,步骤S306与实施例1中的步骤S105一致,本实施例中不做赘述。综上,本实施例提供的一种数据处理方法中,还包括:依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量建立维度矩阵。采用该方法,在后续计算用户之间的相似度时,可以直接从该维度矩阵中按照向量获取相应的数据,提高了数据处理的速度。如图4所示的为本申请提供的一种数据处理方法实施例3的流程图,该方法包括以下步骤:步骤S401:获取用户的访问信息,根据用户的访问信息以有向图形式构建用户访问路径图;其中,步骤S401与实施例1中的步骤S101一致,本实施例中不做赘述。步骤S402:按照用户访问路径图中所述出发点对应的任意有向边的方向,获取以所述出发点为起点对应的有向边为第一有向边,计算所述第一有向边的权重;其中,该用户访问路径图中可以有多个起始节点,将任意起始节点作为出发点,则,以任一出发点作为起点,以该出发点对应的任一条有向边的方向为方向,获取一有向边作为第一有向边,并对该第一有向边的权重进行计算。具体实施中,该用户访问路径图中有多个起始节点时,可以依次选择每个起始节点为出发点进行有向边权重的计算,直至该用户访问路径图中的有向边全部计算完成。其中,计算有向边的权重的方法如实施例1中所述,本实施例中不做赘述。步骤S403:判断所述第一有向边的终点对应的节点是否是所述用户访问路径图的结束节点;其中,判断达到该用户访问路径图的结束节点具体可以为:判断该节点是否有出度,如果有,则继续获取该节点对应的出度相应的有向边并计算其权重;如果没有,则该节点为用户访问路径图的结束节点。其中,判断该第一有向边对应的节点不是用户访问路径图的结束节点时,继续进行判断下一有向边,执行步骤S404-407;否则进行相应的回溯处理,执行步骤S408。步骤S404:获取第二有向边;其中,所述第二有向边的起点对应的节点与所述第一有向边的终点对应的节点相同。具体的,将该第一有向边的终点对应的节点定义为第一节点,则该第二有向边是该第一节点的出度,该第一有向边为该第一节点的入度。步骤S405:判断所述第二有向边的终点对应的节点是否在所述预设队列中;需要说明的是,具体实施中,经过一个有向边时,就将其起点对应的节点和终点对应的节点加入预设队列。将该第二有向边的终点对应的节点定义为第二节点,如果之前经过该第二节点时,该第二节点已经加入该预设队列中,为防止出现重复情况,则需要判断该第二有向边的终点是否已经在该预设队列中,如果在的话,则需要从该预设队列中删除该第二节点,以防出现重复添加的情况,并计算该第二有向边的权重,执行步骤S406-407;如果没有的话,则直接对该第二有向边的权重计算,执行步骤S407。步骤S406:沿所述第二有向边的方向回溯至所述第二有向边的起点对应的节点,并从所述预设队列中删除所述第二有向边的终点;其中,该回溯是指按照第二有向边的方向回溯到上一节点,该上一节点为该第二有向边的起点对应的节点,也就是该第一有向边的终点对应的节点。其中,可以定义第一有向边的终点对应的节点为第一节点。具体实施中,在回溯到该第一节点后,可以继续对该第一节点的出度进行查找,如果有除该第二有向边的第三有向边时,则对该第三有向边开始进行步骤S404及其后续步骤,直至该第一节点无其他有向边,最终实现对该用户访问路径图中有向边进行权重计算。步骤S407:依据预设算法计算所述第二有向边的权重;其中,计算该第二有向边的权重的方法,与前述步骤S402中计算第一有向边的权重的方法一致,本步骤不再赘述。步骤S408:从所述预设队列中删除所述第一有向边的终点对应的节点;其中,该第一有向边的终点对应的节点为该用户访问路径图的结束节点时,定义该第一有向边的终点对应的节点为第一节点,该第一节点无出度,从该预设队列中删除该第一节点,以防止后续重复在预设队列中添加该第一有向边终点对应的节点。如图5所示的本实施例中提供的用户访问路径图,其中,该图中包括11个节点,采用圆圈表示,分别为ABCDEFGHIJK,节点间的为有向边,表示了两个节点之间的访问顺序,用箭头表示,其中,按照访问顺序,从A节点能够分别访问D节点和E节点,且A节点的访问量为5,从A节点到D节点的访问顺序为3次,从A节点到E节点的访问顺序为2次;从B节点能够分别访问E节点和G节点,且B节点的访问量为7,从B节点到E节点的访问顺序为6次,从B节点到G节点的访问顺序为1次;从E节点能够访问F节点,且E节点的访问量为8,从E节点到F节点的访问顺序为8次;从D节点能够访问F节点,且D节点的访问量为3,从D节点到F节点的访问顺序为11次;从F节点能够分别访问H节点和G节点,且F节点的访问量为11,从F节点到H节点的访问顺序为7次,从F节点到G节点的访问顺序为4次;从C节点能够访问G节点,且C节点的访问量为1,从C节点到G节点的访问顺序为1次;从F节点能够访问I节点,且G节点的访问量为11,从G节点到J节点的访问顺序为11次;从G节点到H节点的访问顺序为11次,J节点的访问量为11,从H节点能够访问G节点、I节点和K节点,且H节点的访问量为18,I节点的访问量为2,从H节点到I节点的访问顺序为2次,从H节点到K节点的访问顺序为11次。其中,在本实施例中,该当前队列为A→D→F→H→G→J,在该图5中采用虚线框出该当前队列,J节点的下一节点H节点在预设队列中,则回溯到节点G,从队列中删除节点J,节点J删除后,该G节点没有出度,则回溯到节点H,再从队列中删除节点G,那么下一条边即边H→I,本图中,从G→J的权重是11,百分比若取0.3,则最小支持度是11*0.3≈3,而H→I的权重为2小于3,该H→I为非频繁项,将其加入废弃集合,该节点H无出度,则再次进行回溯。步骤S409:将所述有向边连接的两个节点加入预设队列;步骤S410:如果计算出的权重小于预设值,将当前计算权重的有向边作为频繁项加入预设的已选集合;步骤S411:依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量,计算得到至少两个用户之间的相似度。其中,步骤S409-411与实施例1中的步骤S103-105一致,本实施例中不做赘述。综上,本实施例提供的一种数据处理方法中,包括:按照用户访问路径图中任一出发点对应的任意有向边的方向,获取以所述出发点为起点对应的有向边为第一有向边,计算所述第一有向边的权重;基于所述第一有向边的终点对应的节点不是所述用户访问路径图的结束节点,获取第二有向边,所述第二有向边的起点对应的节点与所述第一有向边的终点对应的节点相同;判断所述第二有向边的终点对应的节点是否在所述预设队列中;如果是,沿所述第二有向边的方向回溯至所述第二有向边的起点对应的节点,并从所述预设队列中删除所述第二有向边的终点;如果否,依据预设算法计算所述第二有向边的权重;基于所述第一有向边的终点对应的节点为所述用户访问路径图的结束节点,从所述预设队列中删除所述第一有向边的终点对应的节点。采用该方法,能够对用户访问路径图中的每个有向边的权重计算,并简化预设队列中的节点,防止出现重复节点。如图6所示的为本申请提供的一种数据处理方法实施例4的流程图,该方法包括以下步骤:步骤S601:获取用户的访问信息,根据用户的访问信息以有向图形式构建用户访问路径图;步骤S602:从所述用户访问路径图中选择任一起始节点作为出发点,经过所述用户访问路径图中所有的节点,依据预设算法依次计算有向边的权重;步骤S603:将所述有向边连接的两个节点加入预设队列;步骤S604:如果计算出的权重小于预设值,将当前计算权重的有向边作为频繁项加入预设的已选集合;步骤S605:依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量建立维度矩阵;其中,步骤S601-605与实施例2中的步骤S301-304一致,本实施例中不做赘述。步骤S606:从所述维度矩阵中获取任一维度向量,计算所述维度向量的均值和方差;其中,所述维度向量包括节点和/或者有向边。其中,该维度矩阵中包含多个维度向量,如节点和有向边。如实施例2中表1中所示的,维度向量包括item1-3、item1→item2和item1→item3共5个。具体实施中,从该维度矩阵中获取一个维度向量进行计算至少两个用户关于该维度向量的均值和方差。需要说明的是,具体计算过程中,是以任意两个用户为计算的对象,计算其关于维度向量的均值和方差。步骤S607:依据所述维度向量的均值和方差计算得到所述维度矩阵的稀疏度的第一因素;其中,预设有稀疏度的算法,依据步骤S606计算得到的维度向量的均值和方差,计算该维度矩阵的稀疏度的第一因素。需要说明的是,在该维度矩阵中加入有向边(即节点的顺序)这一维度后,该矩阵的稀疏度会变得更大,不同用户之间的区分度更大。步骤S608:依据所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度。需要说明的是,该维度矩阵的稀疏度的第二因素,一般为根据现有技术中采用的常规相似度计算方法,如协同过滤算法。具体的,传统计算相似度的协同过滤算法,包括:有Cosine夹角,PearsonCorrelation(皮尔逊关联度),EuclideanDistance距离,CooccurrenceCount(共现次数),CityBlock(曼哈顿距离),Loglikelihood(对数似然相似度)等。在本申请中提供的计算用户相似度中,结合维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,相对于现有技术中采用的常规相似度算法中仅考虑该维度矩阵的稀疏度的第二因素,增加了维度矩阵的稀疏度的第一因素这一因子,提高了计算的精度。综上,本实施例提供的一种数据处理方法中,所述依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量,计算得到至少两个用户之间的相似度,包括:从所述维度矩阵中获取任一维度向量,计算所述维度向量的均值和方差,所述维度向量包括节点和/或者有向边;依据所述维度向量的均值和方差计算得到所述维度矩阵的稀疏度的第一因素;依据所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度。采用该方法,具体说明了如何基于该维度矩阵结合预设的所述维度矩阵的稀疏度的第二因素计算至少两个用户之间的相似度,与现有技术相比,增加了维度矩阵的稀疏度的计算因素,提高了计算的精度。如图7所示的为本申请提供的一种数据处理方法实施例5的流程图,该方法包括以下步骤:步骤S701:获取用户的访问信息,根据用户的访问信息以有向图形式构建用户访问路径图;步骤S702:从所述用户访问路径图中选择任一起始节点作为出发点,经过所述用户访问路径图中所有的节点,依据预设算法依次计算有向边的权重;步骤S703:将所述有向边连接的两个节点加入预设队列;步骤S704:如果计算出的权重小于预设值,将当前计算权重的有向边作为频繁项加入预设的已选集合;步骤S705:依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量建立维度矩阵;步骤S706:从所述维度矩阵中获取任一维度向量,计算所述维度向量的均值和方差;其中,步骤S701-706与实施例4中的步骤S601-606一致,本实施例中不做赘述。步骤S707:依据第一用户的所述维度向量的均值以及第二用户的所述维度向量的均值,计算得到第一用户和第二用户在所述维度向量的均值相似度;其中,计算得到两个用户关于该维度向量的均值后,基于二者的均值,计算二者关于该维度向量的均值相似度。具体的,avgi表示向量i的均值,avgj表示向量j的均值。其中,量i表示第一用户的该维度向量,向量j为第二用户的该维度向量。具体的,表示第一用户和第二用户在所述维度向量的均值相似度。其中,i和j的均值越相近,该项值越接近于1,两者越相关。例如,两个用户对物品的打分的均值相近,说明这两个用户的宽容度相接近,他们都倾向于给物品一个高分或低分。步骤S708:依据第一用户的所述维度向量的方差以及第二用户的所述维度向量的方差,计算得到第一用户和第二用户在所述维度向量的波动相似度;其中,计算得到两个用户关于该维度向量的方差后,基于二者的方差,计算二者关于该维度向量的波动相似度。具体的,vari表示向量i的方差,varj表示向量j的方差。其中,向量i表示第一用户的该维度向量,向量j为第二用户的该维度向量。具体的,表示第一用户和第二用户在所述维度向量的波动相似度。其中,向量i的方差,也代表i的波动情况,i和j的波动越相似,该项值越接近于1,两者越相关。例如,用户在服装、电器、奢侈品、图书、食品等不同领域有不同的打分情况,若另一个用户的打分方差与之相接近,表示两者在宏观上对不同的领域的波动情况相似。步骤S709:依据所述均值相似度和所述波动相似度,计算得到所述维度矩阵的稀疏度的第一因素;具体采用如下公式:其中,simm(i,j)表示维度矩阵的稀疏度的第一因素,avgi表示向量i的均值,avgj表示向量j的均值,vari表示向量i的方差,varj表示向量j的方差;其中,表示第一用户和第二用户在所述维度向量的均值相似度,表示第一用户和第二用户在所述维度向量的波动相似度。需要说明的是,考虑到向量的均值与波动性,相比于传统计算稀疏矩阵相似度的常规方法中仅考虑节点,大幅度提高计算的效率,同时保证计算结果的准确性步骤S710:依据所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度。其中,步骤S710与实施例4中的步骤S608一致,本实施例中不做赘述。综上,本实施例提供的一种数据处理方法中,所述依据所述维度向量的均值和方差计算得到所述维度矩阵的稀疏度的第一因素,包括:依据第一用户的所述维度向量的均值以及第二用户的所述维度向量的均值,计算得到第一用户和第二用户在所述维度向量的均值相似度;依据第一用户的所述维度向量的方差以及第二用户的所述维度向量的方差,计算得到第一用户和第二用户在所述维度向量的波动相似度;依据所述均值相似度和所述波动相似度,计算得到所述维度矩阵的稀疏度的第一因素。采用该方法,依据两个用户的维度向量的均值计算均值相似度,依据两个用户的方差计算波动相似度,并进一步依据该均值相似度和波动相似度计算该维度矩阵的稀疏度。如图8所示的为本申请提供的一种数据处理方法实施例6的流程图,该方法包括以下步骤:步骤S801:获取用户的访问信息,根据用户的访问信息以有向图形式构建用户访问路径图;步骤S802:从所述用户访问路径图中选择任一起始节点作为出发点,经过所述用户访问路径图中所有的节点,依据预设算法依次计算有向边的权重;步骤S803:将所述有向边连接的两个节点加入预设队列;步骤S804:如果计算出的权重小于预设值,将当前计算权重的有向边作为频繁项加入预设的已选集合;步骤S805:依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量建立维度矩阵;步骤S806:从所述维度矩阵中获取任一维度向量,计算所述维度向量的均值和方差;步骤S807:依据所述维度向量的均值和方差计算得到所述维度矩阵的稀疏度的第一因素;其中,步骤S801-807与实施例4中的步骤S601-607一致,本实施例中不做赘述。步骤S808:预设调节系数;其中,该调解系数与维度矩阵的稀疏度呈正相关,即稀疏度越大,该调解系数越大,该稀疏度起到的作用越大。具体的,该调解系数取值为(0,1)。步骤S809:依据所述调节系数、结合所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度。具体采用如下公式:SIM(i,j)=α·simm(i,j)+(1-α)·simt(i,j)其中,SIM(i,j)表示两个用户之间的相似度,simm(i,j)表示维度矩阵的稀疏度的第一因素,simt(i,j)表示维度矩阵的稀疏度的第二因素,α表示调节系数。需要说明的是,simt表示传统计算相似度的方法,simm表示考虑矩阵稀疏性而新加入的项,合起来的SIM表示新的相似度计算方法。具体实施中,该simm(i,j)的具体公式参考实施例5。其中,该协同过滤算法采用Cosine夹角为例,说明本申请中该相似度的算法。其中i和j表示两个用户向量,n为向量的维度,k∈[0,n-1]。具体实施中,可利用调解系数、维度矩阵的稀疏度、协同过滤算法的准确度,三者构建训练样本,以准确度为预测列,利用传统的线性回归进行建模分析。综上,本实施例提供的一种数据处理方法中,所述依据所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度,包括:预设调节系数;依据所述调节系数、结合所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度。采用该方法,与现有技术中的常规相似度计算方法结合、以系数调节两者之间的关系,提高了计算的精度。上述本发明提供的实施例中详细描述了一种数据处理方法,对于本发明的数据处理方法可采用多种形式的装置实现,因此本发明还提供了一种数据处理装置,下面给出具体的实施例进行详细说明。如图9所示的为本申请提供的一种数据处理装置实施例1的结构示意图,该装置包括以下结构:构建模块901、权重计算模块902、节点处理模块903、有向边处理模块904和相似度计算模块905;其中,该构建模块901,用获取用户的访问信息,根据所述用户的访问信息以有向图形式构建用户访问路径图,所述用户访问路径图中包括节点、有向边、节点的访问量以及所述有向边的访问量,所述有向边表示其连接的两个节点间的访问顺序;其中,该权重计算模块902,用于从所述用户访问路径图中选择任一起始节点作为出发点,经过所述用户访问路径图中所有的节点,依据预设算法依次计算有向边的权重,所述起始节点为只有出度的节点;其中,该节点处理模块903,用于将所述有向边连接的两个节点加入预设队列;其中,该有向边处理模块904,用于判断计算出的权重是否小于预设值,并在计算出的权重不小于预设值,将当前计算权重的有向边作为频繁项加入预设的已选集合;优选的,所述有向边处理模块还用于:如果计算出的权重小于预设值,将当前计算权重的有向边加入废弃集合。其中,该相似度计算模块905,用于依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量,计算得到至少两个用户之间的相似度。优选的,所述从所述用户访问路径图中选择任一起始节点作为出发点,经过所述用户访问路径图中所有的节点,依据预设算法依次计算有向边的权重,包括:按照用户访问路径图中任一起始节点对应的任意有向边的方向,获取以所述起始节点为起点对应的有向边为第一有向边,计算所述第一有向边的权重;基于所述第一有向边的终点对应的节点不是所述用户访问路径图的结束节点,获取第二有向边,所述第二有向边的起点对应的节点与所述第一有向边的终点对应的节点相同;判断所述第二有向边的终点对应的节点是否在所述预设队列中;如果是,沿所述第二有向边的方向回溯至所述第二有向边的起点对应的节点,并从所述预设队列中删除所述第二有向边的终点;如果否,依据预设算法计算所述第二有向边的权重;基于所述第一有向边的终点对应的节点为所述用户访问路径图的结束节点,从所述预设队列中删除所述第一有向边的终点对应的节点,所述结束节点为只有入度的节点。综上,本实施例提供的一种数据处理装置中,根据用户的访问信息以有向图的形式构建用户访问路径图,并结合了用户范围路径图中有向边,考虑物品之间的顺序关系,增加了不同用户间的相似度计算的维度,让近者愈近,疏者愈疏,有助于增加相似度计算的准确性,并且考虑到维度中向量的均值与波动性,相比于传统计算稀疏矩阵相似度的装置,大幅度提高计算的效率,同时保证计算结果的准确性。如图10所示的为本申请提供的一种数据处理装置实施例2的结构示意图,该装置包括以下结构:构件模块1001、权重计算模块1002、节点处理模块1003、有向边处理模块1004、相似度计算模块1005和矩阵模块1006;其中,该构件模块1001、权重计算模块1002、节点处理模块1003、有向边处理模块1004、相似度计算模块1005的结构功能与实施例1中的相应结构功能一致,本实施例中不做赘述。其中,该矩阵模块1006,用于依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量建立维度矩阵。优选的,所述依据所述预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量,计算得到至少两个用户之间的相似度,包括:从所述维度矩阵中获取任一维度向量,计算所述维度向量的均值和方差,所述维度向量包括节点和/或者有向边;依据所述维度向量的均值和方差计算得到所述维度矩阵的稀疏度的第一因素;依据所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度。优选的,所述依据所述维度向量的均值和方差计算得到所述维度矩阵的稀疏度的第一因素,包括:依据第一用户的所述维度向量的均值以及第二用户的所述维度向量的均值,计算得到第一用户和第二用户在所述维度向量的均值相似度;依据第一用户的所述维度向量的方差以及第二用户的所述维度向量的方差,计算得到第一用户和第二用户在所述维度向量的波动相似度;依据所述均值相似度和所述波动相似度,计算得到所述维度矩阵的稀疏度的第一因素;具体采用如下公式:其中,simm(i,j)表示维度矩阵的稀疏度的第一因素,avgi表示向量i的均值,avgj表示向量j的均值,vari表示向量i的方差,varj表示向量j的方差;其中,表示第一用户和第二用户在所述维度向量的均值相似度,表示第一用户和第二用户在所述维度向量的波动相似度。优选的,所述依据所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度,包括:预设调节系数;依据所述调节系数、结合所述维度矩阵的稀疏度的第一因素以及预设的所述维度矩阵的稀疏度的第二因素,计算得到至少两个用户之间的相似度;具体采用如下公式:SIM(i,j)=α·simm(i,j)+(1-α)·simt(i,j)其中,SIM(i,j)表示两个用户之间的相似度,simm(i,j)表示维度矩阵的稀疏度的第一因素,simt(i,j)表示维度矩阵的稀疏度的第二因素,α表示调节系数。综上,本实施例提供的一种数据处理装置中,建立包含预设队列中的节点、所述已选集合中的有向边、所述节点的访问量以及所述有向边的访问量的维度矩阵,在后续计算用户之间的相似度时,可以直接从该维度矩阵中按照向量获取相应的数据,提高了数据处理的速度。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。对所提供的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所提供的原理和新颖特点相一致的最宽的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1