CN102609465B - 基于潜在社群的信息推荐方法 - Google Patents
基于潜在社群的信息推荐方法 Download PDFInfo
- Publication number
- CN102609465B CN102609465B CN201210012345.XA CN201210012345A CN102609465B CN 102609465 B CN102609465 B CN 102609465B CN 201210012345 A CN201210012345 A CN 201210012345A CN 102609465 B CN102609465 B CN 102609465B
- Authority
- CN
- China
- Prior art keywords
- community
- interest
- user
- recommended
- communities
- 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
Links
Images
Abstract
本发明涉及信息推荐技术领域,尤其涉及一种基于潜在社群的信息推荐方法。本发明通过特征发现技术从用户历史记录中挖掘出用户兴趣模型,并根据该模型进行潜在社群发现并挖掘出社群间的层次关系;然后,通过特征提取从待推荐对象中提取出可能存在的兴趣集合,并结合社群层次结构的特点,快速定位到待推荐社群;最后,计算待推荐社群与待推荐对象兴趣集合间的相似度来判断是否满足推荐条件。本发明能够实现灵活的信息批量推送,相比传统点对点的推荐技术,在效率上有大幅提升;并集成了协同过滤技术,增加信息推荐的新颖性。
Description
技术领域
本发明涉及信息推荐技术领域,尤其涉及一种基于潜在社群的信息推荐方法。
背景技术
随着信息社会从“E社会(Electronic Society)”向“U社会(Universal、User-Centric、Ubiquitous Society)”的高级阶段发展,信息推荐技术的研究将具有越来越重要的理论意义和广阔的应用前景,能够被应用于电子商务、数字家庭、娱乐游戏、新闻等许多领域。这种转变的根本原因是计算环境正在实现从以CPU为中心的图灵模式单机向以互联网为中心的网络化跨越和转变;全球51亿移动用户,正通过微博客、Facebook、Twitter等新兴应用,以及移动设备上的各类传感器,改变着传统信息创造、传递、处理、体验的方式。正是网络化的进程加速了信息的交互与增值。2007年底,全球数字信息总量首次超出全球所拥有的存储总量,而在随后的3年里,云计算和物联网为代表的互联网应用深化,导致各类传感器的普及和基于Web2.0的服务混搭技术的风靡,各种新生数据源如雨后春笋般涌现。据美国《科学》杂志最新报道,截止2011年2月,全球生成、捕获与复制所产生的信息量相比2007年增长了4倍,逼近1300EB,信息总量已经达到了存储能力的两倍,同时,信息总冗余量也达到了75%的惊人比例。这种态势一方面给信息处理、通信和存储能力提出更高要求;另一方面,尽管所处的信息空间在急剧膨胀,但人们真正需求的只是那些与自己的兴趣、工作、专业、学习等相关的个性化信息,在信息社会的高级阶段,人们已从对简单信息的需求转化为对有用信息和知识信息的需求,海量信息必须经过过滤才不会对人形成困扰。如何快速、精准地为用户提供有价值的信息服务成为当前巨大的挑战性问题。因此,海量信息推荐的重点在于如何在合适的时间、合适的地点、选择合适的信息提供满足用户需求的服务。
社群(Group)是目前社会媒体网站中非常流行的一种机制,例如Youtube、Flickr等。用户能够手工创建Group用于实现资源的功能与推荐。研究发现,超过一半的Flickr用户参与了至少一个Group,这表明用户热衷于抱团式的资源共享,同时Group又会吸引大量新用户,提高站点的热度。通常,每个Group包含一个或多个主题的资源,用户若对这些主题中的部分感兴趣,则可以加入这个Group,并与其中的所有用户分享资源。不过,目前的Group机制也存在一些不足:
.自组织:一个主题也许对应了大量Group,如Flickr中与“鸟”相关的主题有近3万个。对于这种情况,用户往往会不知错所,迷茫于到底加入哪个group;
.多义性:一个资源,无论是图像、视频或软件服务,往往包含了众多的语义信息,用户如何分类这些资源,并上传到对应的Group里,一直是个问题;
.潜意识性:用户经常会意识不到自己的实际兴趣,可能会错过很多Group加入;
.噪声:由于Group是一种完全自由、松散的方式构造起来的,导致很多Group中可能会存在一些与其主题无关的资源,或者对该主题并不是很感兴趣的用户,导致基于Group的推荐经常会导致错误。
正是由于目前Group的以上缺陷,导致了无序的资源推荐。因此,大部分研究着重于探索如何推荐合适的Group给用户,或者将一个资源推荐到合适的Group中。不过,尽管这些方法能够选出最适合的Group推荐给某个用户或某个资源,大多数兴趣相似的用户可能仍然分居在不同Group中,无法进行充分的资源共享与推荐。
发明内容
针对上述存在的技术问题,本发明的目的是提供一种基于潜在社群的信息推荐方法,实现准确高效而不失新颖的自动推荐。
为达到上述目的,本发明采用的技术方案为一种基于潜在社群的信息推荐方法,包含以下步骤:
步骤1,根据用户历史数据记录来进行用户兴趣模型挖掘,包括以下步骤,
步骤1.1,采用特征发现技术从用户交互过的信息中挖掘出兴趣;
步骤1.2,根据用户与信息交互次数的量化,衡量用户对兴趣的感兴趣程度;
步骤1.3,将用户、兴趣以及用户对兴趣的感兴趣程度组织成用户兴趣模型;
步骤2,基于用户兴趣模型进行潜在社群发现,并根据社群层次关系定义对潜在社群进行社群层次关系挖掘,得到社群层次结构;
所述潜在社群包括单一兴趣社群和多兴趣社群,一个社群的所有用户构成该社群的用户集,一个社群的所有兴趣构成该社群的兴趣集;
所述社群层次关系定义如下,
(1)若一个社群G的用户集包含另一个社群G′的用户集,同时社群G的兴趣集被社群G′的兴趣集包含,则社群G是社群G′的上位社群,社群G′是社群G的下位社群;
(2)若一个上位社群和一个下位社群之间不存在别的社群,则称为直接上位社群和直接下位社群;
(3)只有直接上位社群和直接下位社群之间才有连接,并且直接上位社群通过键指向直接下位社群,这个键是直接下位社群比直接上位社群多出来的单一兴趣社群编号;
基于用户兴趣模型进行潜在社群发现包括以下步骤,
步骤2.1,根据用户兴趣模型发现单一兴趣社群,
所述单一兴趣社群表示为,
{(tidk)(∪uj)}
其中,tidk为单一兴趣社群的编号,ti表示该社群对应的兴趣,dk表示该社群对应的兴趣度,∪uj表示该社群对应的用户集,dk根据该社群对应的用户对兴趣ti的感兴趣程度量化得到;
步骤2.2,基于单一兴趣社群迭代发现多兴趣社群,
所述多兴趣社群表示为,
{(∪gi)(∪uj)}
其中,gi表示该社群包含的某个单一兴趣社群,∪gi表示该社群对应的单一兴趣社群集合,采用组合成该社群的所有单一兴趣社群的编号的集合表示,即单一兴趣社群编号集合;∪uj表示该社群对应的用户集;
所述迭代发现多兴趣社群的实现方式如下,
设有单一兴趣社群gi,按照i=0,1…Max的顺序,分别组合社群gi和社群gi,gi+1…gMax,从中发现单一兴趣社群编号集合包括单一兴趣社群gi的编号的所有社群;若社群gi与gj组合生成新社群,基于社群层次关系判断新社群是否是被包含的社群,若是则去除新社群,若不是则将新社群加入社群层次关系,并将新社群和社群gi继续与社群gj,gj+1…gMax分别组合;
所述组合,是指将两个社群的兴趣集取并集,两个社群的用户集取交集;
所述生成新社群,是指当组合所得社群的用户集中用户数目不小于预设阈值时,将组合所得社群作为生成的新社群;
所述包含,是指若一个社群A包含另一个社群B,则表示组合成社群B的单一兴趣社群集合是组合成社群A的单一兴趣社群集合的子集,社群B的用户集是社群A的用户集的子集;
判断新社群是否是被包含的社群的具体实现方式如下,
设一个多兴趣社群G,若多兴趣社群G被包含,则在包含多兴趣社群G的所有社群中,一定存在一个社群G′是其他社群的上位社群;
首先定位到单一兴趣社群然后在单一兴趣社群及单一兴趣社群的下位社群中查找键i2,若找到,返回键i2对应的社群没找到则不存在社群G′,结束查找;再根据返回的社群查找键i3,若社群的兴趣集中包含i3,则返回社群自身,否则在社群及其下位社群中查找键i3,找到则返回键i3对应的社群没找到则不存在社群G′,结束查找;同样的方法循环,直到查完键in,找到则返回键in对应的社群作为社群G′,没找到则不存在社群G′,结束查找;
若不存在社群G′,则判定多兴趣社群G不被包含,若找到社群G′,则判断社群G′的用户集是否包含多兴趣社群G的用户集,若包含则多兴趣社群G是被包含的,否则多兴趣社群G不被包含;
步骤3,基于社群层次关系进行推荐,包括以下步骤,
步骤3.1,挖掘待推荐项目包含的兴趣;
步骤3.2,根据待推荐项目包含的兴趣,按照步骤2所得社群层次关系找到满足推荐条件的待推荐社群,将待推荐项目推送到找到的待推荐社群;
步骤3.3,记录用户反馈信息并更新社群层次关系。
而且,步骤3.2中,查找满足推荐条件的待推荐社群的具体方式如下,
步骤a,首先将单一兴趣社群列表L0中满足推荐条件的社群加入到推荐社群列表L1中,将不满足推荐条件的加入到待推荐社群列表L2中;
步骤b,将L2中的社群与L2中的社群组合,得到社群组合结果;
步骤c,将社群组合结果在社群层次关系中查找到相应的社群加入到社群列表L3;
步骤c,将L3中社群与L1中社群进行比较,若包含L1中社群则从L3中剔除;
步骤d,判断L3中社群是否满足推荐条件,将满足推荐条件的社群加入到L1中;
步骤e,将不满足推荐条件的社群加入到待推荐社群列表L4中;将L4中的社群继续与L2中的社群组合得到社群组合结果,返回执行步骤b,不断的循环下去,直到L3或者L4为空为止。
而且,判断一个社群是否满足推荐条件,根据待推荐兴趣组合和待推荐社群间相似度决定,计算公式如下,
其中,ot表示待推荐项目包含的所有兴趣构成的待推荐兴趣组合,gt表示待推荐社群的兴趣集,δ是避免出现除零情况的参数,Pscore表示待推荐兴趣组合和待推荐社群的兴趣集的同向度,Nscore表示待推荐兴趣组合和待推荐社群的兴趣集的异向度。
本发明具有以下优点和积极效果:
1)通过潜在Group发现,将具有相似兴趣的群体聚集在一起,并根据兴趣的多少、用户的众寡,实现不同粒度的Group层次化抽象,从而能够实现灵活的信息自动批量推送,相比传统点对点的推荐技术,在效率上有大幅提升;
2)在潜在Group挖掘过程中集成了协同过滤技术,从而使得同一Group中的不同用户能够相互间接影响、学习,从而增加信息推荐的新颖性。
附图说明
图1是本发明实施例的流程图;
图2是本发明实施例的用户兴趣模型示意图;
图3是本发明实施例的单一兴趣社群示意图;
图4是本发明实施例中基于单一兴趣社群迭代发现多兴趣社群的示意图;
图5是本发明实施例中对单一兴趣社群g0组合成多兴趣社群的示意图;
图6是本发明实施例中多兴趣社群发现结果的示意图;
图7是本发明实施例中社群层次关系的示意图;
图8是本发明实施例中社群层次关系生成过程中的示意图;
图9是本发明实施例中待推荐社群寻找过程中的示意图;
图10是本发明实施例中待推荐项目与待推荐社群之间匹配的示意图,其中图10a是Nscore=γ1的示意图,图10b是Nscore=γ1+γ2的示意图,图10c是Nscore=γ1+γ3的示意图,图10d是Nscore=γ1+γ2+γ3的示意图。
具体实施方式
以下结合附图和实施例详细说明本发明技术方案。
本发明提供了一种基于潜在社群的信息推荐方法,实施例的处理流程如图1所示:收集的用户历史数据记录可以保存在数据库中,实施例通过特征发现技术从收集的用户历史数据记录中挖掘出用户兴趣模型;然后根据用户兴趣模型进行潜在社群发现并挖掘出社群间的层次关系。推荐时则通过特征提取从待推荐项目中提取出待推荐兴趣集合,然后结合社群层次结构的特点,快速定位到待推荐社群;再根据推荐算法,计算待推荐社群与待推荐兴趣集合间的相似度来决策是否满足推荐条件。最后,若推荐成功,记录用户反馈信息作为新的用户历史数据记录写入数据库,并参加下一次更新,这样可以保持社群层次关系自动更新。
为便于实施参考起见,实施例的具体步骤提供如下:
步骤1,根据用户历史数据记录来进行用户兴趣模型挖掘,包括以下步骤:
步骤1.1,根据用户历史数据记录,采用特征发现技术从用户交互过的信息中挖掘出兴趣。
针对不同信息的特点,所采用的特征发现方法也将有所不同,不过最终都归结到分类问题。以图片的特征发现为例,首先对图片进行切割,然后对每一部分进行特征提取之后再与训练集进行相似性计算,对应到Tag(语义),最后对Tag进行聚类,每一类将成为一个兴趣。本发明不予赘述。
步骤1.2,根据用户与信息交互次数的量化来衡量用户对兴趣的感兴趣程度。
其中,表示用户i与兴趣t的交互次数,IFi表示用户i的交互频率,α用来避免出现除零情况。IFi的计算公式为:
其中,sumINi表示用户i的总交互次数,avgIN表示平均每个用户的交互次数。然后在每个兴趣t上根据所有用户的兴趣度Dt来判定该用户对兴趣t的感兴趣程度。
步骤1.3,将用户、兴趣以及它们之间的关系组织成用户兴趣模型。
量化了所有用户与兴趣之间的关系(即用户对兴趣的感兴趣程度)后,就能形成用户兴趣模型。图2是用户兴趣模型的一个示例。该模型的每列(t1、t2、t3、t4)表示一个兴趣,每行(u1、u2、u3、u4、u5、u6)表示一个用户,中间的权值表示用户对兴趣的感兴趣程度,感兴趣程度的由低到高为d1、d2、d3。模型中用0表示感兴趣程度未知,就是还没有该用户与该兴趣的对应关系。
步骤2,基于用户兴趣模型进行潜在社群发现,并根据社群层次关系定义对潜在社群进行社群层次关系挖掘,得到社群层次结构。
所述潜在社群包括单一兴趣社群和多兴趣社群,一个社群的所有用户构成该社群的用户集,一个社群的所有兴趣构成该社群的兴趣集。
步骤2.1,根据用户兴趣模型发现包含单一兴趣的社群。
在用户兴趣模型中,针对单个兴趣,将感兴趣程度相同的用户划分到同一个社群,这样的社群由于只涉及到单个兴趣,故本发明称为单一兴趣社群。单一兴趣社群包含的属性有兴趣,兴趣等级和用户集。以图2为例,进行单一兴趣社群发现之后,见图3,兴趣t1、t2、t3、t4和兴趣等级d1、d2、d3构成单一兴趣社群g0、g1、g2、g3、g4、g5、g6、g7、g8、g9、g10、g11。例如,在兴趣t1上,用户u1,u2,u3,u4的兴趣度都是d1,故他们构成单一兴趣社群g0,用户u5,u6的兴趣度都是d2,构成g1,没有用户的兴趣为d3,因此g2为Φ(空集)。
某个单一兴趣社群可以表示成
{(tidk)(∪uj)}
其中,单一兴趣社群的编号tidk包含兴趣和兴趣度两个信息,ti表示该社群对应的兴趣,dk表示该社群对应的兴趣度,∪uj表示该社群对应的用户集。dk根据该社群对应的用户对兴趣ti的感兴趣程度量化得到,即步骤1.2计算结果。
步骤2.2,基于单一兴趣社群迭代发现包含多兴趣的社群。
不同的单一兴趣社群,若用户集有交集(实施例设定不少于2),就能组合成包含多兴趣的社群,本发明称为多兴趣社群。多兴趣社群包含两个属性,分别是用户集和单一兴趣社群编号集合。单一兴趣社群编号集合取组合成它的单一兴趣社群的兴趣及兴趣度的并集,用户集取组合成它的单一兴趣社群用户集的交集。单一兴趣社群的编号由单一兴趣社群对应的兴趣和兴趣度共同唯一确定,即tidk。例如,图3中g0,g4,g6就能组合成图2中标记的多兴趣社群。
某个多兴趣社群可以表示成
{(∪gi)(∪uj)}
其中,gi表示该社群包含的某个单一兴趣社群,∪gi表示该社群对应的单一兴趣社群集合,可采用组合成该社群的所有单一兴趣社群的编号的集合表示,即单一兴趣社群编号集合。∪uj表示该社群对应的用户集。
实施例发现包含多兴趣的社群采用迭代的过程见图4,设有单一兴趣社群g0,g1…gMax,首先考虑单一兴趣社群g0,g1…gMax,从中找出单一兴趣社群编号集合包括单一兴趣社群g0的编号的所有社群,即找到的社群都满足单一兴趣社群g0的编号是组合成该社群的单一兴趣社群集合的子集;然后考虑g1,g2…gMax,从中找出包含单一兴趣社群g1的所有社群;依次处理,直到最后考虑单一兴趣社群gMax,从中找出包含单一兴趣社群gMax的所有社群。后产生的社群可能被前面已经生成的社群包含,因此要去包含。
图4中每一小步的流程见图5。设有单一兴趣社群gi,按照i=0,1…Max的顺序,分别组合社群gi和社群gi,gi+1…gMax,从中发现单一兴趣社群编号集合包括单一兴趣社群gi的编号的所有社群;若社群gi与gj组合生成新社群,基于社群层次关系判断新社群是否是被包含的社群,若是则去除新社群,若不是则将新社群加入社群层次关系,并将新社群和社群gi继续与社群gj,gj+1…gMax分别组合。
所述组合,是指将两个社群的兴趣集取并集,两个社群的用户集取交集;
所述生成新社群,是指当组合所得社群的用户集中用户数目不小于预设阈值(实施例取值为2)时,将组合所得社群作为生成的新社群;
所述包含,是指若一个社群A包含另一个社群B,则表示组合成社群B的单一兴趣社群集合是组合成社群A的单一兴趣社群集合的子集,社群B的用户集是社群A的用户集的子集。
以图3中的单一兴趣社群列表为例,首先按照图5中所示的流程图找出包含单一兴趣社群g0的所有社群。开始多兴趣社群列表为空,g1与g0组合,没有用户交集,不能形成多兴趣社群;g2与g0组合,同样没交集;g3与g0组合,还是没交集;g4与g0组合,交集为{u1,u3,u4},故形成G0{(g0,g4)(u1,u3,u4)},满足条件,将G0加入到多兴趣社群列表中;g5与G0,g0组合,都没用户交集;g6与G0组合,交集为{u1,u3},形成G1{(g0,g4,g6)(u1,u3)},满足条件,将G1加入到多兴趣社群列表中;g6与g0组合,形成{(g0,g6)(u1,u3)},其被G1包含,故不满足条件;g7与G0,G1,g0组合,都没交集;g8与G0组合,交集为{u4},长度小于2,不满足条件;g8与G1组合,没交集;g8与g0组合,交集为{u4},不满足条件;g9与G0,G1,g0组合,都没交集;g10与G0,G1,g0组合,都没交集;g11与G0组合,交集为{u3,u4},形成G2{(g0,g4,g11)(u3,u4)}满足条件,将G2加入到多兴趣社群列表中;g11与G1组合,交集为{u3},不满足条件;g11与g0组合,交集为{u2,u3,u4},形成G3{(g0,g11)(u2,u3,u4)},G3没有被别的社群包含,故满足条件,将G3加入到多兴趣社群列表中。New Group(新社群)由单一兴趣社群列表中成员与多兴趣社群列表中成员或者g0组合而成,即New Group由两个单一兴趣社群组合而成,或者由一个多兴趣社群和另一个单一兴趣社群组合而成。如果New Group满足条件,则加入到多兴趣社群列表。
至此,包含g0的所有社群已被找到,即多兴趣社群列表中的G0,G1,G2,G3。同样的方法,按图4给出的步骤,得到的结果见图6。对单一兴趣社群gi(i的取值为0,1,4,6,8)寻找包含单一兴趣社群gi的所有社群,对单一兴趣社群g0找到的多兴趣社群为{(g0,g4)(u1,u3,u4)},{(g0,g4,g6)(u1,u3)},{(g0,g4,g11)(u3,u4)},{(g0,g11)(u2,u3,u4)},对单一兴趣社群g4找到的多兴趣社群为{(g4,g6)(u1,u3)},{(g4,g8)(u4,u5)},{(g4,g11)(u3,u4)};对其他单一兴趣社群g1、g6、g8未找到,为空集。
实施例定义社群层次关系,所有的社群都将通过社群层次结构组织在一起。层次结构定义如下:
(1)若一个社群G的用户集包含另一个社群G′的用户集,同时社群G的兴趣集被社群G′的兴趣集包含,则社群G是社群G′的上位社群,社群G′是社群G的下位社群;
(2)若一个上位社群和一个下位社群之间不存在别的社群,则称为直接上位社群和直接下位社群;
(3)只有直接上位社群和直接下位社群之间才有连接,并且直接上位社群通过键指向直接下位社群,这个键是直接下位社群比直接上位社群多出来的单一兴趣社群编号。
以上特点决定了每个用户兴趣模型对应的社群层次结构是唯一的。图7所示的是对应图6的社群层次关系图:(g11)(u2,u3,u4)指向(g0.g11)(u2,u3,u4),键值为0;(g0)(u1,u2,u3,u4)指向(g0.g11)(u2,u3,u4)和(g0,g4)(u1,u3,u4),键值为11和4;(g4)(u1,u3,u4,u5)指向(g0,g4)(u1,u3,u4)和(g4,g8)(u4,u5),键值为0和8;(g6)(u1,u3)指向(g0,g4,g6)(u1,u3),键值为0,4;(g8)(u4,u5)指向(g4,g8)(u4,u5),键值为4;(g0.g11)(u2,u3,u4)指向(g0,g4,g11)(u3,u4),键值为4;(g0,g4)(u1,u3,u4)指向(g0,g4,g11)(u3,u4)和(g0,g4,g6)(u1,u3),键值为11和6。键值即下位社群比上位社群多出来的单一兴趣社群的编号。
图8列出了几种不同情形下社群层次结构的变化。情形(1)中,单一兴趣社群g或者多兴趣社群G与单一兴趣社群g′组合,若生成的新社群满足条件(即同时满足成为社群和不被包含的条件),则g或者G通过g′的编号指向新社群,g′则通过g的编号或者G中包含的单一兴趣社群的编号指向新社群;情形(2)中,多兴趣社群G与单一兴趣社群g组合,生成的新社群包含了G,则g通过G中包含的单一兴趣社群的编号指向G,然后再用新社群代替G(只替换社群内容,层次结构信息不替换);情形(3)则是情形(1)的一种特殊情况,即生成的新社群有下位社群存在,这种情形下,首先需要去掉g或者G和g′与下位社群G′之间的联系,然后将新社群指向G′,再建立g或者G和g′与新社群之间的联系,方法与情形(1)相同。
例如:在多兴趣社群发现,找出包含g0的所有社群的过程中,g4与g0组合产生G0{(g0,g4)(u1,u3,u4)},符合图8中情形(1),g4,g0将分别通过键0,4指向G0;g6与G0组合产生G1{(g0,g4,g6)(u1,u3)},符合情形(1),g6通过键0,4指向G1,G0通过键6指向G1;g11与G0产生G2{(g0,g4,g11)(u3,u4)},符合情形(1),G0通过键11指向G2,g11通过键0,4指向G2;g11与g0组合产生G3{(g0,g11)(u2,u3,u4)},符合情形(3),g11将不再指向G2,而改为通过键0指向G3,G3通过键4指向G2,g0通过键11指向G3。至此包含g0的所有社群都层次化了。
为保证生成的所有社群都是没有包含关系的,需要针对多兴趣社群,进行去包含关系运算。即若一个社群的兴趣集和用户集同时被另一个社群包含,那么这个社群就应该去掉,这个过程称为去包含关系过程。其目的是保证所有生成的潜在社群都是有存在必要的。图6中,社群{(g4,g6)(u1,u3)},{(g4,g11)(u3,u4)}因被包含了而被去掉。实施例基于社群层次关系进行去包含关系运算。
由社群层次结构的特点能发现,给定一个多兴趣社群G,若G被包含,则在包含G的所有社群中,一定存在一个社群G′,它是其他社群的上位社群。因此,若想判断G是否被包含,只需找出G′,然后判断G是否被G′包含即可。找出G′的方法如下:
先找出组合成多兴趣社群G的单一兴趣社群,假设它们为首先定位到然后在及其下位社群中查找键i2,若找到,返回键i2对应的社群否则不存在这样的G′,结束查找;再根据返回的社群来查找键i3,若的兴趣集中包含i3,则返回自身,否则在及其下位社群中查找键i3,找到则返回键i3对应的社群没找到则不存在这样的G′,结束查找;同样的方法循环,直到查完键in为止,若不存在这样的G′,则判定G不被包含,若找到这样的G′,则还需要判断G′的用户集是否包含G的用户集,若包含,则G是被包含的,否则不被包含。
以图6中的社群G{(g4,g6)(u1,u3)}为例,结合图7中的层次结构图说明。首先定位到g4,然后在g4及其下位社群中查找键6,发现{(g0,g4)(u1,u3,u4)}存在键6,然后返回键6对应的G′{(g0,g4,g6)(u1,u3)};再判断G′是否包含G,发现包含,故{(g4,g6)(u1,u3)}应该去掉。
步骤3,基于社群层次关系进行推荐,包括以下步骤:
步骤3.1,发现待推荐项目包含的待推荐兴趣组合。
用户兴趣模型中的兴趣也是通过特征发现技术从项目中挖掘出来的,这一步与步骤1.1具体实现方式相同。发现待推荐项目可能包含的多个兴趣,构成待推荐兴趣组合。
步骤3.2,根据待推荐项目包含的兴趣,按照步骤2所得社群层次结构找到满足推荐条件的待推荐社群,将待推荐项目推送到找到的待推荐社群。
根据社群层次结构的特点,下位社群中的用户集一定是被上位社群的用户集包含的,因此,若判定一个社群满足推荐条件,则不用再继续考虑它的下位社群。参见图9,假设待推荐兴趣集合为i1,i2,…,ik,它们对应的单一兴趣社群列表为L0{g1,g2,…,gn},执行以下步骤:
步骤a,首先将单一兴趣社群列表L0中满足推荐条件的社群加入到推荐社群列表L1中,将不满足推荐条件的加入到待推荐社群列表L2中;
步骤b,将L2中的社群与L2中的社群组合(即L2中的社群两两组合),得到社群组合结果;
步骤c,将社群组合结果在社群层次关系中查找到相应的社群加入到社群列表L3;
步骤c,将L3中社群与L1中社群进行比较,若包含L1中社群则从L3中剔除;
步骤d,判断L3中社群是否满足推荐条件,将满足推荐条件的社群加入到L1中;
步骤e,将不满足推荐条件的社群加入到待推荐社群列表L4中;将L4中的社群继续与L2中的社群组合得到社群组合结果,返回执行步骤b,不断的循环下去,直到L3或者L4为空为止。这样,所有满足推荐条件的社群都在推荐社群列表L1中了。
判断一个社群是否满足推荐条件,将根据待推荐兴趣组合和待推荐社群间相似度决定,计算公式为:
其中,ot表示待推荐兴趣组合,gt表示待推荐社群的兴趣集,δ用于避免出现除零情况,Pscore表示两者同向度,Nscore表示两者异向度。
图10中列出了两者间可能出现的4种情形。同向度Pscore计算的是两者相同部分带来的收益,其计算公式为:
其中,λm表示兴趣tm对应的兴趣度,tMatch表示待推荐兴趣组合与待推荐社群的兴趣集的交集。
而异向度Nscore计算的是两者不同部分带来的收益,其计算部分根据情形不同有所差异。图10情形(a)中,Nscore=γ1,(b)中,Nscore=γ1+γ2,(c)中,Nscore=γ1+γ3,(d)中Nscore=γ1+γ2+γ3。
γ1表示相同兴趣下因兴趣度不同带来的差异,其计算公式为:
λi和λj分别表示兴趣ti和tj对应的兴趣度,兴趣ti和tj是集合tMatch中的两个不同兴趣。
γ2,γ3分别表示待推荐社群的兴趣集gt和待推荐兴趣组合ot中不匹配的兴趣带来的差异,它们的计算公式为:
其中,OMismatch表示ot中存在、gt中不存在的兴趣集合,兴趣td是集合OMismatch中的兴趣,avgλ表示ot中不匹配的兴趣对应兴趣度的平均值;gMismatch表示gt中存在、ot中不存在的兴趣集合,兴趣tc是集合gMismatch中的兴趣,λc表示兴趣tc对应的兴趣度。
只有相似度大于给定的阀值,才满足推送条件。具体实施时,阀值可根据具体情况由本领域技术人员设定。
步骤3.3,记录用户反馈信息并更新社群层次关系。
项目推荐到社群之后,最终会推送到用户那里,根据用户与推荐项目的交互来记录反馈结果,可设定在一段时间之后,社群层次关系根据新的交互记录更新。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (3)
1.一种基于潜在社群的信息推荐方法,其特征在于,包含以下步骤:
步骤1,根据用户历史数据记录来进行用户兴趣模型挖掘,包括以下步骤,
步骤1.1,采用特征发现技术从用户交互过的信息中挖掘出兴趣;
步骤1.2,根据用户与信息交互次数的量化,衡量用户对兴趣的感兴趣程度;
步骤1.3,将用户、兴趣以及用户对兴趣的感兴趣程度组织成用户兴趣模型;
步骤2,基于用户兴趣模型进行潜在社群发现,并根据社群层次关系定义对潜在社群进行社群层次关系挖掘,得到社群层次结构;
所述潜在社群包括单一兴趣社群和多兴趣社群,一个社群的所有用户构成该社群的用户集,一个社群的所有兴趣构成该社群的兴趣集;
所述社群层次关系定义如下,
(1)若一个社群G的用户集包含另一个社群G′的用户集,同时社群G的兴趣集被社群G′的兴趣集包含,则社群G是社群G′的上位社群,社群G′是社群G的下位社群;
(2)若一个上位社群和一个下位社群之间不存在别的社群,则称为直接上位社群和直接下位社群;
(3)只有直接上位社群和直接下位社群之间才有连接,并且直接上位社群通过键指向直接下位社群,这个键是直接下位社群比直接上位社群多出来的单一兴趣社群编号;
基于用户兴趣模型进行潜在社群发现包括以下步骤,
步骤2.1,根据用户兴趣模型发现单一兴趣社群,
所述单一兴趣社群表示为,
{(tidk)(∪uj)}
其中,tidk为单一兴趣社群的编号,ti表示该社群对应的兴趣,dk表示该社群对应的兴趣度,∪uj表示该社群对应的用户集,dk根据该社群对应的用户对兴趣ti的感兴趣程度量化得到;
步骤2.2,基于单一兴趣社群迭代发现多兴趣社群,
所述多兴趣社群表示为,
{(∪gi)(∪uj)}
其中,gi表示该社群包含的某个单一兴趣社群,∪gi表示该社群对应的单一兴趣社群集合,采用组合成该社群的所有单一兴趣社群的编号的集合表示,即单一兴趣社群编号集合;∪uj表示该社群对应的用户集;
所述迭代发现多兴趣社群的实现方式如下,
设有单一兴趣社群gi,按照i=0,1…Max的顺序,分别组合社群gi和社群gi,gi+1…gMax,从中发现单一兴趣社群编号集合包括单一兴趣社群gi的编号的所有社群;若社群gi与gj组合生成新社群,基于社群层次关系判断新社群是否是被包含的社群,若是则去除新社群,若不是则将新社群加入社群层次关系,并将新社群和社群gi继续与社群gj,gj+1…gMax分别组合;
所述组合,是指将两个社群的兴趣集取并集,两个社群的用户集取交集;
所述生成新社群,是指当组合所得社群的用户集中用户数目不小于预设阈值时,将组合所得社群作为生成的新社群;
所述包含,是指若一个社群A包含另一个社群B,则表示组合成社群B的单一兴趣社群集合是组合成社群A的单一兴趣社群集合的子集,社群B的用户集是社群A的用户集的子集;
判断新社群是否是被包含的社群的具体实现方式如下,
设一个多兴趣社群G,若多兴趣社群G被包含,则在包含多兴趣社群G的所有社群中,一定存在一个社群G′是其他社群的上位社群;
首先定位到单一兴趣社群然后在单一兴趣社群及单一兴趣社群的下位社群中查找键i2,若找到,返回键i2对应的社群没找到则不存在社群G′,结束查找;再根据返回的社群查找键i3,若社群的兴趣集中包含i3,则返回社群自身,否则在社群及其下位社群中查找键i3,找到则返回键i3对应的社群没找到则不存在社群G′,结束查找;同样的方法循环,直到查完键in,找到则返回键in对应的社群作为社群G′,没找到则不存在社群G′,结束查找;
若不存在社群G′,则判定多兴趣社群G不被包含,若找到社群G′,则判断社群G′的用户集是否包含多兴趣社群G的用户集,若包含则多兴趣社群G是被包含的,否则多兴趣社群G不被包含;
步骤3,基于社群层次关系进行推荐,包括以下步骤,
步骤3.1,挖掘待推荐项目包含的兴趣;
步骤3.2,根据待推荐项目包含的兴趣,按照步骤2所得社群层次结构查找满足推荐条件的待推荐社群,将待推荐项目推送到找到的待推荐社群;
步骤3.3,记录用户反馈信息并更新社群层次关系。
2.如权利要求1所述基于潜在社群的信息推荐方法,其特征在于:步骤3.2中,查找满足推荐条件的待推荐社群的具体方式如下,
步骤a,首先将单一兴趣社群列表L0中满足推荐条件的社群加入到推荐社群列表L1中,将不满足推荐条件的加入到待推荐社群列表L2中;
步骤b,将L2中的社群与L2中的社群组合,得到社群组合结果;
步骤c,将社群组合结果在社群层次关系中查找到相应的社群加入到社群列表L3;
步骤c,将L3中社群与L1中社群进行比较,若包含L1中社群则从L3中剔除;
步骤d,判断L3中社群是否满足推荐条件,将满足推荐条件的社群加入到L1中;
步骤e,将不满足推荐条件的社群加入到待推荐社群列表L4中;将L4中的社群继续与L2中的社群组合得到社群组合结果,返回执行步骤b,不断的循环下去,直到L3或者L4为空为止。
3.如权利要求2所述基于潜在社群的信息推荐方法,其特征在于:判断一个社群是否满足推荐条件,根据待推荐兴趣组合和待推荐社群间相似度决定,计算公式如下,
其中,ot表示待推荐项目包含的所有兴趣构成的待推荐兴趣组合,Tt表示待推荐社群的兴趣集,δ是避免出现除零情况的参数,Pscore表示待推荐兴趣组合和待推荐社群的兴趣集的同向度,Nscore表示待推荐兴趣组合和待推荐社群的兴趣集的异向度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210012345.XA CN102609465B (zh) | 2012-01-16 | 2012-01-16 | 基于潜在社群的信息推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210012345.XA CN102609465B (zh) | 2012-01-16 | 2012-01-16 | 基于潜在社群的信息推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102609465A CN102609465A (zh) | 2012-07-25 |
CN102609465B true CN102609465B (zh) | 2014-04-16 |
Family
ID=46526837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210012345.XA Active CN102609465B (zh) | 2012-01-16 | 2012-01-16 | 基于潜在社群的信息推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102609465B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108629054A (zh) * | 2018-06-26 | 2018-10-09 | 深圳市爱的网络科技有限公司 | 社群推送方法、装置、计算机装置及计算机可读存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968739A (zh) * | 2012-12-11 | 2013-03-13 | 苏州亚安智能科技有限公司 | 基于现代技术的智慧型电子商务服务平台 |
CN103294800B (zh) | 2013-05-27 | 2016-12-28 | 华为技术有限公司 | 一种信息推送方法及装置 |
CN104572669B (zh) * | 2013-10-15 | 2017-12-19 | 财团法人资讯工业策进会 | 推荐系统及其方法 |
US10379708B2 (en) | 2014-09-26 | 2019-08-13 | Mickael Pic | Graphical user interface for a common interest social network |
CN106557513B (zh) | 2015-09-29 | 2022-05-10 | 腾讯科技(深圳)有限公司 | 事件信息推送方法及事件信息推送装置 |
CN105608116B (zh) * | 2015-12-14 | 2019-03-15 | 成都陌云科技有限公司 | 基于交互历史数据的个性化推荐方法 |
CN105677701A (zh) * | 2015-12-24 | 2016-06-15 | 苏州大学 | 一种基于不经意传输的社会化推荐方法 |
CN108268198B (zh) * | 2017-03-14 | 2021-05-04 | 阿里巴巴(中国)有限公司 | 交互式信息展示的方法及装置 |
CN108287864B (zh) * | 2017-12-06 | 2020-07-10 | 深圳市腾讯计算机系统有限公司 | 一种兴趣群组划分方法、装置、介质及计算设备 |
WO2020000205A1 (zh) * | 2018-06-26 | 2020-01-02 | 深圳市爱的网络科技有限公司 | 社群推送方法、装置、计算机装置及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719145A (zh) * | 2009-11-17 | 2010-06-02 | 北京大学 | 基于图书领域本体的个性化搜索方法 |
CN101819572A (zh) * | 2009-09-15 | 2010-09-01 | 电子科技大学 | 一种用户兴趣模型的建立方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6868525B1 (en) * | 2000-02-01 | 2005-03-15 | Alberti Anemometer Llc | Computer graphic display visualization system and method |
-
2012
- 2012-01-16 CN CN201210012345.XA patent/CN102609465B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819572A (zh) * | 2009-09-15 | 2010-09-01 | 电子科技大学 | 一种用户兴趣模型的建立方法 |
CN101719145A (zh) * | 2009-11-17 | 2010-06-02 | 北京大学 | 基于图书领域本体的个性化搜索方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108629054A (zh) * | 2018-06-26 | 2018-10-09 | 深圳市爱的网络科技有限公司 | 社群推送方法、装置、计算机装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102609465A (zh) | 2012-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609465B (zh) | 基于潜在社群的信息推荐方法 | |
CN109508419B (zh) | 一种基于知识学习的推荐方法和系统 | |
CN107679661B (zh) | 一种基于知识图谱的个性化旅游路线规划方法 | |
CN105706078A (zh) | 实体集合的自动定义 | |
Napoli | The algorithm as institution: Toward a theoretical framework for automated media production and consumption | |
JP5092165B2 (ja) | データ構築方法とシステム | |
CN107391542B (zh) | 一种基于文件知识图谱的开源软件社区专家推荐方法 | |
Paranjape et al. | Improving website hyperlink structure using server logs | |
CN108647800B (zh) | 一种基于节点嵌入的在线社交网络用户缺失属性预测方法 | |
CN105045931A (zh) | 一种基于Web挖掘的视频推荐方法和系统 | |
CN104063383A (zh) | 信息推荐方法及装置 | |
CN109255586A (zh) | 一种面向电子政务办事的在线个性化推荐方法 | |
CN104298785A (zh) | 一种众搜资源搜索方法 | |
CN110880019A (zh) | 通过无监督域适应训练目标域分类模型的方法 | |
CN105933425A (zh) | 推荐应用的方法及装置 | |
CN109271488B (zh) | 一种结合行为序列和文本信息的社交网络用户间因果关系发现方法及系统 | |
Kruiger et al. | Loose programming of GIS workflows with geo‐analytical concepts | |
WO2015085622A1 (zh) | 一种物联网终端设备的语义化方法 | |
CN103262079B (zh) | 检索装置及检索方法 | |
Ramkumar et al. | A survey on mining multiple data sources | |
Fu et al. | Deep learning models for serendipity recommendations: a survey and new perspectives | |
CN105354339A (zh) | 基于上下文的内容个性化提供方法 | |
CN110737779A (zh) | 知识图谱的构建方法、装置、存储介质和电子设备 | |
CN105447004A (zh) | 查询推荐词的挖掘、相关查询方法及装置 | |
CN103942204A (zh) | 用于挖掘意图的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |