在推荐系统中利用潜在邻居关系图筛选最近邻居的方法与流程

文档序号:12748181阅读:657来源:国知局

本发明涉及推荐技术领域,特别是在推荐系统中利用潜在邻居关系图筛选最近邻居的方法。



背景技术:

当前不断增加的数据量使用户需要花费很多的时间才能找到有价值的信息。协同过滤被认为是解决信息超载问题的有效技术之一,已广泛应用于电影、音乐、图书、旅行、新闻等推荐领域。协同过滤方法主要的思路是根据相似用户对项目的喜好预测目标用户对项目的观点,或是依据用户对相似项目的意见为目标项目实施推荐。因此,协同过滤需要解决的一个关键问题是:如何有效选择目标用户或项目的最近邻居。但推荐系统拥有数以百万计用户和项目,其规模仍持续增长,用传统方法在海量数据中搜索最近邻居难以保证在合理时间内提供较准确的推荐。

协同过滤方法的核心是需要对推荐系统中所有项目(或用户)进行两两比较,通过计算彼此之间的相似度,选择最近邻居。两两比较的次数越多,运行的效率越低,但其搜索到最近邻居的可能性越高;反之两两比较的次数越少,其运行效率越高,但错失最近邻居的可能性也越高,从而影响到推荐精度。再加之推荐系统中数据内在关联关系密切而复杂,价值密度分布极不均衡,对推荐系统中海量数据的计算不能像小样本数据集那样依赖于对全局数据的统计分析和迭代计算,需要探索数据按需约简方法。



技术实现要素:

本发明所要解决的技术问题是克服现有技术的不足而提供在推荐系统中利用潜在邻居关系图筛选最近邻居的方法,本发明方法以剔除冗余和多余的比较,既保障推荐效率,又不牺牲推荐精度,确保在合理的时间内提供较准确的推荐。

本发明为解决上述技术问题采用以下技术方案:

根据本发明提出的在推荐系统中利用潜在邻居关系图筛选最近邻居的方法,包括以下步骤:

步骤1、设i∈O,O是需要筛选最近邻居的对象集,i是对象,采用模糊聚类技术依据对象的特征向量,将对象i按预先设定的概率指派到多个簇中,由此产生含K个对象簇的簇集合C;

步骤2、构建簇集合C对应的潜在邻居关系图GC={VC,EC},其中,VC是顶点集合,EC是无向边集合;具体如下:

若对象i和对象j同时出现在簇集合C的同一个簇c中,则称对象i和j为共现对并记为<i,j>;对于簇集合C中每对共现对<i,j>,先将对象i和j对应的顶点vi和vj加入到图GC中,若两个对象i和j之间没有存在无向边,则用边ei,j连接顶点vi和vj;其中,图GC中每条边ei,j表示一潜在的邻居关系,边ei,j邻接的两个顶点vi和vj对应的对象i和j称为邻接对象,j∈O,c∈C,vi∈VC,vj∈VC,ei,j∈EC

步骤3、量化图GC中每条边的权重;

步骤4、对图GC进行裁剪,删除潜在邻居关系图GC中边的权重低于wmin的边,余下边构成了一新图GC';其中,wmin为设置的最小权重阈值;

步骤5、选取对象i作为目标,利用裁剪后的潜在邻居关系图GC'筛选目标的最近邻居,针对GC'图中目标i的每条邻接边ei,j,比较并计算效用向量Ri与Rj之间的相似度,然后依据近邻选择条件在目标i的所有邻接对象中筛选其最近邻居;其中,Ri表示对象i的效用向量,Rj表示对象j的效用向量。

作为本发明所述的在推荐系统中利用潜在邻居关系图筛选最近邻居的方法进一步优化方案,所述步骤3中采用下式计算边ei,j的权重ei,j.weight:

<mrow> <msub> <mi>e</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>.</mo> <mi>w</mi> <mi>e</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mo>+</mo> <mo>|</mo> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>|</mo> <mo>-</mo> <mo>|</mo> <msub> <mi>C</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>|</mo> </mrow> </mfrac> <mo>&CenterDot;</mo> <mi>l</mi> <mi>o</mi> <mi>g</mi> <mfrac> <mrow> <mo>|</mo> <msub> <mi>E</mi> <mi>C</mi> </msub> <mo>|</mo> </mrow> <mrow> <mi>d</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>&CenterDot;</mo> <mi>l</mi> <mi>o</mi> <mi>g</mi> <mfrac> <mrow> <mo>|</mo> <msub> <mi>E</mi> <mi>C</mi> </msub> <mo>|</mo> </mrow> <mrow> <mi>d</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

其中,Ci表示对象i隶属的簇集合,Cj表示对象j隶属的簇集合,Ci,j为对象i和j共享的集合,|*|为集合*中成员个数,d(*)表示顶点*的度。

