著录项信息
专利名称 | 一种基于项目标签和图形关系的众筹网站项目推荐方法 |
申请号 | CN201510024501.8 | 申请日期 | 2015-01-16 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2016-02-10 | 公开/公告号 | CN105320719A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F16/9535 | IPC分类号 | G;0;6;F;1;6;/;9;5;3;5查看分类表>
|
申请人 | 焦点科技股份有限公司;东南大学 | 申请人地址 | 江苏省南京市高新技术产业开发区星火路软件大厦A座8-12F
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 焦点科技股份有限公司,东南大学 | 当前权利人 | 焦点科技股份有限公司,东南大学 |
发明人 | 梁大桥;白浚楼;钱雪娇 |
代理机构 | 南京瑞弘专利商标事务所(普通合伙) | 代理人 | 陈建和 |
摘要
一种基于树形标签和图形关系的众筹网站项目推荐方法,包括以下步骤步骤1)基于树形标签的推荐对众筹网站项目的属性进行了划分,对其进行建模,利用树描述项目标签,将用户行为和项目标签之间的联系抽象用户的私人标签树,并将树形标签存储在文档型数据库CouchDB中;步骤2)基于图形关系的推荐,存储在图数据库Neo4j中;步骤3)将步骤1)和步骤2)中的两组项目加权求和平均,最终得到k2个推荐的项目综合结果并异步传输给用户。本发明解决现有传统个性化推荐方法在处理众筹平台中项目属性、用户行为和用户与项目关系时面临的推荐效率低和推荐精度差等问题。
1.一种基于树形标签和图形关系的众筹网站项目推荐方法,其特征在于包括以下步骤:步骤 1) 基于树形标签的推荐:对众筹网站项目的属性进行了划分,对其进行建模,利用树描述项目标签,将用户行为和项目标签之间的联系抽象用户的私人标签树,并将树形标签存储在文档型数据库CouchDB中;针对用户在众筹网站中的不同行为或操作,设计符合众筹网站平台特点的行为加分规则,加分规则与树形标签有效结合,通过私人标签树计算用户对各类标签的偏好程度,选出一组符合用户欣赏趋向的前 K 个项目;
步骤 2) :基于图形关系的推荐,对用户与用户之间的关系以及用户与众筹网站项目之间的关系用图进行建模,利用图数据库 Neo4j 存放用户与用户、用户和项目之间的关系图即用户- 项目图,基于用户- 项目图确定用户之间的相似度,并存储在图数据库 Neo4j 中;针对用户在众筹网站中的不同行为和操作映射到边的权值上,权值设定规则与图形关系有效结合,并基于用户相似度和用户行为选取 Top k1 个用户感兴趣的项目;步骤 3) :
将步骤 1) 和步骤 2) 中的两组项目加权求和平均,最终得到 k2 个推荐的项目综合结果并异步传输给用户;
以上根据步骤 1) 和步骤 2) 得出的 Top k 和 Top K1 个项目的兴趣度即兴趣得分进行加权平均,得出最终的 k2 个推荐的项目;
步骤 4) :将用户行为或操作实时保存到网站日志中,并根据该日志更新各用户的私人标签树,更新用户- 项目图,将结果覆盖到缓存中,并选择合适时间将缓存结果持久化;
每隔一段时间,读取缓存中的私人标签树和用户- 项 目图,根据步骤 1)、步骤 2) 和步骤 3)再重新计算一次推荐结果,将推荐的项目利用 AJAX 定时异步传回给前台显示;
所述的步骤4) 中,采用MySQL数据库存储推荐结果,采用 Struts2.0+Spring3.0+Hibernate 4.0 的 web 应用编程框架,使用BootStrap前端框架构造用户界面;使用AJAX 交互式网页应用实现网页的异步更新,提高用户推荐体验;
步骤 1) 私人标签树是联系用户和项目的纽带,是反映用户兴趣的重要数据源;将用户的行为映射到私人标签树的节点的权重上;每个用户都有一个私人标签树,用户的每一次行为操作都将影响到该私人标签树;将用户的私人标签树存入文档型数据库;在需要推荐的时候,根据私人标签树生成用户的兴趣矩阵,由兴趣矩阵为用户推荐Top k 个项目。
2.根据权利要求 1 所述基于树形标签和图形关系的众筹网站项目推荐方法,其特征在于所述的步骤 1) 的基于树形标签推荐中,将用户的行为映射到对树形标签的节点权重的影响上;用户的行为不仅对项目本身直属标签有影响,还会对项目的间接所属标签有影响,间接所属标签影响的比例由一个类斐波那契数列来确定,最终的权重跟标签节点所属层数和项目标签路径长度有关;最终根据项目属性和树形标签的节点权重为用户推荐项目;树形标签是存储在文档型数据库CouchDB中的,Apache CouchDB是一个面向文档的数据库管理系统,它提供以JSON作为数据格式的REST接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。
3.根据权利要求 1 所述基于树形标签和图形关系的众筹网站项目推荐方法,其特征在于所述的步骤 2) 的基于图形关系推荐过程中,将用户与用户的关系、以及用户与项目的关系即包括浏览,关心,参与,评分评论的用户行为映射到图形关系中即构建“用户 - 项目图”;用户的行为将对用户与项目之间的边的权值产生影响;用户与用户之间的相似度由用户与用户在图中的距离来描述,而用户之间的距离又是基于跳数来计算的,在计算的过程中需要去除热门项目节点的影响;定义基于跳数和广度优先搜索的用户节点距离,由用户节点距离定义用户相似度,距离越近,用户越相似,将用户的行为映射到用户- 项目图的边的权值上,最终根据用户行为相似度和图形节点的边权值为用户推荐项目 Top k2。
4.根据权利要求 1 所述基于树形标签和图形关系的众筹网站项目推荐方法,其特征在于所述的步骤 3) 中综合前面并行得到的两组结果,加权求和得到最终的推荐列表,采用Mysql数据库存储推荐结果;基于 WEB 应用 MVC 框架 Struts 2、WEB 应用集成框架 Spring、以及Java持久性框架Hibernate对象关系映射框架开发web应用程序和编写推荐模块;使用BootStrap前端框架构造界面;使用 AJAX 异步传回推荐列表。
一种基于项目标签和图形关系的众筹网站项目推荐方法\n技术领域\n[0001] 本发明涉及机器学习、图数据库和推荐算法领域,具体是指在众筹网站环境下实现一种基于项目标签、用户行为和用户相似度的个性化推荐方法,根据众筹网站中的项目属性和用户行为特点,利用文档型数据库CouchDB存储项目标签;利用Neo4j数据库存储用户间关系和项目用户映射关系,根据图结构计算用户相似度,并根据用户相似度得出推荐结果,进而提供快速高效的个性化项目推荐服务。\n背景技术\n[0002] 众筹网站最初的目的是帮助有梦想、有创意的人筹集期望资源(资金众筹,物品众筹,人力众筹等),项目发起方通过文字,图片,视频等方式将自己希望实现的创意、梦想展示在网站上,设定目标额度以及执行周期。\n[0003] 众筹网站面向的用户群庞大、项目与用户关系复杂,如何能够快速地让用户获取到自己感兴趣的项目,因此个性化推荐技术应运而生。个性化推荐是一种根据用户的主观兴趣和客观使用行为,主动向用户推荐其可能感兴趣的项目的信息过滤技术。个性化推荐技术作为一种重要的信息过滤手段,能够有效解决众筹网站中存在的项目信息过载问题。\n[0004] 目前,个性化推荐技术已被广泛应用于电子商务,社会网络等互联网应用中,尽管有一些研究成果,但其仍面临很多挑战,主要包括项目分类标签,用户行为描述,用户相似度计算,待推荐项目的相似度问题等。\n[0005] 如现有技术公开有如下技术:CN 201310091450.1推荐方法及系统,包括:接收待检索地点的信息;提取所述待检索地点的坐标位置;根据所述待检索的地点信息的坐标位置以及预设的地图数据库,获取距离待检索地点一定范围内的临近地点信息;根据预设的相似性规则和关联性规则分别计算。\n[0006] CN201310300482.8目的地推荐系统和目的地推荐方法-目的地推荐系统包括存储设施数据的地图数据库(12)、存储行驶历史数据的行驶历史数据库(14)、行程目的地确定部(24)、计算部(26)、搜索部(28)和输出部(18)。当从枢纽位置到每个行程目的地的多个访问的次数或频率满足预定条件时,行程目的地的多个访问的次数或频率进行推。\n[0007] CN201210343032.2基于标签技术的个人交互数据检索方法及其系统,该方法将交互数据与标签之间的二元关系存储在数据库中,通过设计标签的总权重和标签与标签之间的权重计算方法,构建基于带权树形结构的用户兴趣模型,从而有效的描述用户对标签的偏好特征。\n[0008] CN201410381792.1资源推荐方法及装置,该资源推荐方法包括:获取用户从当前浏览器页面选中的信息;以及根据信息获得与信息相关的资源,并在当前浏览器页面上显示资源。本发明实施例提供的资源推荐方法及装置,在不影响用户浏览当前浏览器页面的同时,为资源推荐。\n[0009] CN 201410223047.4信息推荐方法及装置,其中信息推荐方法,包括:接收客户端发送的用户开启资源的请求;根据请求查询用户的历史浏览记录,并根据历史浏览记录获得待播放的信息,其中,历史浏览记录中包含用户浏览的信息的相关参数和用户关闭的信息的相关参数。\n[0010] CN 201210280588.1用户推荐方法,包括以下步骤:获取触发推荐用户的指令;根据所述指令生成候选推荐用户列表;读取用户社交质量数据,根据所述用户社交质量数据计算所述候选推荐用户列表中的用户的匹配成功率;从候选推荐用户列表中选取匹配成功率最高的至少一个用户进行推荐。\n[0011] CN201410345339.5公开了一种信息推荐方法和装置。其中,信息推荐方法包括:\nS1、获得来自客户端的查询信息,并对查询信息进行识别,获得识别结果;S2、根据查询信息获得相关资源,根据相关资源提取候选答案,并对候选答案进行排序,获得排序结果;S3、根据排序结果。\n[0012] CN201310091450.1推荐方法及系统,方法包括:接收待检索地点的信息;提取所述待检索地点的坐标位置;根据所述待检索的地点信息的坐标位置以及预设的地图数据库,获取距离待检索地点一定范围内的临近地点信息;根据预设的相似性规则和关联性规则分别计算。\n[0013] 但在众筹网站中,项目往往直接或间接属于多个标签,传统推荐方法往往忽略这些标签之间的约束关系;另外,由于用户与用户之间(好友关系,合作关系等等),用户与项目之间(浏览,资助,收藏等等)有着多种连接关系,这些节点和连接关系构成了一个比较复杂的图结构,该图结构与其他类型网站有着较大的不同。使用传统关系型数据库往往很难定义这些连接关系,并且不能有效存储,也无法快速存取和更新,影响用户的推荐体验。此外,在众筹网站平台场景下,现有的众多推荐算法,往往不能综合用户行为、项目所属类别、用户相似度多方面因素考虑,影响了对用户的推荐精确度。\n[0014] 为了解决上述问题,需要提出一个为众筹网站量身定做的全新的个性化推荐系统,为用户快速、高效地推荐项目。\n发明内容\n[0015] 技术问题:本发明实现了面向众筹平台的个性化推荐。首先,发明了基于树形标签的项目推荐算法,定义了符合众筹平台特点的用户行为影响规则,对用户行为和项目属性进行了划分、放置、存储和查询;其次,发明了基于图结构的项目推荐算法,将用户行为和用户之间的关系存储在图数据库中,提出了基于跳数的用户相似度计算方法,为综合考虑用户行为和用户相似度进而进行推荐提供了可靠的依据。最后,两种算法的运算结果进行归一化操作,然后将两种结果进行加权求和,最终得到准确性更好的综合推荐结果。\n[0016] 技术方案:本发明的一种基于树形标签和图形关系的众筹网站项目推荐方法,包括以下步骤:\n[0017] 步骤1)基于树形标签的推荐:对众筹网站项目的属性进行了划分,对其进行建模,利用树描述项目标签,将用户行为和项目标签之间的联系抽象用户的私人标签树,并将树形标签存储在文档型数据库CouchDB中;针对用户在众筹网站中的不同行为或操作,设计符合众筹网站平台特点的行为加分规则,加分规则与树形标签有效结合,通过私人标签树计算用户对各类标签的偏好程度,选出一组符合用户欣赏趋向的前K个项目;\n[0018] 建模时将用户行为和项目标签之间的联系抽象用户的私人标签树,并存入文档型数据库CouchDB中,通过私人标签树计算用户对各类标签的偏好程度,选取Top k个用户较感兴趣的项目;\n[0019] 步骤2):基于图形关系的推荐。对用户与用户之间的关系以及用户与众筹网站项目之间的关系用图进行建模,利用图数据库Neo4j存放用户与用户、用户和项目之间的关系图(也即用户-项目图),基于用户-项目图确定用户之间的相似度,并存储在图数据库Neo4j中。针对用户在众筹网站中的不同行为和操作映射到边的权值上,权值设定规则与图形关系有效结合,并基于用户相似度和用户行为选取Top k1个用户较感兴趣的项目(为用户推荐出另一组Top K1项目);\n[0020] 步骤3):将步骤1)和步骤2)中的两组项目加权求和平均,最终得到k2个推荐的项目综合结果并异步传输给用户。\n[0021] 以上根据步骤1)和步骤2)得出的Top k和Top K1个项目的兴趣度(兴趣得分)进行加权平均,得出最终的k2个推荐的项目。\n[0022] 进一步的,步骤4):将用户行为或操作实时保存到网站日志中,并根据该日志更新各用户的私人标签树,更新用户-项目图,将结果覆盖到缓存中,并选择合适时间将缓存结果持久化。每隔一段时间,读取缓存中的私人标签树和用户-项目图,根据步骤1)、步骤2)和步骤3)再重新计算一次推荐结果,将推荐的项目利用AJAX定时异步传回给前台显示。\n[0023] 所述的步骤4)中,采用MySQL数据库存储推荐结果,采用Struts2.0+Spring3.0+Hibernate 4.0的web应用编程框架,使用BootStrap前端框架构造界面风格良好的用户界面。使用AJAX交互式网页应用实现网页的异步更新,提高用户推荐体验。\n[0024] 进一步,所述的步骤1)的基于树形标签推荐中,将用户的行为映射到对树形标签的节点权重的影响上;用户的行为不仅对项目本身直属标签有影响,还会对项目的间接所属标签有影响,间接所属标签影响的比例由一个类斐波那契数列来确定,最终的权重跟标签节点所属层数和项目标签路径长度有关;最终根据项目属性和树形标签的节点权重为用户推荐项目;树形标签是存储在文档型数据库CouchDB中的,Apache CouchDB是一个面向文档的数据库管理系统,它提供以JSON作为数据格式的REST接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现。步骤1)中,提出标签树的概念,标签树是联系用户和项目的纽带,也是反映用户兴趣的重要数据源。将用户的行为映射到标签树的节点的权重上。每个用户都有一个私人标签树,用户的每一次行为操作都将影响到该私人标签树。将用户的私人标签树存入文档型数据库。在需要推荐的时候,根据私人标签树生成用户的兴趣矩阵,由兴趣矩阵为用户推荐Top k个项目;\n[0025] 进一步,所述的步骤2)的基于图形关系推荐过程中,将用户与用户的关系(好友关系,项目合作者关系),以及用户与项目的关系(浏览,关心,参与,评分评论)映射到图形关系中即构建“用户-项目图”;用户的行为将对用户与项目之间的边的权值产生影响;用户与用户之间的相似度由用户与用户在图中的距离来描述,而用户之间的距离又是基于跳数来计算的,在计算的过程中需要去除热门项目节点的影响;定义基于跳数和广度优先搜索的用户节点距离,由用户节点距离定义用户相似度,距离越近,用户越相似,将用户的行为映射到用户-项目图的边的权值上,最终根据用户相似度(和用户行为)和图形节点的边权值为用户推荐项目Top k2。\n[0026] 图形关系是存储在图数据库Neo4j中的,Neo4j是一个用Java实现、完全兼容ACID的图形数据库,数据以一种针对图形网络进行过优化的格式保存在磁盘上。是一种极快的图形引擎。\n[0027] 进一步,所述的步骤3)中综合前面并行得到的两组结果,加权求和得到最终的推荐列表;采用MySQL数据库存储推荐结果,采用MySQL数据库存储推荐结果;基于WEB应用MVC框架Struts 2、WEB应用集成框架Spring、以及Java持久性框架Hibernate对象关系映射框架开发web应用程序和编写推荐模块;使用BootStrap前端框架构造用户体验良好的界面;\n使用AJAX异步传回推荐列表。\n[0028] 由于CouchDB构建在强大的B-树储存引擎之上。这种引擎负责对CouchDB中的数据进行排序,并提供一种能够在对数均摊时间内执行搜索、插入和删除操作的机制。CouchDB将这个引擎用于所有内部数据、文档和视图。\n[0029] 因为CouchDB数据库的结构独立于模式,所以它依赖于使用视图创建文档之间的任意关系,以及提供聚合和报告特性。使用Map/Reduce计算这些视图的结果,Map/Reduce是一种使用分布式计算来处理和生成大型数据集的模型。Map/Reduce模型由Google引入,可分为Map和Reduce两个步骤。在Map步骤中,由主节点接收文档并将问题划分为多个子问题。\n然后将这些子问题发布给工作节点,由它处理后再将结果返回给主节点。在Reduce步骤,主节点接收来自工作节点的结果并合并它们,以获得能够解决最初问题的总体结果和答案。\n[0030] CouchDB中的Map/Reduce特性生成键/值对,CouchDB将它们插入到B-树引擎中并根据它们的键进行排序。这就能通过键进行高效查找,并且提高B-树中的操作的性能。此外,这还意味着可以在多个节点上对数据进行分区,而不需要单独查询每个节点。\n[0031] 本发明解决现有传统个性化推荐方法在处理众筹平台中项目属性、用户行为和用户与项目关系时面临的推荐效率低和推荐精度差等问题。本发明分为基于树形标签推荐和图形关系推荐两个部分:基于树形标签推荐部分利用文档型数据库CouchDB存储用户标签,结合用户行为和用户标签为用户推荐第一类Top k项目列表;基于图形关系推荐部分利用图数据库neo4j存储用户与用户、用户与项目的复杂图关系结构,采用基于跳数的策略计算用户相似度,并根据用户相似度和用户行为为用户推荐第二类Top k项目列表;综合两类Top k项目列表产生最终的推荐项目序列。本发明在处理众筹平台环境下产生的用户行为数据时具有显著优势。\n[0032] 有益效果:本发明与现有个性化推荐方法相比,具有以下优点:\n[0033] 1.根据项目的特点为项目加入树形标签,利用树形标签来描述用户对物品的看法,使用标签来提高众筹平台的个性化推荐系统的质量;\n[0034] 2.针对用户在众筹网站中的不同行为和操作,设计符合众筹平台特点的行为加分规则,加分规则与树形标签有效结合,推荐方法更具针对性;\n[0035] 3.相较于传统矩阵,采用图结构精确地表示用户与用户、用户与项目之间的关系,采用新型的基于跳数的用户相似度计算方法,同时根据节点的度的大小去除热门项目对相似度的影响。这样更能符合众筹平台场景下用户相似度的定义,有效地提高了推荐效率;\n[0036] 4.将图结构保存在neo4j图数据库中,摒弃了传统关系型数据库,同时利用缓存技术,加快了算法的读取和更新速率,降低了客户端推荐响应时间;\n[0037] 5.将利用树形标签和图数据库的两种推荐算法产生的结果加权求和,提高了推荐准确率;\n[0038] 6.采用定时推荐的方式,尽可能考虑用户实时行为变化,利用稳定的Web展示技术,在线给出实时性较好的推荐信息,提高了用户的推荐体验。\n附图说明\n[0039] 图1为摘要附图,个性化推荐系统流程图,\n[0040] 图2为基于树形标签推荐流程图,\n[0041] 图3为基于图形关系推荐流程图,\n[0042] 图4为标签树示意图。\n具体实施方式\n[0043] 一种众筹平台中基于树形标签和图数据库的个性化推荐方法包含三个模块。\n[0044] 第一个模块为基于树形标签的推荐模块,包括以下步骤:\n[0045] a)推荐前的准备工作。根据项目的分类,可以为每个项目打上符合其类型的标签。\n将项目的标签库存入一棵树中,这棵树称为标签树T,树中每一个节点(如叶子节点和非叶节点)代表一个标签。子节点标签从属于父节点标签(例如,子节点“足球”标签属于父节点“体育”标签的范畴)。树的深度为H(典型为2≤H≤6)。叶子节点所表示的标签称为叶子标签,非叶节点所表示的标签称为非叶标签。根结点所表示的标签称为根标签,根标签包含所有标签。只有叶子标签能直接包含项目,非叶标签只能通过包含叶子标签来间接包含项目。\n[0046] 每个项目存储在关系数据库中,项目表拥有一列属性,该列存储项目的全部标签,每两个标签之间用分号隔开。\n[0047] 众筹平台中每一个项目都拥有若干标签,每一个标签下都包含0或多个项目(直接地或间接地)。某项目Pj的所属叶子标签记为 (第零级父标签), 在标签树T中的父节点标签为 (第一级父标签), 的父节点标签为 (第二级父标签),Pj的第i级父标签为 ,以此类推,直至根标签。\n[0048] b)管理员在审阅项目之后,为每一个项目打上若干标签(叶子标签或非叶标签),结合项目上传者给出的参考标签,并将该项目插入到关系数据表中。假设系统注册用户为m个,标签树的叶子标签有n个,那么我们定义一个m×n的二维数组(或矩阵)A,用于表示用户对某一类项目的喜欢程度(偏好)。\n[0049]\n[0050] 其中ci,j表示第i个用户对第j个叶子标签所代表的这一类的项目的喜好程度。ci,j越大说明喜欢程度越高。我们假设用户对任一叶子标签下的所有项目的偏好都是一样的。\n每个元素初始值为10。\n[0051] c)为第i个用户Ui注册时,为其生成一份“私人标签树” (Private Label Tree,PL Tree),该树的结构与T一致,但每一个节点上多加了一个权重,初始时每个节点的权重都为10。将 保存入文档型数据库CouchDB中。\n[0052] d)用户在众筹平台中有多种行为,可以浏览项目,“顶”、“踩”、参与项目,对项目进行评分、评论,给项目发起者和系统管理员发送站内信等。其中反映用户对某类项目的喜好程度的操作有:“顶”项目(like),“踩”项目(dislike),资助项目(subsidize),资助之后给项目好评(positive feedback),资助之后给项目差评(negative feedback),对项目只是浏览(browse)。用户的这6种行为操作将会是基于标签推荐算法的依据。具体来说,用户Ui在众筹平台里对项目Pj的这6种操作,都会对 产生影响,也即影响到 中相关节点的权重。\n[0053] 中节点权重增减的规则如下表所示:\n[0054] 表1 Ui行为对 中节点权重的影响\n[0055]\n[0056] 从上表中可以看出,用户Ui对项目Pj的每一次操作会影响到 中从该项目所属叶子标签到根标签整条路径上的所有标签的权重。\n[0057] e)在计算Pj的所有父标签的权重之后,还需要对Pj所属的叶子标签(第零级父标签)进行加权求和。假设Pj共有h个父标签,第i级的父标签节点的权重为weighti。Pj的叶子标签的最终权重为:\n[0058]\n[0059] 其中 ai=βai-1+(1-β)ai-2,2<i≤h-1,a0=1,a1=1,β∈(0.6,0.75)。\n[0060] 也即:\n[0061]\n[0062] 众筹平台将用户Ui的6种操作产生的节点权重变化都累加到 上,并保存入缓存中,并在适当时间修改CouchDB数据库中的副本。\n[0063] f)当定时推荐的时间点到了,将每个用户的私人标签树中的每个叶子标签的最终权重读出,并存入矩阵A中。\n[0064] g)对每一行的权重值进行归一化,归一化公式为:\n[0065]\n[0066] 其中ci,j′表示归一化之后第i个用户对第j个叶子标签所代表的这一类的项目的喜好程度。\n[0067] h)对每一个用户,选择该用户对应的A中的那行,按照权重值从大到小排好序,从中选取前k个权重值对应的前k个项目。\n[0068] i)当以下情形发生时,所有用户的私人标签树都要相应更新。\n[0069] ①当第j个项目Pj得到管理员审核以后,根据Pj的标签信息将Pj加入到标签树T中。\n同时将这一变化加入所有用户的标签得分树中。\n[0070] ②当项目Pj结束众筹,或者众筹期限已经失效,需要将Pj从标签树中移除。同时根据这一变化更新所有用户的标签得分树。\n[0071] 第二个模块为基于图形关系的推荐模块,包括以下步骤:\n[0072] a.从关系数据库表中提取出用户与用户信息(包括好友关系、同一项目中的合作关系),从系统日志中提取出用户与项目信息(包括用户对项目的6种操作),构造一个无向图,该图称为用户-项目图(user-project graph,UP图)。节点类型包括用户节点和项目节点两种类型。用户-项目图的每条边都具有不同的权值。用户节点u和用户或项目节点v之间的权值记为w(u,v)。边的类型也包括两种,分别是:\n[0073] ①用户与用户节点间的边代表着好友关系,或者同一项目的资助者与受助者关系;\n[0074] ②用户节点与项目节点之间的边代表6种用户行为,包括“顶”项目,“踩”项目,资助项目,资助之后给项目好评,资助之后给项目差评,浏览项目。每种行为代表的边的权值不同,计分规则如表2所示。若一条边有多种行为存在,则将每种行为产生的得分累加计入边的权值。\n[0075] 表2 用户行为对图结构中边的权值的影响\n[0076]\n[0077] 将UP图存入到Neo4j数据库中。\n[0078] 当出现以下情形时对缓存中的UP图进行同步更新,并及时将更新覆盖到Neo4j数据库中:\n[0079] 1)当第j个项目Pj得到管理员审核以后,将Pj的信息加入UP图中;\n[0080] 2)当项目Pj结束众筹,或者众筹期限已经失效,将Pj项目节点及其邻接边从UP图中移除;\n[0081] 3)某个用户产生了新的用户行为,将这些行为记录在系统日志中,并随后对UP图进行更新;\n[0082] 4)某个用户的好友关系发生变化(如新加好友,删除好友);\n[0083] 5)某个用户新资助了项目。\n[0084] b.根据用户节点间的跳数计算两个用户的相似度。相似度的计算方法如下:定义用户与用户的距离度量函数。假设用户U与用户V之间有n条路径,分别用path1,path2,…,pathi,…,pathn。li表示pathi的跳数(hops),也即pathi所包含的边的数量。假设v是UP图中的任一节点,v关联的边的数量之和就称为v的度。degreei表示pathi上所有项目节点的度的最大值。那么用户U和用户V之间的距离为:\n[0085] 其中。其中α∈(0,1)。\n[0086] 假设当前用户为U,也即推荐目标用户为U,使用广度优先搜索(BFS),计算用户-项目图中每一个用户节点与U的距离,也即:首先搜索和U跳数为1的所有用户节点,然后再去搜索和U跳数为2的其他用户节点,直至搜索完全部用户节点。\n[0087] c.将所有用户节点到当前用户U距离归一化。归一化公式为:\n[0088]\n[0089] d.采用深度优先搜寻(DFS),当遍历到一个没有访问过的项目节点Pj,计算Pj的得分,并将Pj设置为“已访问”。假设Pj有kj个邻接用户节点,分别是 …, 。假设推荐目标用户为U,那么Pj的得分为: 其中 表示点Pj到\n点 的边的权值。\n[0090] e.将所有项目节点按照得分从大到小排序,最终选择Top k个项目给用户U。\n[0091] 第三个模块为综合推荐模块,包括以下步骤:\n[0092] a.推荐目标用户为U。模块一得到的Top k列表为:\n[0093] list1=(P1,P2,...,Pk),其得分列表分别是score1=(x1,x2,...,xk);\n[0094] 模块二得到的Top k列表为:\n[0095] list2=(P1′,P2′,...,Pk′),其得分列表分别是score2=(y1,y2,...,yk);\n[0096] 假设两个列表没有重复的项目,那么最终将得到一个长度为2k的列表list3=(P1,P2,...,Pk,P1′,P2′,...,Pk′)。将list1中每个项目的得分乘以权值μ,list1中每个项目的得分乘以权值1-μ。这样list3中每个项目的最终得分为:\n[0097] score3=(μx1,μx2,...,μxk,(1-μ)y1,(1-μ)y2,...,(1-μ)yk)\n[0098] b.两个推荐项目列表中很可能有重复,接下来去除list3中的重复项。若存在Pi∈list1,Pj′∈list2,Pi=Pj′,那么Pi的最终得分为μxi+(1-μ)yj,然后将Pj′从list3中删除,并将yj从score3中删除。\n[0099] c.将list3按照得分排序,最终选择得分最高的Top k个项目作为最终为用户U推荐的k个项目。\n[0100] d.采用MySQL数据库存储推荐结果,并利用AJAX将结果定时异步传输回前台展示给用户。\n[0101] 本发明根据众筹平台的业务逻辑设计和实现符合众筹特点的推荐系统,能够更加快速、高效地生成推荐结果,同时对项目推荐精度和速度等问题都进行了有效的处理,结合Web日志对用户行为进行实时、动态的记录,定时推荐,保证了推荐结果的实时性。同时为其它网络应用环境下运行的推荐系统提供了新的思路,因此,本发明必将为众筹系统个性化推荐的进一步发展贡献自己的力量。
法律信息
- 2019-02-05
- 2016-03-09
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201510024501.8
申请日: 2015.01.16
- 2016-02-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-11-23
|
2011-07-22
| | |
2
| |
2014-07-02
|
2012-12-25
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |