一种基于MAS协作机制的旅游群组推荐方法
技术领域
本发明属于数据挖掘推荐技术领域,涉及一种基于MAS协作机制的旅 游群组推荐方法。
背景技术
在当今通信与智能技术不断进步、“智慧旅游”不断发展、以及游客自我 出行需求不断提高等环境的影响下,散客旅游已经逐渐发展为一种新的旅游 趋势。这种多人组成(国家标准9人以内)的群组出游活动,要求游客全程 亲历亲为,且群组内所有成员的目标景点一致,这就对旅游推荐系统提出了 更高的要求。传统以单用户为目标的推荐系统,很难达到为多人组成的群组 做出一致满意的推荐目标,其中群组成员偏好不同带来的冲突也是传统推荐 系统难以解决的一个问题。因此,本发明提出一种基于MAS协作机制的群 组推荐方法。
在分布式人工智能的领域中,MAS(Multi-Agent System)是一个由多 个Agent组成的智能网络系统。单个Agent是一个可以持续发挥自主作用的 计算实体或者一段程序,具有自主性、反应性、交互性、主动性等特点。 MAS则是通过逻辑上或者物理上相互分离的多个Agent之间的交互、协作, 来解决一般单个Agent资源能力无法解决的问题,不仅提高了每个Agent的 解决问题的能力,而且可以解决单个Agent无法解决复杂问题。所以,多Agent协作问题一直是MAS的研究重点,在MAS的协作求解任务目标的过 程中,被应用最多的两种协作求解方法为合同网和黑板模型。两种协作方法 各有优劣,合同网模型中“招标-投标-中标”的协作方式,受部分Agent发生 故障时对全局影响较小,但对参与投标的Agent没有约束条件的限制,导致 通信负载大,实时反应性较差;而黑板模型是一种集中式的交互方式,利用 黑板区域实现了信息共享,系统的实时反应速度较快,且各Agent之间相互独立,但对信息公开的准确性要求较高,一旦黑板上的共享信息出错,整个 MAS都会陷入崩溃状态。
群组推荐不同于常见的个性化推荐,它是在单用户推荐形式的基础上, 推荐目标转变为多个具有不同兴趣偏好的用户组成的一个群体,为了满足这 个用户群体的需求,而做出一致的评分预测或者推荐决策。群组推荐的一般 框架,包括群组形成、群组建模和群组预测推荐三个关键步骤。群组形成首 先采用随机分组、相似度计算、聚类等常用的方法,对推荐用户进行分组。 相似度度量可以采用杰卡德相似系数、Pearson相似度或者余弦相似度等方 法,然后根据相似度大小排序或者同一阈值范围进行分组;聚类分组时聚类 时一般按照系统用户偏好信息或者人口统计学理论来进行用户分组。群组建 模是对分组后的用户进行偏好融合,尽可能融合所有成员偏好,是群组推荐 的关键步骤,目的是缓解最大可能的偏好不同带来的冲突。在群组建模的过 程中,融合策略是影响最终结果关键技术。常用的融合策略包括均值、最受 尊敬、连乘等多种策略。群组预测推荐通常会以协同过滤、深度学习、社交 网络等技术为基础,考虑到群组成员之间的交互性和相似性,深入挖掘群组 成员和所在群组的社会关系,以及个体成员本身与被推荐项目之间的契合关 系,达到优化推荐系统性能的目的。但目前推荐多为推荐系统单用户推荐模 式、群组推荐时用户之间偏好冲突,以及MAS技术在推荐分析方面应用较 少等问题。
发明内容
本发明的目的是提供一种基于MAS协作机制的旅游群组推荐方法,解 决了现有技术群组推荐时用户偏好冲突以及各个组团用户之间的协作性差 的问题。
本发明所采用的技术方案是,一种基于MAS协作机制的旅游群组推荐 方法,具体按照以下步骤实施:
步骤1、解析目标任务;
步骤2、目标信息共享;
步骤3、数据处理;
步骤4、冲突检测与消解;
步骤5、相似度计算;
步骤6、群组推荐;
步骤7、用户评价。
本发明的特点还在于,
步骤1中解析目标任务是由监视Agent来完成的,当客户端传来推荐请 求后,监视Agent响应请求,解析目标任务,并发布在黑板区域;
步骤1中具体解析过程为监视Agent的感知模块,首先感知到用户在客 户端进行的各种操作以及产生的信息交换,这些信息经由事件检测模块分析, 并将产生的操作信息进行数据初始化,记录存储后生成系统日志,最后将日 志发布在黑板区域,以便进行下一步的操作。
步骤2中黑板区域在协作推荐过程中,负责任务求解过程中部分信息的 公示,各Agent与黑板之间信息互通,当MAS将系统目标任务以及相关 初始数据解析公布至黑板区域,协作过程开始,参与求解的Agent通过不 断浏览黑板上公开的信息,在其中寻找可以协助自己求解问题的信息,当其 在黑板上找到对自己有利的信息时,就会主动对问题进行求解,并把最终的 结果信息公开在黑板区域,通过这一求解过程的循环,获得任务的最终结果。
在步骤3中数据Agent在接到数据请求后,将数据处理为旅游推荐系统 在推荐时所需要的有效信息并存储到数据库,然后在数据中提取求解任务中 包含的组团用户对景点的历史评分数据,并生成对应的游客-景点评分矩阵, 评分值在0~5之间。
步骤4中冲突检测与消解Agent时,首先执行检测程序,对冲突数据进 行检测,若数据之间发生直接冲突,则需要根据消解策略寻找其他可能相关 用户以及数据,并向数据Agent做出数据请求;若无冲突,则直接执行相似 度计算;
具体为把目标群组的成员两两随机分组,根据定义的游客相关性因子
对数据进行冲突检测;
表示两者共同评分项的景点 数目占所有参与评分项景点数目的权重,N(u)、N(v)分别表示游客u、v参 与评分的景点;冲突检测的条件为判断两个游客之间的相关性因子α是否为 0;若为0,则表示数据之间发生直接冲突,需要执行冲突消解策略;冲突消 解策略在发生冲突的成员所在当前群组对应的景点用户倒排表中,寻找和两 个冲突用户同时具有相关性的其他成员,即可消除两个游客之间的冲突。
步骤5中在推荐过程中,首先判断黑板区域是否有当前群组成员的历史 相似度记录,若有则输入黑板区域已有群组成员的历史相似信息,若没有则 依据相似度计算公式计算游客相似度,同时,新增或更新用户的相似度信息 至黑板区域。
步骤6中首先对群组成员做出单用户预测推荐,然后对单用户预测结果 进行融合排序,得到最终的群组推荐结果,最后输出和存储推荐结果,并以 列表形式展示给用户,至此,系统对推荐任务做出成功响应。
步骤7中评价Agent是用户对推荐结果做出评价,用户在旅游推荐系统 里对推荐的结果列表进行评分,评价结果经由监视Agent反馈至评价Agent 进行分析优化。
步骤5中采用User-IIF相似度计算方法来计算相似度sim(u,v),如下公 式(1)所示,
其中,α为游客相关性因子,N(j)表示对景点j有过评价的所有游客数 目,当游客u、v的共同评分项里包含景点j的时候,通过
来惩罚 景点j对相似度计算的影响。
步骤6具体为首先将计算Agent得到的相似度值进行排序,然后根据K 近邻的方法找出和当前游客u拥有相似偏好的K名游客集合Ku,则单个成员 u对景点j的预测评分Pu,j如下公式(2)所示,
在得到单人预测评分后,本发明中对群组中每位成员对同一景点j的所 有预测评分取均值,得出整个群组对同一景点j的预测评分Pj;如公式(3) 所示,
N表示群组成员数目,Pu,j表示组内单个成员u对景点j的预测评分;最 后将所有预测评分结果降序排列,选出Top-5对应的项目,生成最终的群组 推荐列表。
本发明的有益效果是,本发明一种基于MAS协作机制的旅游群组推荐 方法,解决了现有技术群组推荐时用户偏好冲突以及各个组团用户之间的协 作性差的问题。将推荐过程中每个Agent都承担着不同的责任,自主的完成 各自的任务,继承了Agent原本的特性,具有Agent交互性和主动性的特点, 使得每个Agent都可以根据外部环境以及其他Agent的变化,及时响应并做 出对应调整,通过将黑板区域这一共享工作空间应用到部分求解过程中,减 轻了通信频繁、通信资源浪费的现象,当黑板区域公开的信息出现错误时,系统仍能照常运行,避免了因共享信息的错误导致整个系统的崩溃。在单用 户推荐的基础上进行群组推荐,根据需要扩展成单用户、群组用户分布并行 的推荐引擎,具有良好的扩展性,也可应用在其他同类型需求的行业中。
附图说明
图1是本发明一种基于MAS协作机制的旅游群组推荐方法的协作推荐 模型图;
图2是本发明一种基于MAS协作机制的旅游群组推荐方法的流程图;
图3是本发明冲突检测与消解Agent过程示意图;
图4是本发明计算Agent过程示意图;
图5是本发明推荐Agent过程示意图;
图6是本发明冲突消解策略示意图;
图7是本发明以基于用户的协同过滤算法为基础的群组推荐过程图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明一种基于MAS协作机制的旅游群组推荐方法,构建了一个内部Agent功能各不相同的异构型MAS协作推荐模型,如图1所示,按照推荐 过程中的不同阶段,整个模型被分为任务层、协作控制层以及协商协调层。 任务层是的作用获取游客传来的推荐申请,生成任务集;协作控制层是目标 任务被解析并执行推荐的部分;协调协商层是检测任务是否存在冲突,且执 行内部冲突消解的部分。
具体为任务层获取推荐申请后将任务集传递给协作控制层的监视Agent, 监视Agent获取到数据后将数据传递给数据Agent,并以招标的形式发布在 黑板共享数据区。数据Agent在接到数据请求后,在数据库中提取与求解任 务中相关的用户历史评分数据,并发送至计算Agent,计算Agent通过 User-IIF相似度计算方法计算成员之间的相似度。并将成员相似度发送至推 荐Agent模块,推荐模块使用协同过滤推荐算法得到目标成员的K近邻,通 过邻居的评分计算单个目标成员偏好景点集合,最后采用均值融合策略,将 群组内单个成员的景点偏好结果融合成群组的景点推荐结果,得到群组推荐 列表。
本发明一种基于MAS协作机制的旅游群组推荐方法的流程图,如图2 所示,具体按照以下步骤实施:
步骤1、解析目标任务;
步骤1中解析目标任务是由监视Agent来完成的,当客户端传来推荐请 求后,监视Agent响应请求,解析目标任务,并发布在黑板区域。具体解析 过程为监视Agent的感知模块首先感知到用户在客户端进行的各种操作以及 产生的信息交换,这些信息经由事件检测模块分析,并将产生的操作信息进 行数据初始化,记录存储后生成系统日志,最后将日志发布在黑板区域,以 便进行下一步的操作。
步骤2、目标信息共享;
步骤2中黑板区域在协作推荐过程中,负责任务求解过程中部分信息的 公示,各Agent与黑板之间都是信息互通的。当MAS将系统目标任务以 及相关初始数据解析公布至黑板区域,协作过程开始。参与求解的Agent通 过不断浏览黑板上公开的信息,在其中寻找可以协助自己求解问题的信息, 当其在黑板上找到对自己有利的信息时,就会主动对问题进行求解,并把最 终的结果信息公开在黑板区域。新增或者更新后的信息也可被用于其他Agent的求解。通过这一求解过程的循环,获得任务的最终结果。
步骤3、数据处理;
在步骤3中数据Agent在接到数据请求后,将数据处理为旅游推荐系统 在推荐时所需要的有效信息并存储到数据库,然后在数据中提取求解任务中 包含的组团用户对景点的历史评分数据,并生成对应的游客-景点评分矩阵, 评分值在0~5之间。
步骤4:冲突检测与消解Agent;
步骤4中冲突检测与消解Agent首先执行检测程序,对冲突数据进行检 测。若数据之间发生直接冲突,则需要根据消解策略寻找其他可能相关用户 以及数据,并向数据Agent做出数据请求;若无冲突,则直接执行相似度计 算。具体为把目标群组的成员两两随机分组,根据定义的游客相关性因子
对数据进行冲突检测。
表示两者共同评分项的景点 数目占所有参与评分项景点数目的权重,N(u)、N(v)分别表示游客u、v参 与评分的景点;冲突检测的条件为判断两个游客之间的相关性因子α是否为 0;若为0,则表示数据之间发生直接冲突,需要执行冲突消解策略。冲突消解策略具体如图6所示,在发生冲突的成员所在当前群组对应的景点用户倒 排表中,寻找和两个冲突用户同时具有相关性的其他成员,即可消除两个游 客之间的冲突。
步骤5中计算Agent是计算游客之间的相似度,在推荐过程中,首先判 断黑板区域是否有当前群组成员的历史相似度记录,若有则输入黑板区域已 有群组成员的历史相似信息,若没有则依据相似度计算公式计算游客相似度, 同时,新增或更新用户的相似度信息至黑板区域。具体为采用User-IIF相似 度计算方法来计算相似度sim(u,v),如下公式(1)所示,
其中,α为游客相关性因子,N(j)表示对景点j有过评价的所有游客数 目,当游客u、v的共同评分项里包含景点j的时候,通过
来惩罚 景点j对相似度计算的影响。
步骤6、群组推荐;
步骤6中推荐Agent是实现群组预测推荐。如图7所示,首先对群组成 员做出单用户预测推荐,然后对单用户预测结果进行融合排序,得到最终的 群组推荐结果。最后输出和存储推荐结果,并以列表形式展示给用户,至此, 系统对推荐任务做出成功响应。具体为首先将计算Agent得到的相似度值进 行排序,然后根据K近邻的方法找出和当前游客u拥有相似偏好的K名游 客集合Ku,则单个成员u对景点j的预测评分Pu,j,如下公式(2)所示,
在得到单人预测评分后,本发明中对群组中每位成员对同一景点j的所 有预测评分取均值,得出整个群组对同一景点j的预测评分Pj。
如公式(3)所示,N表示群组成员数目,Pu,j表示组内单个成员u对景 点j的预测评分。最后将所有预测评分结果降序排列,选出Top-5对应的项 目,生成最终的群组推荐列表。
步骤7、用户评价;
步骤7中评价Agent是用户对推荐结果做出评价,用户在旅游推荐系统 里对推荐的结果列表进行评分,评价结果经由监视Agent反馈至评价Agent 进行分析优化。
本发明一种基于MAS协作机制的旅游群组推荐方法,在参与协作求解 的Agent中,通过内部逻辑结构的不同来区分功能的不同,其通过将合同网 协议和黑板模型这两种协作方法结合在一起,将黑板区域这一共享工作空间 应用到部分求解过程中的基于用户的协同过滤算法和均值融合策略的群组 推荐组合,各Agent之间具体的协作推荐。
在参与协作求解的Agent中,通过内部逻辑结构的不同来区分功能的不 同,其中,以冲突检测与消解Agent、计算Agent、和推荐Agent决定着推 荐的成功与否和推荐的效果优劣。
冲突检测与消解Agent,如图3所示,是检测系统流程中发生冲突的环 节以及冲突发生的原因,并根据设定好的协商规则解决冲突,保证整个计算 过程的正常运行和结果的正确输出。计算Agent,如图4所示,是计算游客 或者景点的相似度,因为相似度是对用户或者游客做出推荐的重要依据。推 荐Agent,如图5所示,推荐Agent作为推荐体系中最关键的一环,感知模 块获取游客的推荐请求,以及系统分析到的游客潜在需求,通信模块获取计算Agent传递的相似度数据,结合协同过滤推荐算法和均值融合策略,将群 组内单个游客的推荐结果融合成游客群组的景点推荐结果。
实施例
本实施例一种基于MAS协作机制的旅游群组推荐方法的具体实现过程 如下:
1,解析目标:假设有User1,User2,User3,User4四位游客向西安旅 游推荐系统发出组团推荐景点的请求,由监视Agent响应请求,然后解析任 务。具体为首先感知到四名游客在系统中填写了组团推荐申请的表单以及游 客对某些景点的历史评分信息。然后将表单中的申请信息以及评分信息进行 初始化,记录存储后生成系统日志,最后将日志发布在黑板区域。
2,目标信息共享:四名游客的申请信息和评分信息公布至黑板区域后, 可由各个协作Agent进行共享,具体为参与求解的Agent通过不断浏览黑 板上公开的信息,在其中寻找可以协助自己求解问题的信息,当其在黑板上 找到对自己有利的信息时,就会主动对问题进行求解,并把最终的结果信息 公开在黑板区域。
3,数据处理:数据Agent在接到数据请求后,将四名游客的数据处理 为系统在推荐时所需要的用户对景点的历史评分矩阵,并存储到数据库。原 始数据用户景点评分样例列表1如下:
表1原始数据用户景点评分样例
4,冲突检测与消解:冲突检测与消解Agent首先执行检测程序,对上 述原始数据进行检测。具体为把四名游客两两随机分组,根据定义的游客相 关性因子
对数据进行冲突检测,由上表可得出,游客User3和 User4之间没有共同评分的景点,即这两名游客的相关性因子
故这两个游客之间存在冲突,需要执行冲突消解策略。冲突消解策略 具体如图6所示,在景点用户倒排表中,可以看出,游客User3和User4分 别同时和User1、User2两人具有相关性,则可通过User1、User2将其关联 起来,计算User1、User2之间的相似度,将推荐给User1、User2游客结果 中的共同项,作为给游客User3和User4的推荐结果。
5,相似度计算:采用User-IIF相似度计算方法来计算相似度sim(u,v), 如下公式(1)所示,其中,α为游客相关性因子,N(u)和N(v)为游客u、v各 自参与的所有评分项目对应的评分值组成集合,N(j)表示对景点j有过评价 的所有游客数目,当游客u、v的共同评分项里包含热门景点j的时候,通过
来惩罚热门景点j对相似度计算的影响。
经计算得出上述样例中用户之间的相似度矩阵列表2如下:
表2用户之间的相似度矩阵
|
User1 |
User2 |
User3 |
User4 |
User1 |
1 |
0.447 |
0.894 |
0.447 |
User2 |
0.447 |
1 |
0.447 |
0.894 |
User3 |
0.894 |
0.447 |
1 |
0 |
User4 |
0.447 |
0.894 |
0 |
1 |
6,群组推荐:首先将计算Agent得到的用户相似度值按照从高到低排 序,并对该用户推荐得分较高的前几名作为相似用户,为用户User1推荐的 相似用户顺序为User3,User2,User4。为用户User2推荐的相似用户顺序为 User4,User1,User3。为用户User3推荐的相似用户顺序为User1,User2。 为用户User4推荐的相似用户顺序为User2,User1。
则单个成员u对景点j的预测评分P
u,j如下公式(2)所示,式中,
表 示游客u和游客v的平均评分。
在得到单人预测评分后,本发明中对群组中每位成员对同一景点j的所有预 测评分取均值,得出整个群组对同一景点j的预测评分Pj。如公式(3)所示, N表示群组成员数目,Pu,j表示组内单个成员u对景点j的预测评分。最后将 所有预测评分结果降序排列,生成最终的群组推荐列表。
7,用户评价:四名游客获得组团的景点推荐列表后可在系统里对推荐 结果做出评分,评价结果经由监视Agent反馈至评价Agent进行分析优化。