作为本发明所述的在推荐系统中利用潜在邻居关系图筛选最近邻居的方法进一步优化方案,所述步骤5中近邻选择条件是指选取与目标的相似度最大的前k个对象构成目标的近邻集。

作为本发明所述的在推荐系统中利用潜在邻居关系图筛选最近邻居的方法进一步优化方案,K≥1。

作为本发明所述的在推荐系统中利用潜在邻居关系图筛选最近邻居的方法进一步优化方案,边ei,j的权重与关系图GC中边ei,j所邻接的对象i和j共享的簇有关。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

在保障推荐精度前提下,将基于完整大规模数据集的推荐映射到一个规模较小的数据集的推荐,并显著降低推荐系统规模,保证推荐方法的高效率。具体表现在以下方面:

(1)采用模糊聚类技术将对象按一定概率指派到多个簇中,这种冗余特性提供了一种不可缺少的、可靠的、避免错过最近邻居的方法;

(2)在聚类过程中,将相似性高的对象指派到同一个簇中,排除个别离群对象。这不仅有益于提高推荐精度,同时也减少了离群对象带来的多余比较,改善推荐效率;

(3)在潜在邻居关系图的构建过程中,每对共现对至多对应图中一条边,每条边表示了一种潜在的邻居关系,后续的步骤只对每条边的邻接对象进行比较,计算它们的相似度;因此,剔除了冗余和多余的共现对,减少了对象集中两两比较的次数,改善了推荐的效率;

(4)通过设置恰当的边的权重阈值,剔除潜在邻居加权关系图中低于权重的边,进一步消除多余的比较。

附图说明

图1是本发明的处理流程。

具体实施方式

下面结合附图对本发明的技术方案做进一步的详细说明:

如图1是本发明的处理流程,如下步骤:步骤(1)、产生具有冗余特性的对象簇集合C;步骤(2)、构建簇集合C对应的潜在邻居关系图;步骤(3)、量化潜在邻居关系图中每条边权重,边的权重表示边所邻接的两个对象成为最近邻居的可能性;步骤(4)、对潜在邻居关系进行裁剪,剔除多余的比较;步骤(5)、利用裁剪后的潜在邻居关系图筛选目标的最近邻居。

【实施例1】

在一个电影推荐系统中,已知用户集U,项目集I,每个项目即为一部电影;Fi表示项目i的特征向量,用于描述电影流派、获奖类型、演员和导演等;Ri表示项目i∈I的效用向量,ru,i∈Ri是用户u∈U对项目i的评分。推荐系统利用潜在邻居关系图筛选目标项目i的最近邻居,然后利用目标用户u对项目i所有最近邻居的评分预测用户u对项目i的评分。在本实施例1中,对象集合为项目集合,筛选项目的最近邻居的具体过程如下:

(1)产生簇集合。利用模糊聚类技术依据项目特征将项目i∈I按一定概率指派到多个簇中,由此产生项目簇集合C。

(2)构建簇集合C对应的潜在邻居关系图GC={VC,EC},VC是顶点集合,EC是无向边集合。图GC具体构建方法如下:对于C中每对共现对<i,j>,先将项目i∈I和j∈I对应的顶点vi和vj加入到图GC中,然后用边ei,j∈EC连接顶点vi和vj。在创建关系图的过程中,若发现两个项目之间已经存在一条无向边,则无需再在它们之间增加一条边。图中每条边表示一潜在的邻居关系,需在后续步骤中通过相似度计算,确定是否为最近邻居。

(3)量化图GC每条边权重。关系图GC尘埃落定后,为进一步筛选近邻关系,需量化图中每条边。权重计算方法如下:已知分别表示项目i、j隶属的簇集合,Ci,j=Ci∩Cj称为项目i和j共享的集合。当项目i和j共享的簇越多(即|Ci,j|值越大),它们成为彼此最近邻居的可能性越大。除了考虑|Ci,j|,边权重还需考虑其邻接项目所隶属的簇的总数,以及边的邻接顶点的度。当某个边的邻接项目隶属的簇越少,该边的权重应越高;当某个边的顶点的度越小,该边的权重应越高。用下式计算边ei,j∈EC的权重

<mrow> <msub> <mi>e</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>.</mo> <mi>w</mi> <mi>e</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>|</mo> <mo>+</mo> <mo>|</mo> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>|</mo> <mo>-</mo> <mo>|</mo> <msub> <mi>C</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>|</mo> </mrow> </mfrac> <mo>&CenterDot;</mo> <mi>l</mi> <mi>o</mi> <mi>g</mi> <mfrac> <mrow> <mo>|</mo> <msub> <mi>E</mi> <mi>C</mi> </msub> <mo>|</mo> </mrow> <mrow> <mi>d</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>&CenterDot;</mo> <mi>l</mi> <mi>o</mi> <mi>g</mi> <mfrac> <mrow> <mo>|</mo> <msub> <mi>E</mi> <mi>C</mi> </msub> <mo>|</mo> </mrow> <mrow> <mi>d</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

