CN103377250B - 基于邻域的top‑k推荐方法 - Google Patents

基于邻域的top‑k推荐方法 Download PDF

Info

Publication number
CN103377250B
CN103377250B CN201210130111.5A CN201210130111A CN103377250B CN 103377250 B CN103377250 B CN 103377250B CN 201210130111 A CN201210130111 A CN 201210130111A CN 103377250 B CN103377250 B CN 103377250B
Authority
CN
China
Prior art keywords
user
users
recommendation
group
similarity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210130111.5A
Other languages
English (en)
Other versions
CN103377250A (zh
Inventor
杨希旺
陈飞飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Beidai Technology Co ltd
Original Assignee
HANGZHOU ZAIYAN NETWORK TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HANGZHOU ZAIYAN NETWORK TECHNOLOGY Co Ltd filed Critical HANGZHOU ZAIYAN NETWORK TECHNOLOGY Co Ltd
Priority to CN201210130111.5A priority Critical patent/CN103377250B/zh
Publication of CN103377250A publication Critical patent/CN103377250A/zh
Application granted granted Critical
Publication of CN103377250B publication Critical patent/CN103377250B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明属于计算机技术领域,涉及由计算机完成的个性化推荐技术,公开了三种基于邻域的推荐方法。该方法通过对用户的兴趣爱好的建模来分析用户的属性,然后帮助目标用户找到与其相似的用户群,进而对用户推荐可能会感兴趣的对象。这种方法在推荐对象时不仅仅考虑观测到的打分、购买信息等行为数据,同时也考虑到那些缺失的打分信息,即隐性反馈信息。同时,本发明的方法还充分利用了社交网络中用户的兴趣爱好相似性来建模用户兴趣,并考虑到了隐性反馈对结果的改进,有效的提高了推荐的精度。

Description

基于邻域的top-k推荐方法
技术领域
本发明属于计算机技术领域,涉及由计算机完成的个性化推荐技术,具体的说是一种基于邻域的top-k推荐方法。
背景技术
个性化推荐在我们的日常生活当中变得越来越重要,特别是web2.0的出现带来了海量的数据。精确的推荐能够帮助用户容易的找到相关的产品而省去了用户在海量数据中找寻的时间。现在的电子商务厂商和以互联网广告为收入的公司都在智能化的个性推荐上面投入大量的人力、物力。从上世纪90年代中开始,个性化推荐邻域变成了一个十分重要的科研邻域。推荐系统中最常用的方法是协同滤波方法-只依赖于用户的历史行为记录比如用户的交易记录、打分记录,而不必去创建一个明确的用户兴趣资料。当收集到一定量的用户数据后,比如Netflix的用户电影打分记录,协同滤波成为了最受欢迎的也是最精确的方法。值得注意的是,协同滤波不需要行业知识,不需要去分析被推荐对象的内容信息。而且,协同滤波依赖于用户的行为有助于揭示复杂的、不易被预期到的行为模式。这些是通过已知的数据属性无法做到的。随着社交网络的兴起,社会化过滤也成为一个重要的推荐方法,其主要思想就是把社交网络内兴趣相类似的用户喜欢的东西推荐给目标用户。
基于邻域top-k推荐和基于模型的top-k推荐是当下协同滤波中最流行的两类推荐方法,基于邻域的推荐方法擅长于利用关系比较相近的用户群进行预测,而基于模型的推荐方法能更好的利用一个用户的所有的打分记录。当新的产品加入系统后,基于邻域的方法能够及时的利用少量的打分信息给目标用户进行推荐,而基于模型的方法需要重新进行模型训练才能得到该产品的特征向量从而才能对此产品进行推荐。
到目前为止,社交网络内的推荐模型主要有三种,但他们都是集中在优化RMSE(均方根误差)。首先数据(用户对产品的打分、购买或点击数据)被随机切分成训练数据集(trainingset)和测试数据集(testset),训练数据集用来训练模型,测试数据集用来测试模型的精度。RMSE定义为:但是对于实际的商用推荐系统来讲,根据用户的历史行为来预测用户以后会感兴趣的内容、产品更有实际意义。
系统每次给用户推荐k(一般比较小)个可能感兴趣的产品。这种优化RMSE的技术已经趋于成熟。
对每个用户u,首先跟据推荐模型来给每个未打分的产品进行预测打分,然后根据预测的分值将产品进行从高到低的排序。注意,预测的打分值是个连续值,所以排序一般是唯一的。如果碰到两个相同的分值,则这两个产品先后排序随机。定义相关产品为用户喜欢的产品,一般设个阈值,打分(用户的实际打分)高于此值的就认为是相关产品。举个例子,在Epinions数据里,我们把打分为5的产品定义为相关产品,打分小于5的或是打分缺失的定义为不相关。Top-k命中率定义为测试数据集里相关产品出现在top-k推荐列表上的比例。定义用户u的测试数据集里的所有相关产品数目为N(u),定义用户测试数据集里的相关产品出现在top-k列表的数目为N(k,u)。用户u的top-k命中率为:所有用户的top-k命中率为:对所有用户的求和。
一种典型的在社交网络内做top-k推荐的方法是基于最近邻域的方法。首先给目标用户x找到相似的用户群,然后通过该用户群预测用户x对候选产品的打分,根据预测打分的分值将候选产品进行排序,推荐排名最高的k个产品给目标用户x。
这种方法的缺点是没有考虑到隐性反馈(缺失的打分)的信息。比如现在给目标用户x选定了一个大小为100的用户群,现在有两件产品i,j:用户群中只有一人对产品i有打分为5,其他人没打分。而对产品j而言,用户群中有99人对其打分为5,1人打分为4。如果用加权平均来预测用户x对产品i,j的打分,所以预测结果是用户在产品i,j中更喜欢产品i。而实际上明显用户更喜欢产品j的可能性要很大。
基于邻域的推荐方法的核心是如何给目标用户找到相似的用户群。常用的方法有三种:
方法一:每个用户历史行为用一个行向量表示,向量第i个值表示对第i个对象的打分值(如果是点击记录,1表示点击了,0表示没有),通过计算用户的打分记录向量计算用户间的Pearson相似度或计算Cosine相似度在全体用户中找到跟目标用户最接近的N1个用户,标记该用户群为
方法二:通过社交网络过滤的方法可以找到在社交网络内最相近的N2个用户,标记该用户群为常用的方法有广度优先搜索、信任值推理和随机走动模型。
方法三:混合方法一、方法二的用户群,得到一个混合用户群。
已有的基于邻域的top-k推荐方法:在所选定的用户群中,预测候选产品的打分分值,推荐得分最高的k个产品。具体步骤如下:
步骤一:选定相似的用户群,具体方法见给目标用户找相似的用户群。标记选定的用户群为Nx
步骤二:找出所选定的用户群中所有的用户打分过的产品集合,标记为IN
步骤三:预测目标用户x对集合IN中的所有产品的打分分值,其中有常用的预测打分方法是选定的用户群对产品的加权平均值:
注意,对某个产品打分的加权平均只是对目标用户群中对此产品有打分的用户而言。
步骤四:对该集合中所有产品依照预测分值进行排序,并过滤掉和目标用户已有历史行为的对象。
步骤五:推荐排名最高的k个产品。
一种常用的基于邻域的top-k推荐方法为Trust-CF,详细方法参见M.Jamali andM.Ester.利用信任网络来提高top-n推荐,ACM推荐系统会议RecSys09.(In ACMConference on Recommender Systems(RecSys),2009.)
发明内容
本发明的目的是针对上述现有基于邻域的推荐方法所存在的无法反应隐性反馈的不足,提供一种新的基于邻域的推荐方法,通过考虑到隐性反馈的因素,实现提高推荐精度的目的。
为实现上述目的,本发明提出下述三种技术方案。
技术方案一:
一种基于邻域的top-k推荐方法,其特征在于,包括如下步骤:
步骤一,响应客户端的请求,建立用户-对像关系矩阵;
从服务器中获取包含目标用户在内的一组用户作为用户集合,再获取一组推荐对象作为对象集合;
从服务器中读取上述用户集合U中各用户分别针对对象集合中各推荐对象产生的行为数据;
当任一用户对任一推荐对像未产生行为数据时,均以一预设值作为假定的行为数据;
根据获取的上述行为数据值和假定的行为数据值,建立一个用户-对像关系矩阵;
所述行为数据,可以是用户对推荐对象的评分数据,如果推荐对象为基于网络的产品销售平台为用户提供的商品,行为数据可以是用户对商品的点击数据,如点击该商品展示链接的次数,或者是用户购买商品的数据,如购买次数,单次购买数量、总共购买数量等。
步骤二,分解用户-对像关系矩阵;
通过迭代的方法对步骤一所建立的用户-对像关系矩阵进行降维处理,获得分别对应各用户的一组用户特性向量;所述用户特性向量中每个数值表示该用户对相应的对象的潜因子特性的关联程度;如果对象是产品,潜因子特性可以是产品的质地,产地,价格等。
步骤三,计算目标用户到其他用户的相似度;
逐一计算步骤二获得的目标用户的用户特性向量到其他用户的用户特性向量的相似度,并将结果作为目标用户到其他用户的相似度;
所述相似度可以是向量间的cosine相似度,也可以是Pearson相似度。
步骤四,建立推荐用户群;
选取与目标用户相似度大于预设阀值的用户,或与目标用户相似度最高的k1个用户,组成推荐用户群;
步骤五,获取与步骤四所述的推荐用户群中的用户具有行为关联的推荐对象,组成一候选对象集合;
步骤六,对候选对象集合中的每个推荐对象,计算推荐用户群中与该推荐对象具有行为关联的用户针对该对像产生的行为数据的加权平均值,对应各用户的权重为与该用户对应的步骤三中所述的相似度值;
步骤七,按由大到小顺序,排列步骤六所获得的对应各推荐对象的加权平均值并过滤掉和目标用户已有历史行为的对象;
步骤八,将数值最大的前k个加权平均值对应的推荐对象返回给客户端。
商用系统中k一般是一个比较小的值,比如1,5,10等,具体数值由实际系统根据实际应用情况随意确定。
技术方案二:
作为技术方案一的进一步改进,本发明还提出下述技术方案:
一种基于邻域的top-k推荐方法,其特征在于,包括如下步骤:
步骤一,响应客户端的请求,建立用户-对像关系矩阵;
从服务器中获取包含目标用户在内的一组用户作为用户集合,再获取一组推荐对象作为对象集合;
从服务器中读取上述用户集合U中各用户分别针对对象集合中各推荐对象产生的行为数据;
当任一用户对任一推荐对像未产生行为数据时,均以一预设值作为假定的行为数据;
根据获取的上述行为数据值和假定的行为数据值,建立一个用户-对像关系矩阵;
步骤二,分解用户-对像关系矩阵;
通过迭代的方法对步骤一所建立的用户-对像关系矩阵进行降维处理,获得分别对应各用户的一组用户特性向量;所述用户特性向量中每个数值表示该用户对相应的对象的潜因子特性的关联程度;
步骤三,计算目标用户到其他用户的相似度;
逐一计算步骤二获得的目标用户的用户特性向量到其他用户的用户特性向量的相似度,并将结果作为目标用户到其他用户的相似度;
所述相似度可以是向量间的cosine相似度,也可以是Pearson相似度。
步骤四,建立推荐用户群;
选取与目标用户相似度大于预设阀值的用户,或与目标用户相似度最高的k1个用户,组成推荐用户群;
步骤五,模拟推荐;
计算所述推荐用户群各用户的大于预定阙值的行为数据与该用户到目标用户的特性相似度之积,并将结果作为单个用户对相应对象的推荐力度,计算不同用户对同一个对象的推荐力度值之和作为推荐用户群对此推荐对象的推荐力度;
步骤六,过滤掉和目标用户已有历史行为的对象,然后进行top-k推荐;
将用户群对各推荐对象的推荐力度值由大到小进行排序;将数值最大的k个推荐力度值对应的k个推荐对象返回给客户端。
技术方案三:
作为技术方案一的再进一步改进,在上述技术方案二的基础上,针对目前很多网站同时具有社交功能,本发明还提供一种融合社交用户群的基于邻域的推荐方法,具体如下:
一种基于邻域的top-k推荐方法,其特征在于,包括如下步骤:
步骤一,响应客户端的请求,建立用户-对像关系矩阵;
从服务器中获取包含目标用户在内的一组用户作为用户集合,再获取一组推荐对象作为对象集合;
从服务器中读取上述用户集合U中各用户分别针对对象集合中各推荐对象产生的行为数据;
当任一用户对任一推荐对像未产生行为数据时,均以一预设值作为假定的行为数据;
根据获取的上述行为数据值和假定的行为数据值,建立一个用户-对像关系矩阵;
步骤二,分解用户-对像关系矩阵;
通过迭代的方法对步骤一所建立的用户-对像关系矩阵进行降维处理,获得分别对应各用户的一组用户特性向量;所述用户特性向量中每个数值表示该用户对相应的对象的潜因子特性的关联程度;
步骤三,计算目标用户到其他用户的相似度;
逐一计算步骤二获得的目标用户的用户特性向量到其他用户的用户特性向量的相似度,并将结果作为目标用户到其他用户的相似度;
所述相似度可以是向量间的cosine相似度,也可以是Pearson相似度。
步骤四,建立推荐用户群;
选取用户集合中与目标用户相似度最高的k1个用户,或者与目标用户相似度大于预设阀值的用户,组成主用户群;
从服务器获取与目标用户关系距离最近的k2个用户,或者与目标用户关系距离小于预设阀值的用户,组成辅助用户群;
混合主用户群和辅助用户群,得到一个混合用户群;
步骤五,模拟推荐;
计算所述混合用户群中各用户的大于预定阙值的行为数据与该用户到目标用户的相似度或关系距离的倒数之积,并将结果作为单个用户对相应对象的推荐力度,再计算不同用户对同一个推荐对象的推荐力度值之和作为用户群对此推荐对象的推荐力度;
步骤六,过滤掉和目标用户已有历史行为的对象,然后进行top-k推荐;
将用户群对各推荐对象的推荐力度值由大到小进行排序;将数值最大的k个推荐力度值对应的k个推荐对象返回给客户端。
上述方案中,步骤五所述的推荐力度还以直接选用目标用户到其他用户间的相似度或关系距离的倒数。具体描述如下:
取对推荐对象产生的行为数据大于预定阙值的用户的到目标用户的相似度或关系距离的倒数,作为该用户对相应推荐对象的推荐力度。
本发明的有益效果是:
其一,通过模型训练得到用户的特性向量,通过用户特性向量给目标用户寻找兴趣相似的用户群,这样可以在训练模型时引入对缺失数据的预测补充,成功的在基于邻域的推荐过程中考虑到了隐性反馈,增加了推荐的精度。
其二,提出了一种类似于投票式的模拟推荐的方案,通过计算推荐力度来完成top-k的筛选。有效的解决了,现有基于邻域的推荐方法中,直接计算评分平均值的方法在特殊情况下失真的问题。
其三,进一步提出了一种辅助用户群,被通过在具有社交功能等网络给目标寻找到兴趣相似的另一个用户群,与常规用户群进行混合得到新的用于模拟推荐的用户群。这种混合用户群考虑到了用户与用户之间的关系,可以通过用户间的关系进一步辅正推荐结果,有效减少特殊情况下推荐结果出现较大偏差。用户与用户间的关系数据,可以有效弥补用户对推荐对象的行为数据,当用户对推荐对象的行为数据很少量的时候,优点尤其突出。
附图说明
图1是本发明所述推荐方法的整个推荐过程的流程图。
具体实施方式
下面结合图1,对本发明上述三个方案中更为优选的基于混合邻域的推荐方法做进一步的详细描述。
步骤一:建立用户-对象关系矩阵。
从服务器中获取包含目标用户在内的一组用户u作为用户集合U,用户数标记为u0,再获取一组推荐对象i作为对象集合I;
从服务器中读取上述用户集合U中各用户分别针对对象集合中各推荐对象产生的行为数据;
当任一用户对任一推荐对像未产生行为数据时,均以一预设值rm作为假定的行为数据;
根据获取的上述行为数据值和假定的行为数据值,建立一个用户-对像关系矩阵;
在该矩阵中,横向排列的是同一用户针对不同推荐对象产生的行为数据或假定的行为数据,纵向排列的是不同用户针对同一推荐对象产生的行为数据或假定的行为数据。
步骤二:分解用户-对象关系矩阵。
以下列公式(3)作为目标函数,以公式(5)作为对像特性矩阵,公式(6)作为用户特性矩阵,对步骤一建立的用户-对象关系矩阵进行降维优化处理。获得对象特性向量和用户特性向量。
其中,Ro&i是填充有假定的行为数据的用户-对象关系矩阵。如果用户u对产品i产生有行为数据,则否则Ru,i表示用户-对象关系矩阵中用户u对产品i的行为数据。用户-对象关系矩阵中,u0为用户集合U的用户数,i0为对象集合I的推荐对象数。
是预测的用户u对产品i行为数据,rm∈□为全局性偏量。
Wu,i是用户打分的训练权重,定义如下:
wm∈□+,是一个可调参数。
Qu是用户特性矩阵中用户u的特性向量,Pi是对象特性矩阵中产品i的特性向量。
上述用户特性矩阵和对象特性矩阵中,j0<<i0,u0
||·||F是Frobenius范式。λ>0是一个正则化参数。常用的解法为交替最小二乘法,固定产品特性矩阵P,更新用户特性矩阵Q,然后固定用户特性矩阵Q,再更新产品特性矩阵P,这样一直迭代直到收敛为止。
其中.在矩阵中表示向量的所有项;是以权重矩阵W中的第i列为对角值的对角矩阵。是单位矩阵。
其中,是以权重矩阵W中的第u行为对角值的对角矩阵。
步骤三:计算目标用户到其他用户的相似度。
逐一计算步骤二获得的目标用户的用户特性向量到其他用户的用户特性向量的cosine相似度或Pearson相似度。并将结果作为目标用户到其他用户的相似度;标记为sim(x,v)。
步骤四:建立推荐用户群。
选取用户集合中与目标用户相似度最高的k1个用户,或者与目标用户x相似度大于预设阀值的用户,组成主用户群。标记该用户群为Nx
从服务器获取与目标用户关系距离最近的k2个用户,或者与目标用户x关系距离小于预设阀值的用户,组成辅助用户群。标记该用户群为
常用的方法有广度优先搜索、信任值推理和随机走动模型。
所述关系距离,是指用数值表征的用户间的任何关系。例如,好友关系,直接好友,可以用1表征,一级间接好友,即直接好友的直接好友,可以用2表征,二级间接好友,即直接好友的一级间接好友,可以用3表征,依此类推。另外,还可以将两个直接好友共同的直接好友的关系距离可以表征为(2-1)/2,三个直接好友共同的直接好友,关系距离可以表征为(2-1)/3,依此类推。再例如,行为关系,同样点击过某一个链接的两个用户,关系距离表征为10,同样点击过某两个链接的两个用户,关系距离表征为10/2,同样点击过某三个链接的两个用户,关系距离表征为10/3,依此类推。还可以是关注关系,通信关系等等。所述关系距离可以标记为d(x,v)。在广度优先搜索中,用户v对目标用户x的推荐权重的计算为wt(x,v)=1/d(x,v),d(x,v)为x与v在社交网络中的最短跳数。
混合主用户群和辅助用户群,得到一个混合用户群。
具体混合的方法有:
一、选择辅助用户群中未被包含在主用户群中的用户,与主用户群组合得到混合用户群。
二、从两个用户群中找出相同数量的用户,要保证不会从两个用户群中选出相同的用户。
三、通过不断的测试找出最优的N1,N2组合,同时保证不会从两个用户群中选出相同的用户。
也可以,在建立输助用户群时,直接从服务器获取不包含在主用户群中的与目标用户关系距离最近的k2个用户,或者与目标用户关系距离小于预设阀值的用户。
步骤五:模拟推荐。
假设混合用户群中每个用户推荐自己喜欢的产品给目标用户x,推荐的权重定义为:
w(x,v)为用户v给目标用户x推荐感兴趣产品时v投票权重,上式的意思就是,如果v属于上页步骤二得到的相似群,则w值为sim(x,v);若v属于上页步骤三从社交网络中得到的相似群,则w值为wt(x,v)。对候选产品的投票值为:
其中,δ为Kronecker delta函数,Iv为用户v的评分大于预定阙值的对象集合。
用户x的相似用户群中的每一个用户对其感兴趣的商品投一票,这一票的权重为w(x,v),这票的推荐力度为w(x,v)×Rv,i,所以相似用户群向用户x推荐产品i的力度为Votex,i
步骤六:top-k推荐。
将用户群对各推荐对象的推荐力度值由大到小进行排序,过滤掉和目标用户已有历史行为的对象;将数值最大的k个推荐力度值对应的k个推荐对象返回给客户端。
下面以对用户u1的推荐为例,以一个具体实例说明本发明三种技术方案各步骤在实际商业系统中的应用过程,及各方案的优缺点,对其他用户的产品推荐与此相同。
步骤一,建立用户-产品关系矩阵。
用户的历史行为数据库记录了用户的对产品的评价,以打分形式表现出来或转化成用户对产品的打分信息。用户评分信息在数据库中一般以一张表的形式存储:(用户Id,产品Id,评分数值,时间戳),数据库中的每一行表示一条用户评分记录。数据可以从用户评分表直接读取。
这个信息可以表示为一个用户-产品打分矩阵。每行表示一个用户,每列表示一个产品,单元格(i,j)表示用户ui对产品ij的评分。如表1
i1 i2 i3 i4 i5 i6 i7
u1 5 1 5 5(测试) 2
u2 4 1 5 4 1
u3 5 1 5 5 1
u4 5 2
u5 2 5
u6 2 5
表1:某产品评论网站中用户对产品的打分
假设用户打分取值为1-5的整数,5表示非常喜欢,4表示一般喜欢,3表示一般,2表示不喜欢,1表示很讨厌。表格中空缺表示用户没有评分。推荐系统从产品与评论数据库中读取用户对产品的打分数据。
表1中u1对i6的评分是在测试数据集中,即我们模型训练过程和推荐过程是不知道u1对i6的评分。我们的推荐方法会最后给用户u1返回一个推荐列表,里面是u1可能感兴趣的产品。如果i6出现在最后的推荐列表中,则表示推荐准确。
步骤二,根据潜因子模型(公式1),建立用户对产品的评分模型,如下:
本例中rm使用的数值我们选用所有用户的评分值的平均值×0.6,在本例中为rm=2.0
步骤三:建立训练模型,如下:
进一步如下:
从表1中可知,上式中即为用户u1对产品i1的评分,因为用户u1对产品i2的评分缺失,所以用rm填充。其余的类似。
步骤四:用最小交叉二乘法求解训练模型,并得到所有用户和特性向量。
对于而言,亦即表1中的第一行,将缺失的值用rm填充。具体的例子如下:
wm为没观测到的数据点的权重,本例中用wm=0.01
产品特性向量Pi,.迭代公式的中的 跟上面类似。每步迭代中用到的产品特性向量和用户特性向量都是前一轮迭代的结果。初始的用户特性向量和产品特性向量为正态分布的采样点。我们用到的正太分布的均值为0,标准差为0.5.
取用户、产品向量维度j0=5,用户的初始特征向量为:
经过迭代后得到的用户向量为:
步骤五:根据步骤四所得到的用户特性向量给每个用户选择与其兴趣爱好最相似的用户群。
通过计算目标用户的用户特性向量与其他用户的用户特性向量间的Pearson相关度距离我们得到,
sim(u1,u2)=0.69
sim(u1,u3)=0.70
sim(u1,u4)=-0.22
sim(u1,u5)=0.13
sim(u1,u6)=0.11
如果我们对每个用户选取与其相似度高于0.3的用户作为其相似用户,与u1兴趣相似的用户群为(u2,u3),这个也即图1中的CF-ULF邻域。
步骤六:在社交网络中广度优先搜索用户的社交好友,组成社交邻域。比如,用户u1在此产品评论网站中关注了用户u6,u6没有关注其他人。则u1的社交邻域为(u6),这也即图1中的社交邻域。如果我们设wt(u1,u6)=1/d(u1,u6),d(u1,u6)为u1与u6在社交网络中的最短跳数,则wt(u1,u6)=1。
步骤七:由CF-ULF邻域和社交邻域组成混合邻域。用户u1的混合邻域为(u2,u3,u6),投票的权重
所以
w(u1,u2)=0.69
w(u1,u3)=0.70
w(u1,u6)=1
步骤八:u1混合邻域中的用户投票其喜欢的产品给用户u1
本例中认为评分为5表示用户喜欢。
u2喜欢产品i4,所以u2投票力度的结果为(0,0,0,3.45,0,0,0),此投票力度向量对应于产品(i1,i2,...,i7)。
u3喜欢产品i1,i5,i6,所以u3投票的结果为(3.50,0,0,0,3.50,3.50,0)。
u6喜欢产品i6,所以u6投票的结果为(0,0,0,0,0,5,0)。
将混合邻域中的用户投票结果合计起来得到最终的投票结果为:(3.5,0,0,3.45,3.5,6.95,0)。
步骤九:将产品根据投票结果进行排序,得到(i6,i5,i1,i4,i3,i2,i7)。
步骤十:进行可能的产品过滤,比如说某产品断货了,可将其从步骤九中的列表中滤掉。过滤掉目标用户已评分过的产品,得到的列表为:
(i6,i5,i2)
步骤十一:得到最终的top-k推荐列表。比如推荐1个产品给u1的话,则最终top-1推荐结果为(i6)。i6出现在了最后的推荐列表中,而且确实是用户u1喜欢的产品。
上面描述的是技术方案三的实施过程。
技术方案二的实施过程为:
步骤一,获取服务器中存储的,以数值表征的,包含目标用户的一组用户中各用户分别针对各推荐对象产生的行为数据,根据该获取的行为数据建立一个用户-对像关系矩阵;得到的数据表和表1一样。
步骤二,通过迭代的方法对步骤一所建立的用户-对像关系矩阵进行降维处理,获得分别对应各用户的一组用户特性向量;所述用户特性向量中每个数值表示该用户对相应的对象的特性的喜好程度;
迭代的过程和技术方案三一样,得到每个用户的特性向量。
步骤三,逐一计算步骤二获得的目标用户的用户特性向量到其他用户的用户特性向量的相关度距离,并将结果作为目标用户到其他用户的相似度。所述相关度距离是指向量间的cosine相关度距离或是Pearson相关度距离;
sim(u1,u2)=0.69
sim(u1,u3)=0.70
sim(u1,u4)=-0.22
sim(u1,u5)=0.13
sim(u1,u6)=0.11
步骤四,选取与目标用户相似度最高的k1个用户,组成推荐用户群;
如果我们对每个用户选取与其相似度高于0.3的用户作为其相似用户,与u1兴趣相似的用户群为(u2,u3)
步骤五,计算所述推荐用户群各用户的大于预定阙值的行为数据与该用户到目标用户的特性相似度之积,并将结果做为单个用户对相应对象的推荐力度,计算不同用户对同一个对象的推荐力度值的和作为推荐用户群对此推荐对象的推荐力度;
u2喜欢产品i4,所以u2投票力度的结果为(0,0,0,3.45,0,0,0),此投票力度向量对应于产品(i1,i2,...,i7)。
u3喜欢产品i1,i5,i6,所以u3投票的结果为(3.50,0,0,0,3.50,3.50,0)。
用户投票结果合计起来得到最终的投票结果为:(3.50,0,0,3.45,3.50,3.50,0)。
步骤六:将用户群对各推荐对象的推荐力度值由大到小进行排序并过滤掉目标用户已评分过的产品;
排列的顺序为:(i6,i5,i1,i4,i3,i2,i7)过滤掉u1已评过分的产品得到的列表为:(i6,i5,i2),由于i6和i5的推荐力度一样大,所以顺序随机。
步骤七:将步骤六中数值最大的k个推荐力度值对应的k个推荐对象推荐给目标用户。
得到最终的top-k推荐列表。比如推荐1个产品给u1的话,则最终top-1推荐结果为(i6)。i6出现在了最后的推荐列表中,而且确实是用户u1喜欢的产品。但也有可能i5排在i6的前面。所以,在我们的例子中top-1推荐准确的概率是50%。
技术方案一的实施过程为:
步骤一,获取服务器中存储的,以数值表征的,一组用户分别针对各被推荐目标的行为数据,根据该获取的数据建立一用户-目标关系矩阵;得到的数据表和表1一样。
步骤二,分解步骤一所建立的用户-目标关系矩阵,获得一组分别对应各用户的用户特性向量;迭代的过程和技术方案三一样,得到每个用户的特性向量。
步骤三,根据步骤二获得的用户特性向量计算当前用户到步骤二所述各用户的特性相似度;所以跟原有方法比,计算用户相似度时,我们考虑到了隐性反馈。
sim(u1,u2)=0.69
sim(u1,u3)=0.70
sim(u1,u4)=-0.22
sim(u1,u5)=0.13
sim(u1,u6)=0.11
步骤四,选取步骤二所述各用户中与当前用户特性相似度最高的k1个用户组成用户群;
如果我们对每个用户选取与其相似度高于0.3的用户作为其相似用户,与u1兴趣相似的用户群为(u2,u3)
步骤五,找出步骤四所述的用户群中所有的用户打分过的被推荐目标,组成一产品集合。
产品集合为:(i1,i2,i3,i4,i5,i6,i7)
步骤六,计算步骤四所述的用户群中各用户针对同一被推荐目标的行为数据的加权平均值;
对产品集合的中每个产品预测u1的评分值为:(4.50,1,1,5,5,4.50,1)
步骤七,按由大到小顺序,排列步骤六所获得的对应各被推荐目标的加权平均值并过滤掉目标用户已评分过的产品。
排列的顺序为:(i4,i5,i6,i1,i2,i3,i7)过滤掉u1已评过分的产品得到的列表为:(i5,i6,i2),得到最终的top-k推荐列表。比如推荐1个产品给u1的话,则最终top-1推荐结果为(i5)。i6没有出现在了最后的推荐列表中。
从技术方案一与从技术方案二的对比可以看出,投票推荐的优势。投票推荐考虑到了用户对产品没有打分的情况,这个时候投票力度为0,而计算平均值则只考虑到了观测到的打分信息。
从技术方案二与技术方案三的对比可以看出,社交网络能带来额外的用户兴趣信息,因为社交好友的兴趣在一些方面是相似的。所以推荐过程中引入社交的因素能提高推荐的准确度。

Claims (9)

1.一种基于邻域的top-k推荐方法,其特征在于,包括如下步骤:
步骤一,响应客户端的请求,建立用户-对象关系矩阵;
从服务器中获取包含目标用户在内的一组用户作为用户集合,再获取一组推荐对象作为对象集合;
从服务器中读取上述用户集合中各用户分别针对对象集合中各推荐对象产生的行为数据;
当任一用户对任一推荐对象未产生行为数据时,均以一预设值作为假定的行为数据;
根据获取的上述行为数据值和假定的行为数据值,建立一个用户-对象关系矩阵;
步骤二,分解用户-对象关系矩阵;
通过迭代的方法对步骤一所建立的用户-对象关系矩阵进行降维处理,获得分别对应各用户的一组用户特性向量;所述用户特性向量中每个数值表示该用户对相应的对象的潜因子特性的关联程度;
步骤三,计算目标用户到其他用户的相似度;
逐一计算步骤二获得的目标用户的用户特性向量到其他用户的用户特性向量的相似度,并将结果作为目标用户到其他用户的相似度;
步骤四,建立推荐用户群;
选取与目标用户相似度大于预设阈值的用户,或与目标用户相似度最高的k1个用户,组成推荐用户群;
步骤五,获取与步骤四所述的推荐用户群中的用户具有行为关联的推荐对象,组成一候选对象集合;
步骤六,对候选对象集合中的每个推荐对象,计算推荐用户群中与该推荐对象具有行为关联的用户针对该对象产生的行为数据的加权平均值,对应各用户的权重为与该用户对应的步骤三中所述的目标用户到其他用户的相似度值;
步骤七,按由大到小顺序,排列步骤六所获得的对应各推荐对象的加权平均值,并过滤掉和目标用户已有历史行为的对象;
步骤八,将数值最大的前k个加权平均值对应的推荐对象返回给客户端。
2.根据权利要求1所述的基于邻域的top-k推荐方法,其特征在于,步骤三所述的目标用户的用户特性向量到其他用户的用户特性向量的相似度,是指目标用户的用户特性向量到其他用户的用户特性向量间的cosine相似度或者Pearson相似度。
3.一种基于邻域的top-k推荐方法,其特征在于,包括如下步骤:
步骤一,响应客户端的请求,建立用户-对象关系矩阵;
从服务器中获取包含目标用户在内的一组用户作为用户集合,再获取一组推荐对象作为对象集合;
从服务器中读取上述用户集合中各用户分别针对对象集合中各推荐对象产生的行为数据;
当任一用户对任一推荐对象未产生行为数据时,均以一预设值作为假定的行为数据;
根据获取的上述行为数据值和假定的行为数据值,建立一个用户-对象关系矩阵;
步骤二,分解用户-对象关系矩阵;
通过迭代的方法对步骤一所建立的用户-对象关系矩阵进行降维处理,获得分别对应各用户的一组用户特性向量;所述用户特性向量中每个数值表示该用户对相应的对象的潜因子特性的关联程度;
步骤三,计算目标用户到其他用户的相似度;
逐一计算步骤二获得的目标用户的用户特性向量到其他用户的用户特性向量的相似度,并将结果作为目标用户到其他用户的相似度;
步骤四,建立推荐用户群;
选取与目标用户相似度大于预设阈值的用户,或与目标用户相似度最高的k1个用户,组成推荐用户群;
步骤五,模拟推荐;
计算所述推荐用户群各用户的大于预定阈值的行为数据与该用户到目标用户的特性相似度之积,并将结果作为单个用户对相应对象的推荐力度,计算不同用户对同一个对象的推荐力度值之和作为推荐用户群对此推荐对象的推荐力度;
步骤六,过滤掉和目标用户已有历史行为的对象,然后进行top-k推荐;
将用户群对各推荐对象的推荐力度值由大到小进行排序;将数值最大的k个推荐力度值对应的k个推荐对象返回给客户端。
4.根据权利要求3所述的基于邻域的top-k推荐方法,其特征在于,步骤三所述的目标用户的用户特性向量到其他用户的用户特性向量的相似度,是指目标用户的用户特性向量到其他用户的用户特性向量间的cosine相似度或者Pearson相似度。
5.一种基于混合邻域的top-k推荐方法,其特征在于,包括如下步骤:
步骤一,响应客户端的请求,建立用户-对象关系矩阵;
从服务器中获取包含目标用户在内的一组用户作为用户集合,再获取一组推荐对象作为对象集合;
从服务器中读取上述用户集合中各用户分别针对对象集合中各推荐对象产生的行为数据;
当任一用户对任一推荐对象未产生行为数据时,均以一预设值作为假定的行为数据;
根据获取的上述行为数据值和假定的行为数据值,建立一个用户-对象关系矩阵;
步骤二,分解用户-对象关系矩阵;
通过迭代的方法对步骤一所建立的用户-对象关系矩阵进行降维处理,获得分别对应各用户的一组用户特性向量;所述用户特性向量中每个数值表示该用户对相应的对象的潜因子特性的关联程度;
步骤三,计算目标用户到其他用户的相似度;
逐一计算步骤二获得的目标用户的用户特性向量到其他用户的用户特性向量的相似度,并将结果作为目标用户到其他用户的相似度;
步骤四,建立推荐用户群;
选取用户集合中与目标用户相似度最高的k1个用户,或者与目标用户相似度大于预设阈值的用户,组成主用户群;
从服务器获取与目标用户关系距离最近的k2个用户,或者与目标用户关系距离小于预设阈值的用户,组成辅助用户群;
混合主用户群和辅助用户群,得到一个混合用户群;
步骤五,模拟推荐;
计算所述混合用户群中各用户的大于预定阈值的行为数据与该用户到目标用户的相似度或关系距离的倒数之积,并将结果作为单个用户对相应对象的推荐力度,再计算不同用户对同一个推荐对象的推荐力度值之和作为用户群对此推荐对象的推荐力度;
步骤六,过滤掉和目标用户已有历史行为的对象,然后进行top-k推荐;
将用户群对各推荐对象的推荐力度值由大到小进行排序;将数值最大的k个推荐力度值对应的k个推荐对象返回给客户端。
6.根据权利要求5所述的基于混合邻域的top-k推荐方法,其特征在于,步骤三所述的目标用户的用户特性向量到其他用户的用户特性向量的相似度,是指目标用户的用户特性向量到其他用户的用户特性向量间的cosine相似度或者Pearson相似度。
7.根据权利要求5所述的基于混合邻域的top-k推荐方法,其特征在于,步骤四中所述的关系距离,是指用数值表征的用户间的任何关系。
8.根据权利要求5所述的基于混合邻域的top-k推荐方法,其特征在于,步骤四所述混合主用户群和辅助用户群的方法为:选择辅助用户群中未被包含在主用户群中的用户,与主用户群组合得到混合用户群。
9.一种基于混合邻域的top-k推荐方法,其特征在于,包括如下步骤:
步骤一,响应客户端的请求,建立用户-对象关系矩阵;
从服务器中获取包含目标用户在内的一组用户作为用户集合,再获取一组推荐对象作为对象集合;
从服务器中读取上述用户集合中各用户分别针对对象集合中各推荐对象产生的行为数据;
当任一用户对任一推荐对象未产生行为数据时,均以一预设值作为假定的行为数据;
根据获取的上述行为数据值和假定的行为数据值,建立一个用户-对象关系矩阵;
步骤二,分解用户-对象关系矩阵;
通过迭代的方法对步骤一所建立的用户-对象关系矩阵进行降维处理,获得分别对应各用户的一组用户特性向量;所述用户特性向量中每个数值表示该用户对相应的对象的潜因子特性的关联程度;
步骤三,计算目标用户到其他用户的相似度;
逐一计算步骤二获得的目标用户的用户特性向量到其他用户的用户特性向量的相似度,并将结果作为目标用户到其他用户的相似度;
步骤四,建立推荐用户群;
选取用户集合中与目标用户相似度最高的k1个用户,或者与目标用户相似度大于预设阈值的用户,组成主用户群;
从服务器获取与目标用户关系距离最近的k2个用户,或者与目标用户关系距离小于预设阈值的用户,组成辅助用户群;
混合主用户群和辅助用户群,得到一个混合用户群;
步骤五,模拟推荐;
取对推荐对象产生的行为数据大于预定阈值的用户的到目标用户的相似度或关系距离的倒数,作为该用户对相应推荐对象的推荐力度,再计算不同用户对同一个推荐对象的推荐力度值之和作为用户群对此推荐对象的推荐力度;
步骤六,过滤掉和目标用户已有历史行为的对象,然后进行top-k推荐;
将用户群对各推荐对象的推荐力度值由大到小进行排序;将数值最大的k个推荐力度值对应的k个推荐对象返回给客户端。
CN201210130111.5A 2012-04-27 2012-04-27 基于邻域的top‑k推荐方法 Active CN103377250B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210130111.5A CN103377250B (zh) 2012-04-27 2012-04-27 基于邻域的top‑k推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210130111.5A CN103377250B (zh) 2012-04-27 2012-04-27 基于邻域的top‑k推荐方法

Publications (2)

Publication Number Publication Date
CN103377250A CN103377250A (zh) 2013-10-30
CN103377250B true CN103377250B (zh) 2017-08-04

Family

ID=49462376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210130111.5A Active CN103377250B (zh) 2012-04-27 2012-04-27 基于邻域的top‑k推荐方法

Country Status (1)

Country Link
CN (1) CN103377250B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577592A (zh) * 2013-11-13 2014-02-12 西安工程大学 基于性格相似度匹配计算的网络社区用户好友推荐方法
CN103686382B (zh) * 2013-12-13 2017-01-11 南京信息工程大学 一种节目推荐方法
EP3155536A4 (en) * 2014-06-12 2017-11-22 Nokia Technologies Oy Method, apparatus, computer program product and system for reputation generation
CN105335409B (zh) * 2014-07-31 2019-02-01 华为技术有限公司 一种目标用户的确定方法、设备和网络服务器
CN104850579B (zh) * 2015-03-20 2018-02-02 南京邮电大学 社交网络中基于评分和特征相似的餐饮推荐算法
CN104851025A (zh) * 2015-05-09 2015-08-19 湘南学院 一种基于案例推理的电商网站商品的个性化推荐方法
CN104901887B (zh) * 2015-05-18 2018-01-12 北京哈工大计算机网络与信息安全技术研究中心 一种基于社会信任的物联网安全路由方法
CN106452809B (zh) * 2015-08-04 2021-07-13 北京奇虎科技有限公司 一种数据处理方法和装置
CN106682035A (zh) * 2015-11-11 2017-05-17 中国移动通信集团公司 一种个性化学习推荐方法及装置
CN107369058A (zh) * 2016-05-13 2017-11-21 华为技术有限公司 一种关联推荐方法及服务器
CN106127591A (zh) * 2016-06-22 2016-11-16 南京邮电大学 基于效用的在线社交网络链接推荐方法
CN106250391B (zh) * 2016-07-15 2019-06-25 浙江大学 一种基于服务聚合与功能信息的api推荐方法
CN106484777B (zh) * 2016-09-12 2020-09-08 腾讯科技(深圳)有限公司 一种多媒体数据处理方法以及装置
CN106651546B (zh) * 2017-01-03 2021-12-07 重庆邮电大学 一种面向智慧社区的电子商务信息推荐方法
CN106897913B (zh) * 2017-01-22 2020-10-27 华南理工大学 一种精确的注塑机选型方法
CN108306812B (zh) * 2017-02-08 2021-03-26 腾讯科技(深圳)有限公司 一种数据处理方法以及服务器
CN107025311A (zh) * 2017-05-18 2017-08-08 北京大学 一种基于k近邻的贝叶斯个性化推荐方法及装置
CN107274255B (zh) * 2017-05-19 2020-09-29 西安电子科技大学 一种基于分解多目标进化算法的协同滤波推荐方法
CN107222566B (zh) * 2017-07-06 2020-09-04 阿里巴巴(中国)有限公司 信息推送方法、装置及服务器
CN109242520A (zh) * 2017-07-10 2019-01-18 中移(杭州)信息技术有限公司 一种目标用户群定位方法及装置
CN107688984A (zh) * 2017-07-27 2018-02-13 上海壹账通金融科技有限公司 产品信息推送方法、装置、存储介质和计算机设备
CN110019657B (zh) * 2017-07-28 2021-05-25 北京搜狗科技发展有限公司 处理方法、装置和机器可读介质
CN107609421A (zh) * 2017-09-25 2018-01-19 深圳大学 隐私保护协同Web服务质量预测的基于邻域的协同过滤方法
CN110020124B (zh) * 2017-10-20 2021-09-07 北京京东尚科信息技术有限公司 用于相关产品挖掘的方法及装置
CN108038789A (zh) * 2017-11-01 2018-05-15 平安科技(深圳)有限公司 项目推荐方法、电子设备及计算机可读存储介质
CN109218769B (zh) * 2018-09-30 2021-01-01 武汉斗鱼网络科技有限公司 一种直播间的推荐方法以及相关设备
CN109657153B (zh) * 2018-12-28 2020-10-13 丹翰智能科技(上海)有限公司 一种用于确定用户的关联财经信息的方法与设备
CN110163747A (zh) * 2019-05-24 2019-08-23 同盾控股有限公司 目标推荐对象挖掘方法、装置、介质及电子设备
CN110442977B (zh) * 2019-08-08 2023-09-29 广州华建工智慧科技有限公司 基于建筑施工工序网络推荐的移动端bim模型智能缓存方法
CN111291196B (zh) * 2020-01-22 2024-03-22 腾讯科技(深圳)有限公司 知识图谱的完善方法及装置、数据处理方法及装置
CN111815410B (zh) * 2020-07-07 2022-04-26 中国人民解放军军事科学院国防科技创新研究院 基于选择性邻域信息的商品推荐方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184235A (zh) * 2011-05-13 2011-09-14 广州星海传媒有限公司 一种基于机顶盒的数字电视节目推荐方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048320A (ja) * 2004-08-04 2006-02-16 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184235A (zh) * 2011-05-13 2011-09-14 广州星海传媒有限公司 一种基于机顶盒的数字电视节目推荐方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于数据挖掘的个性化推荐在SNS中的应用;李智琦等;《电脑知识与技术》;20111031;第7卷(第28期);6828-6830 *
移动通信网中基于用户社会化关系挖掘的协同过滤算法;黄武汉等;《电子与信息学报》;20111231;第33卷(第12期);3002-3007 *

Also Published As

Publication number Publication date
CN103377250A (zh) 2013-10-30

Similar Documents

Publication Publication Date Title
CN103377250B (zh) 基于邻域的top‑k推荐方法
CN110162693B (zh) 一种信息推荐的方法以及服务器
CN105760400B (zh) 一种基于搜索行为的推送消息排序方法及装置
CN108885624B (zh) 信息推荐系统及方法
CN107833117B (zh) 一种考虑标签信息的贝叶斯个性化排序推荐方法
CN108805598B (zh) 相似度信息确定方法、服务器及计算机可读存储介质
CN104239338A (zh) 信息推荐方法及装置
EP2960849A1 (en) Method and system for recommending an item to a user
EP2745254A2 (en) Recommending content information based on user behavior
CN105247507A (zh) 品牌的影响力得分
CN103399858A (zh) 基于信任的社会化协同过滤推荐方法
CN111488385B (zh) 基于人工智能的数据处理方法、装置和计算机设备
Ismail et al. Data mining in electronic commerce: benefits and challenges
US20160012454A1 (en) Database systems for measuring impact on the internet
CN104239335A (zh) 特定用户信息获取方法及装置
Sun et al. Leveraging friend and group information to improve social recommender system
Zhang et al. Precision Marketing Method of E‐Commerce Platform Based on Clustering Algorithm
Xie et al. A probabilistic recommendation method inspired by latent Dirichlet allocation model
CN115344767A (zh) 基于网络数据的供应商评价方法
Chou et al. The RFM Model Analysis for VIP Customer: A case study of golf clothing brand
Wu et al. [Retracted] Using the Mathematical Model on Precision Marketing with Online Transaction Data Computing
CN114861079A (zh) 一种融合商品特征的协同过滤推荐方法和系统
Kumar et al. Context-aware social popularity based recommender system
CN111460300B (zh) 网络内容推送方法、装置及存储介质
Qiu A predictive model for customer purchase behavior in e-commerce context

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201225

Address after: Room 811, block a, Jinxiu international science and technology center, No.26 Juye Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province, 310052

Patentee after: Hangzhou Beidai Technology Co.,Ltd.

Address before: Room 227, building C, 525 Xixi Road, Xihu District, Hangzhou, Zhejiang 310007

Patentee before: Hangzhou Zaiyan Network Technology Co.,Ltd.

TR01 Transfer of patent right