确定最大项对的方法及装置的制造方法_4

文档序号:9235440阅读:来源:国知局
,确定的最大项对为项对(1,2) 及项对(2, 3),项对(1,2)对应的余弦相似度为0. 66,项对(2, 3)对应的余弦相似度为0. 61。 由于满足根据更新的第一集合更新最大项对的条件,将各个最大项对对应的余弦相似度中 的最小余弦相似度对应的项对(2, 3)替换为更新的第一集合中的最大余弦相似度上界值对 应的项对(1,3),得到更新的最大项对为项对(1,2)及项对(1,3)。
[0149] 在重新根据各个最大项对更新第一集合及第二集合时,将项对(1,3)及项对 (3, 4)对应的余弦相似度上界值0.71从第一集合{0.71,0. 5到中移除;由于第二集合 {0.2引中只有一个余弦相似度上界值0.25,则从第二集合{0.2引中重新选择上H角有序 项矩阵中第一行对应的最大余弦相似度上界值为0. 25,其余行没有可选择最大余弦相似度 上界值,则本次选择的余弦相似度上界值为0. 25,该余弦相似度上界值对应项对(1,4)。
[0150] 已确定项对(1,2)对应的余弦相似度为0.66,项对(1,3)对应的余弦相似度为 0. 64,则确定的每个最大项对对应的余弦相似度中的最小余弦相似度为0. 64 ;判断选择的 余弦相似度上界值0. 25不大于确定的每个最大项对对应的余弦相似度中的最小余弦相似 度0. 64,将选择的余弦相似度上界值0. 25对应的项对(1,4)所在的第一行进行标记,使下 一次从第二集合中重新选择有序项矩阵中各行对应的最大余弦相似度上界值时,对被标记 的第一行所对应的最大余弦相似度上界值不作选择,得到更新的第一集合为{〇. 5到。
[0151] 由于确定的最大项对为项对(1,2)及项对(2, 3),并且项对(1,2)对应的余弦相 似度为0. 66,项对(2, 3)对应的余弦相似度为0. 61,则判断更新的第一集合中的最大余弦 相似度上界值0. 58小于确定的最大项对对应的余弦相似度中的最小余弦相似度0. 61,确 定未满足根据更新的第一集合更新最大项对的条件,将上一次确定的最大项对(1,2)及 (1,3)作为最大项对的最终确定结果。
[0152] 另外,本实施例还提供了确定最大项对的伪代码,伪代码如下:
[0巧3] 输入:
[0154] S ;按支持度大小降序排列的项列表 [015引 K;用户指定的需要的项对数
[0156] D;关于所有项的数据集
[0157] 输出:
[0158] 前K个余弦相似度最大的项对
[0159] 变量:
[0160] N;项数
[0161] topKPairs ;当前的前K个余弦相似度值最大的项对
[016引 minCos ;topKPairs中余弦相似度值最小的项对的余弦相似度值
[0163] paiWpperHeap ;存储项对的余弦相似度上界值的最大堆
[0164] maxUpper ;pairUppe;rHeap 中的最大值
[0165]
[0166] 其中,第1行将当前的前K个余弦相似度值最大的项对topKPairs中余弦相似度 值最小的项对的余弦相似度值minCos初始化为-1,将项数N初始化为按支持度大小降序排 列的项列表S的项数。
[0167] 第2行至第5行初始化了一个名称为pair化perHeap的变量用来存储有序项矩阵 中每一行当前最大的余弦相似度上界值。需要说明的是,由于项对对应的余弦相似度上界 值在有序项矩阵中具有二维单调性,则有序项矩阵中每一行当前未被检查的项对中,余弦 相似度上界值最大的项对一定是此行最左边的项对。另外,pai;rtJppe;rHeap使用了最大堆 数据结构,可进行快速排序,得到堆中当前最大的值w及对应的项对。
[0168] 第6行初始化了存储项对的余弦相似度上界值的最大堆pai州pperifeap中的最大 值 maxUpper。
[0169] 第7行判断当前paiWpperHeap中余弦相似度上界的最大值max化per是否大 于或等于当前已找到的前K个余弦相似度值最大的项对topKPairs中最小的余弦相似度 值minCos。如果max化per小于minCos,则跳至第24行结束,并执行第25行返回当前的 topKPairs作为确定的最大项对。如果max化per大于或等于minCos,贝ij判断余弦相似度上 界值为max化per的项对是否可W添加到topKPairs。
[0170] 第8行至第9行查找到了所有余弦相似度上界值为max化per的项对,即项对 (i,j,)到项对(i,1-1)。
[0171] 第10行至第11行基于垂直数据格式获取每个项对对应的事务标识符列表并计算 项对的支持度。
[0172] 第12行至第16行计算项对的余弦相似度值,判断项对是否可W进入topKPairs。
[0173] 第17行至第23行更新paiWpperHeap,即更新已检查的各行的最大的余弦相似度 上界值。根据余弦相似度上界值的单调性,下一个未被检查的项对(i,1)是候选项对。如果 项对(i,je)对应的余弦相似度上界值大于minCos,则将项对(i, j。)加入paiWpper化ap并 替换堆的根节点;如果项对(i,je)对应的余弦相似度上界值不大于minCos,则使用一个虚 拟值替换堆的根节点,使得此行不会再被检查。重新构造堆,并得到堆的最大值max化per。
[0174] 需要说明的是,第7行至第24行为迭代过程,即在判断max化per大于或等于 minCos时,重新执行迭代过程,直至判断max化per小于minCos。
[01巧]另外,第1行对应步骤201,第2行至第6行对应步骤202,第7行至第25行对应 步骤203至步骤206。
[0176] 在上述伪代码中,给定需要被检查的项对P和当前的前K个余弦相似度值最大的 项对topKPairs中余弦相似度值最小的项对的余弦相似度值minCos。算法的迭代过程在最 大的余弦相似度上界值都不再大于或等于当前的前K个最大项对对应的余弦相似度中的 最小余弦相似度值minCos时终止,设0是最终的阔值。本实施例提供的方法即使在确定 前K个项对之前无法获取准确的最终的阔值0,但是通过比较余弦相似度上界值能够避免 计算部分项对的余弦相似度,简化了确定最大项对的计算,相当于在确定前K个项对之前 已知最终的阔值0,即给定需要被检查的项对P和当前的前K个余弦相似度值最大的项对 topKPairs中余弦相似度值最小的项对的余弦相似度值minCos,设0是最终的阔值,则可 得到:
[0177] uppcr(cos(P)) > minCos uppcr(cos(P)) >0
[017引证明过程为:
[0179] (1)必要性
[0180] 由于0>minCos,则啤per(cos(P))>食与>啤per(cos(P))>minCos。
[0181] (2)充分性
[0182] 假设 upper (cos 任))《白,则可 W得到 minCos<upper k〇s (P))《白;
[0183] 由于minCos< e,则至少存在一个未被检查的项对,能够进入前K个余弦相似度值 最大的项对topKPairs。
[0184] 另外,由于本实施例提供的方法选取有序项矩阵中各个行中余弦相似度最大的 行:
[0185] 叩pcr(cos(P)) =max叩pcr(cos(P)) < 6*,
[0186] 表明没有任何一个未被检查的项对能够进入前K个余弦相似度值最大的项对 topKPairs;其中,P是有序项矩阵中任意一个未被检查的项对。
[0187] 至少存在一个未被检查的项对能够进入前K个余弦相似度值最大的项对 topKPairs与没有任何一个未被检查的项对能够进入前K个余弦相似度值最大的项对 topKPairs存在矛盾的,则证明:
[018引upper(cos(P)) >minCos兰>upper(cos(P)) > 0。
[0189] 由于满足必要性和充分性,则证明了叩pcr(cos(P)) >minCos〇uppcr(cos(P)) > 0。
[0190] 本实施例提供的方法,通过确定有序项矩阵中每个项对对应的余弦相似度上界 值,并根据有序项矩阵中每个项对对应的余弦相似度上界值确定最大项对,避免计算部分 项对对应的余弦相似度,从而简化了确定最大项对的计算,提高了确定最大项对的效率,进 而可W快速地从大规模数量的项构成的项对中确定最大项对,扩展了确定最大项对的应用 范围。
[0191] 实施例H
[0192] 参见图3,本发明实施例提供了一种确定最大项对的装置,该装置包括:
[0193] 构建模块301,用于构建有序项矩阵,有序项矩阵中的每个元素代表一个项对,每 个项对对应一个余弦相似度上界值;
[0194] 第一确定模块302,用于确定有序项矩阵中每个项对对应的余弦相似度上界值;
[0195] 选择模块303,用于从有序项矩阵中每个项对对应的余弦相似度上界值中选择有 序项矩阵中各行对应的最大余弦相似度上界值;
[0196] 构成模块304,用于将本次选择的余弦相似度上界值构成第一集合,将剩余未选择 的余弦相似度上界值构成第二集合,并将第一集合中前预设数目个余弦相似度上界值对应 的项对作为确定的最大项对;
[0197] 第一更新模块305,用于根据各个最大项对更新第一集合及第二集合;
[019引第二确定模块306,用于在得到更新的第一集合及更新的第二集合后,确定是否满 足根据更新的第一集合更新最大项对的条件;
[0199] 第二更新模块307,用于当满足根据更新的第一集合更新最大项对的条件时,根据 更新的第一集合更新最大项对;
[0200] 第一更新模块305,用于重新根据各个最大项对更新第一集合及第二集合,直至确 定未满足根据更新的第一集合更新最大项对的条件;
[0201] 第H确定模块308,用于将上一次确定的最大项对作为最大项对的最终确定结果。
[0202] 作为一种可选实施例,参见图4,第一更新模块305,包括:
[0203] 第一移除单元3051,用于将各个最大项对所对应的余弦相似度上界值从第一集合 中移除;
[0204] 选择单元3052,用于从第二集合中重新选择有序项矩阵中各行对应的最大余弦相 似度上界值;
[0205] 第二移除单元3053,用于将本次选择的余弦相似度上界值从第二集合中移除;
[0206] 添加单元3054,用于将本次选择的余弦相似度上界值添加到第一集合中,得到更 新的第一集合及更新的第二集合。
[0207] 作为一种可选实施例,参见图5,第二确定模块306,包括:
[020引第一判断单元3061,用于判断更新的第一集合中的最大余弦相似度上界值是否小 于确定的最大项对对应的余弦相似度的中最小余弦相似度;
[0209] 第二判断单元3062,用于当更新的第一集合中的最大余弦相似度上界值不小于确 定的所有
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1