其中,d(*)表示顶点*的度。

(4)裁剪多余比较。依据设置的最小权重阈值wmin删除图GC中边的权重低于wmin的边,余下边构成了裁剪后的图GC'。

(5)选取项目i作为目标,筛选目标i的最近邻居。针对GC'图中目标i的每条邻接边ei,j,比较目标i与j在用户-项目效用矩阵中项目i的效用向量Ri和项目j的效用向量Rj之间的相似性,计算它们之间的相似度;然后依据近邻选择条件在目标i的所有邻接项目中筛选其最近邻居,在本实例1中,选取与目标项目的相似度最大的前k个项目构成目标的近邻集。最后利用目标用户u对项目近邻集中各近邻的评分预测目标用户u对目标项目的评分。

【实施例2】

在一个电影推荐系统中,已知用户集U,项目集I,每个项目即为一部电影;Fq表示用户q的特征向量,用于描述用户的性别、年龄、职业等;Rq表示用户q∈U的效用向量,rq,m∈Ru是用户q对项目m∈I的评分。推荐系统利用潜在邻居关系图筛选目标用户q的最近邻居,然后利用目标用户q的所有最近邻居对项目m的评分预测用户q对项目m的评分。在本实施例2中,对象集合为用户集合,筛选用户的最近邻居的具体过程如下:

(1)产生簇集合。利用模糊聚类技术依据用户特征将用户u∈U按一定概率指派到多个簇中,由此产生用户簇集合C。

(2)构建簇集合C对应的潜在邻居关系图GC={VC,EC},VC是顶点集合,EC是无向边集合。图GC具体构建方法如下:对于C中每对共现对<q,h>,先将用户q∈U和h∈U对应的顶点vqvh加入到图GC中,然后用边eq,h∈EC连接顶点vqvh。在创建关系图的过程中,若发现两个用户之间已经存在一条无向边,则无需再在它们之间增加一条边。图中每条边表示一潜在的邻居关系,需在后续步骤中通过相似度计算,确定是否为最近邻居。

(3)量化图GC每条边权重。关系图GC尘埃落定后,为进一步筛选近邻关系,需量化图中每条边。权重计算方法如下:已知分别表示用户q、h隶属的簇集合,Cq,h=Cq∩Ch称为用户q和h共享的集合。当用户q和h共享的簇越多(即|Cq,h|值越大),它们成为彼此最近邻居的可能性越大。除了考虑|Cq,h|,边权重还需考虑其邻接用户所隶属的簇的总数,以及边的邻接顶点的度。当某个边的邻接用户隶属的簇越少,该边的权重应越高;当某个边的顶点的度越小,该边的权重应越高。因此,可用下式计算边eq,h的权重:

<mrow> <mi>w</mi> <mi>e</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> <mrow> <mo>(</mo> <mi>q</mi> <mo>,</mo> <mi>h</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mrow> <mi>q</mi> <mo>,</mo> <mi>h</mi> </mrow> </msub> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <msub> <mi>C</mi> <mi>q</mi> </msub> <mo>|</mo> <mo>+</mo> <mo>|</mo> <msub> <mi>C</mi> <mi>h</mi> </msub> <mo>|</mo> <mo>-</mo> <mo>|</mo> <msub> <mi>C</mi> <mrow> <mi>q</mi> <mo>,</mo> <mi>h</mi> </mrow> </msub> <mo>|</mo> </mrow> </mfrac> <mo>&CenterDot;</mo> <mi>log</mi> <mfrac> <mrow> <mo>|</mo> <msub> <mi>E</mi> <mi>C</mi> </msub> <mo>|</mo> </mrow> <mrow> <mi>d</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>q</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>&CenterDot;</mo> <mi>log</mi> <mfrac> <mrow> <mo>|</mo> <msub> <mi>E</mi> <mi>C</mi> </msub> <mo>|</mo> </mrow> <mrow> <mi>d</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>h</mi> </msub> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>,</mo> </mrow>

其中,d(*)表示顶点*的度。

(4)裁剪多余比较。依据设置的最小权重阈值wmin删除图GC中边的权重低于wmin的边,余下边构成了裁剪后的图GC'。

(5)选取用户q作为目标,筛选目标用户q的最近邻居。针对GC'图中目标q的每条邻接边eq,h,比较目标q与h的在用户-项目效用矩阵中用户q的效用向量Rq和用户h的效用向量Rh之间的相似性,计算它们之间的相似度;然后依据近邻选择条件在目标q的所有邻接用户中筛选其最近邻居,在本实例2中,选取与目标用户q的相似度最大的前k个用户构成目标的近邻集。最后利用目标用户q的近邻集中各近邻对项目的评分预测目标用户q对目标项目的评分。

以上所述的具体实施方案,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施方案而已,并非用以限定本发明的范围,任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所做出的等同变化与修改,均应属于本发明保护的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1