论文Reinforcement Knowledge Graph Reasoning for Explainable Recommendation笔记;可解释的推荐系统

Reinforcement Knowledge Graph Reasoning for Explainable Recommendation

  • abstract

与大多数现有的方法不同,这篇文章致力于实现明确的可解释推荐,在知识图谱中得到明确的理由从而进行推荐。

提出了一个 Policy-Guided Path Reasoning(PGPR)方法

提出了四个主要贡献,在introduction又详细写了下

  • introduction

介绍了下当前方法存在的哪些问题:

1.利用知识图谱嵌入做推荐

1.1存在的问题:纯知识图谱嵌入,缺少发现多跳关系路径的能力 多跳关系路径是个啥??

​ 1.2利用知识图谱嵌入增强协同过滤

​ 存在的问题:是在相应的推荐项被选择后,再进行解释 具体怎么进行相应的解释不太清楚??

2.Another line of research investigates path-based recommendation

​ 2.1 对知识图谱使用元路径进行推理(proposed the notion of meta-paths to reason over KGs.)

​ 存在的问题:无法探索未连接的实体之间的关系

​ 2.2 基于知识图谱路径嵌入的方法进行推荐,需要枚举user-item对之间的所有可能路径(developed a path embedding approach for recommendation over KGs that enumerates all the qualified paths between every user–item pair,and then trained a sequential RNN model from the extracted paths to predict the ranking score for the pairs.)

​ 存在的问题:对于大的知识图谱,没有办法全部探索。

文章对此提出了他们的方法,不只是得到推荐项目的候选集,还有得到每个项目推荐的原因,可解释的证据。把推荐过程看成确定性马尔可夫决策过程。

agent从一个给定的user出发,学习找到用户潜在的感兴趣的项(item)。并且这个path history当作为什莫推荐给用户的解释。

如下图:

在这里插入图片描述

给定用户A,算法找到的item B 和F,推导路径(reasoning path)为{UserA → ItemA → BrandA → Item B} and {UserA → Feature B → Item F}.

实现上边的方法面临的挑战及解决方法:

​ 1.如何正确的衡量推荐给用户的item,需要认真考虑终止情况(terminal conditions)和奖励(reward)

解决方案:搞了一个基于软奖励(soft reward strategy)的多跳评分函数,使用知识图谱中丰富的异构信息。

​ 2.==这个没太看懂是个啥意思,关于这个action可能需要在后边的模型和实验再看下????==action的空间依赖于图的出度,某些点可能会非常大

解决方案:提出了一个user-conditional action pruning strategy来减少action空间

​ 3.对于推荐,需要保证item和path的多样性,避免agent被限制在item的某一个区域

解决方案:design a policy-guided search algorithm to sample reasoning paths for recommendation in the inference phase具体咋做的还不太清楚???

这篇文章的贡献:

​ 1.他们说明了把知识图谱里边丰富的异构信息放到推荐问题,用以解释推理过程的重要意义

​ 2.提出了基于强化学习的方法,通过使用软奖励机制(soft reward strategy),user-conditional action pruning,and the multi-hop scoring strategy

​ 3.设计了基于beam-search的算法来高效的取样推理路径和候选item用于推荐

​ 4.在几个Amazon 电子商务领域上进行测试,得到了好的结果和可解释的推理路径

  • 2. Related work

    2.1 Collaborative Filtering

    2.2 Recommendation with Knowledge Graphs

    2.3 Reinforcement Learning


​ 2.1 Collaborative Filtering

​ 早期的协同过滤使用user-item评分矩阵,使用基于用户或基于物品的协同过滤方法。随着降维方法的发展,潜在因子(latent factor)模型比如矩阵分解被用于推荐。随着深度学习和神经网络的发展,拓展了协同过滤方法,主要分为两种子类:the similarity learning approach , the representation learning approach。但上边的这些方法都很解释推荐结果。

​ 2.2 Recommendation with Knowledge Graphs

