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
? 给出了一个新的知识图谱的定义GRG_RGR?,包含一个子集合’USER’ entities UUU和一个子集合’Item’ entities III,满足集合U,IU,IU,I都属于实体集,并且U∩I=?U\cap I=\varnothingU∩I=?.两种实体之间的连接关系使用ruir_{ui}rui?
表示。
? 定义一个K跳路径:pk(e0,ek)=e0?r1e1?r2...?rkekp_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?)=e0??r1?e1??r2?...?rk?ek?,其中ei?1?rieie_{i-1}\stackrel{r_i}{\leftrightarrow}e_iei?1??ri?ei?表示(ei?1,ri,ei)∈GR(e_{i-1},r_i,e_i)\in G_R(ei?1?,ri?,ei?)∈GR?或者(ei,ri,ei?1)∈GR(e_{i},r_i,e_{i-1})\in G_R(ei?,ri?,ei?1?)∈GR?
? 定义一个KGRE-Rec问题:给定一个知识图谱GRG_RGR?,有u∈Uu\in Uu∈U,整数KKK。目的是找到一个推荐的项目集{in}n∈[N]?I\{i_n\}_{n\in [N]}\subseteqq I{ in?}n∈[N]??I,其中每一个(u,inu,i_nu,in?)都对应于一个推理路径pk(u,in)(2≤k≤K)p_k(u,i_n) (2\leq k \leq K)pk?(u,in?)(2≤k≤K)
为了同时得到推荐的item和推理路径,提出Policy-Guided Path Reasoning method(PGPR)方法。有如下流程图:
训练一个RL agent学习从一个user开始,在知识图谱环境中,查找‘好’的item;然后agent为每个用户抽取推荐项目的推理路径作为推荐项目的解释。
上边的图没太看懂
? 3.2 Formulation as Markov Decision Process
? 第一个操作是对于知识图谱GRG_RGR?添加双向边和自环
? **State:**对于时刻t的状态st=(u,et,ht)s_t=(u,e_t,h_t )st?=(u,et?,ht?)。其中u是用户实体,ete_tet?是时刻tagent到达的实体,hth_tht?is the history prior to step t
? **Action:**定义action空间为在状态sts_tst?时,从实体ete_tet?可能出发的边和到达的实体。
At={(r,e)∣(et,r,e)∈GR,e?{e0,...et?1}}A_t=\{(r,e)|(e_t,r,e)\in G_R,e\notin \{e_0,...e_{t-1}\}\}At?={ (r,e)∣(et?,r,e)∈GR?,e∈/?{ e0?,...et?1?}}
对于图中可能会有的节点出度过大,所以需要去掉一些,以使得action空间不至于过大,采用一个scoring function f((r,e)∣u)f((r,e)|u)f((r,e)∣u)来计算用户u和边(r,e)的分数,得到一个新的action空间:
A?t(u)={(r,e)∣rank(f((r,e)∣u))≤α,(r,e)∈At}\overset{-}A_t(u)=\{(r,e)|rank(f((r,e)|u))\leq \alpha,(r,e)\in A_t\}A?t?(u)={ (r,e)∣rank(f((r,e)∣u))≤α,(r,e)∈At?}
其中α\alphaα是预先定义的整数
? **Reward:**用户事先并不知道target item,所以reward不可以是binary的,agent被鼓励找到尽可能多‘’好‘’的路径。‘好’的路径定义为用户有较大的概率会去与其指向的item进行交互。
既然事先并不知道target,那终止状态的定义是个啥????还是说每一步的奖励都是这么定义呀??
对于终止状态sT=(u,eT,hT)s_T=(u,e_T,h_T)sT?=(u,eT?,hT?),基于另一个scoring function f(u,i)f(u,i)f(u,i),定义终止奖励RTR_TRT?如下:
? **Transition:**对于给定的状态和action,其转换到下一个状态的概率是固定的,为1
? 只有在初始状态s0=(u,u,?)s_0=(u,u,\varnothing)s0?=(u,u,?)时,为了简单,假定其是均匀分布。
? Optimization:
? 强化学习的目标是学习到一个策略π\piπ,使得期望奖励最大:
? 设计了一个policy network和一个value network。
? The policy network π(·|s, A?u\overset{-}A_uA?u?)takes as input the state vector s and binarized vector A?u\overset{-}A_uA?u? of pruned action space A?(u)\overset{-}A(u)A?(u) and emits the probability of each action,with zero probability for the action out of A?(u)\overset{-}A(u)A?(u). The value network V?(s)\overset{-}V(s)V?(s)maps the state vector s to a real value
令所有网络的参数Θ={W1,W2,Wp,Wv}\Theta=\{W_1,W_2,W_p,W_v\}Θ={ W1?,W2?,Wp?,Wv?}
梯度表示为:
G为从状态s到终止状态的累计reward,使用discount factor γ\gammaγ
这个公式的求导还不太清楚???
?
? 3.3 Multi-Hop Scoring Function
定义了一个k-hop pattern:
之前定义使得图中存在双向边和自环,所以根据边在路径中的方向不同,分别有forward和backward。增加了一个新的定义1-reverse k-hop pattern:
定义一个general multi-hop scoring function f(e0,ek∣r?k,j)f(e_0,e_k|\overset{-}r_{k,j})f(e0?,ek?∣r?k,j?):
是一个点积运算,e,r是entity e和relation r的d维向量表示,bekb_{ek}bek?是entity e的偏置
? Scoring Function for Action Pruning:
? 感觉是对于一个路径,当碰到其中出现的第一个不属于用户的entity e,将其索引kek_eke?作为最小的k,然后使用上式的方法进行计算。
? Scoring Function for Reward:
? 对于(u,rui,i)∈GR(u,r_{ui},i)\in G_R(u,rui?,i)∈GR?,scoring function for reward定义为:f(u,i)=f(u,i∣r?1,1)f(u,i)=f(u,i|\overset{-}r_{1,1})f(u,i)=f(u,i∣r?1,1?)
? Learning Scoring Function
? 这部分没太看懂,看的很迷???????????
3.4 Policy-Guided Path Reasoning
基于知识图谱,通过训练好的policy network解决推荐问题
直接根据policy得到n条路径无法保证多样性。所以采用algorithm 1
如果一个路径是以item结束的,则就将其保存下来.
对于相同的item,可能会有多条路径,采用生成的概率Q_T进行排序,得到每个item的唯一路径。
通过reward在不同的item中排序选择出候选集
-
4. EXPERIMENTS
介绍这篇文章实验的benchmark,介绍实验相关的实验设置;以及消融实验(ablation studies)s
4.1 Data Description
4.2 Experimental Setup
4.3 Quantitative Analysis
4.4 Influence of Action Pruning Strategy
4.5 Multi-Hop Scoring Function
4.6 Sampling Size in Path Reasoning
4.7 History Representation
? 4.1 Data Description
? 数据集共分为四个领域:CDs and Vinyl, Clothing, Cell Phones and Beauty
? 其中每个领域或者说category是由一个包含五种类别的实体(entity)和7种关系(relation)的知识图谱。具体情况见下表:
? 可以看到Mention和Described_by的关系个数比较多,文章中说和feature有关,可能会含有较多的没有实际含义的词,然后使用TF-IDF进行消除,最终每个数据集有少于5000个feature word和TF-IDF score$>$0.1
? 4.2 Experimental Setup
? 实验baseline和评估方式,以及具体参数的设置:
? baseline:BPR , BPR-HFT , VBPR , TransRec , DeepCoNN , CKE , JRL
? 评估方法:**Normalized Discounted Cumulative Gain(NDCG), Recall, HitRatio(HR) and Precision (Prec.). **
? 其中比较重要的有最大路径长度设置为3,==关于history vector hth_tht?的具体定义为:et?1,rte_{t-1},r_tet?1?,rt?向量的组合,所以状态向量st=(u,et,et?1,rt)s_t=(u,e_t,e_{t-1},r_t)st?=(u,et?,et?1?,rt?)
? 4.3 Quantitative Analysis
? 运行结果如下:
?
? 考虑他们的方法发现有效路径的效率:
? 其中有效路径的定义如下:有效路径的定义:在三跳以内,从user出发,以item结束。一个路径中最多四个实体。
? 具体的测试结果如下:
? 4.4 Influence of Action Pruning Strategy
? 评估模型在不同大小的action空间下的表现
? 随着action空间的变大,整体的效果是由一个向下的趋势
? 具体情况如下:
? 4.5 Multi-Hop Scoring Function
? 探索多跳评分函数是否能够促进模型的表现,使用2-hop进行entity和item的训练。
? 具体的结果表示在上4.4节中的图,有1-hop和2-hop的对比,可以看出提升显著。文章中分析是多跳评分函数在长距离中捕捉到了实体之间的联系。
? 原文:This improvement mainly stems from the effectiveness of the multi-hop scoring function, which captures interactions between entities with longer distance. For example, if a user purchases an item and the item belongs to a category, the 2-hop scoring function enhances the relevance between User entity and Category entity through the 2-hop pattern {Purchase,Belong_to}.
? 4.6 Sampling Size in Path Reasoning
? 探讨在sampling size的大小对于推荐效果的影响(we study how the sampling size for path reasoning influences the recommendation performance of our method. )
? 因为之前定义最大路径为3,所以对于sampling size有一个定义(K1,K2,K3)(K_1,K_2,K_3)(K1?,K2?,K3?)
? 具体的含义为sample 最高(具体是概率还是啥不太清楚?????好像是概率????)的KtK_tKt?个action,在步数t
? 运行结果:
? 其实对于这个结果我看的很迷,感觉发现不了啥东西
? 文章中的分析意思大概是说最初的两个action的选择主要是确定一个大的方向:类似于抵达哪种类型的item,在经过两层之后,方向已经确定,policy network趋于收敛,选择一个最优的action得到好的item
?
? 4.7 History Representation
? 评估不同的history计算对模型的影响。
? no history (0-step)
? last entity et?1e_{t-1}et?1? with relation rtr_trt? (1-step)
? last two entities et?2,et?1e_{t-2},e_{t-1}et?2?,et?1? , with relations rt?1,rtr_{t-1},r_trt?1?,rt? (2-step)
? 具体的运行结果如下:
?
对于0-step结果差的原因为:没有充足的历史信息提供给agent来学习得到一个好的策略
对于2-step结果差的原因:作者也不是很确定,只是说可能的原因是因为过多的历史信息可能是多余的,甚至可能误导agent。
-
5. CASE STUDY ON PATH REASONING
举例说明咋可解释推荐的
-
6. CONCLUSIONSANDFUTUREWORK
? 可能将他们的方法应用于product search , social recommendation , model time-evolving graphs so as to provide dynamic decision support (对时间演化图进行建模,以提供动态决策支持)