​ 之前的工作将知识图谱嵌入以帮助推荐。一个研究方向是将知识图谱嵌入作为丰富的内容信息(rich content information)增强推荐的性能;另一个研究方向尝试使用知识图谱中实体(entity)和路径信息作可解释的决定,但是之前工作存在的问题就是上边introduction提到的:先选择项再形成推荐或无法在大的知识图谱上使用

​ 2.3 Reinforcement Learning

​ 提了一些RL在推荐系统的使用,但没有知识图谱;一些使用了知识图谱,但是在QA工作上。最后说当前的工作没有在较大知识图谱的基础上使用强化学习实现推荐系统的工作。

  • 3. Methodology

    3.1 Problem Formulation

    3.2 Formulation as Markov Decision Process

    3.3 Multi-Hop Scoring Function

    3.4 Policy-Guided Path Reasoning


​ 3.1 Problem Formulation

​ 给出了一个新的知识图谱的定义 G R G_R GR,包含一个子集合’USER’ entities U U U和一个子集合’Item’ entities I I I,满足集合 U , I U,I U,I都属于实体集,并且 U ∩ I = ∅ U\cap I=\varnothing UI=.两种实体之间的连接关系使用 r u i r_{ui} rui

表示。

​ 定义一个K跳路径: p k ( e 0 , e k ) = e 0 ↔ r 1 e 1 ↔ r 2 . . . ↔ r k e k p_k(e_0,e_k)={e_0\stackrel{r_1}{\leftrightarrow}e_1 \stackrel{r_2}{\leftrightarrow}...\stackrel{r_k}{\leftrightarrow}e_k} pk(e0,ek)=e0r1e1r2...rkek,其中 e i − 1 ↔ r i e i e_{i-1}\stackrel{r_i}{\leftrightarrow}e_i ei1riei表示 ( e i − 1 , r i , e i ) ∈ G R (e_{i-1},r_i,e_i)\in G_R (ei1

### 基于强化学习的时间知识图谱问答模型 RTA 的实现与应用 #### 时间知识图谱的重要性 时间知识图谱能够捕捉事件随时间的变化和发展,对于理解动态过程至关重要。通过构建包含时间维度的知识图谱,可以更精确地表示实体间的关系及其演变情况[^1]。 #### 强化学习的作用 利用强化学习算法来增强时间知识图谱问答系统的性能是一种有效的方法。该方法允许系统根据反馈不断调整自身的策略,在面对复杂查询时做出更加合理的决策。具体来说,强化学习可以帮助优化路径选择、关系预测以及答案生成等多个方面的工作流程。 #### 模型架构设计 为了有效地处理涉及时间因素的问题,RTA 模型通常会采用一种混合结构,即结合传统的神经网络组件(如LSTM 或 Transformer)用于编码输入序列中的时间和上下文信息,并引入基于Q-learning或者Policy Gradient的强化学习模块来进行下一步动作的选择和评估。这种组合不仅提高了对长期依赖性的建模能力,还增强了应对不确定性环境下的适应性和鲁棒性[^2]。 ```python import torch.nn as nn from transformers import BertModel, BertTokenizer class TimeQA(nn.Module): def __init__(self): super(TimeQA, self).__init__() self.bert = BertModel.from_pretrained('bert-base-uncased') def forward(self, input_ids, attention_mask=None): outputs = self.bert(input_ids=input_ids, attention_mask=attention_mask) return outputs.last_hidden_state[:, 0, :] ``` 此代码片段展示了如何初始化一个简单的BERT模型作为时间感知问答的基础框架的一部分。实际的应用中还需要加入更多针对特定任务定制化的层和技术细节以完成整个RTA体系的设计[^3]。 #### 应用案例分析 在智能客服领域,RTA 可以为用户提供更为精准的历史订单追踪服务;医疗健康行业中,则可用于辅助医生回顾患者病史并提供个性化的治疗建议;金融风控部门也能借助此类技术更好地识别潜在风险信号,提前采取预防措施等。总之,随着应用场景日益多样化,基于强化学习的时间知识图谱问答模型将在众多行业发挥重要作用[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值