知识图谱用于推荐系统


论文地址

前言和符号

知识图谱在推荐系统的应用,主要有三个方向,基于嵌入,基于连接和基于传播的。
本文符号
在这里插入图片描述
本文一些基础定义
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法概述
在这里插入图片描述

基于嵌入(embedding-based)

在这里插入图片描述

主要有两个模块,一个是学习图谱中实体和关系的表示,另一个是推荐模块。如何组织两个模块就分成了三个小类方法。

two-stageg learning

表示将两个模块一个个分开训练表示。通过使用嵌入方式来得到实体和关系的表示,在输入到推荐模块。
介绍了几种方法,分别是DKN(发掘新闻之间的关系,联合Kim CNN 方法和TransD来表示新闻 v j v_j vj,用户 u i u_i ui聚合了历史点击新闻,利用注意力机制。最后通过多层感知机预测得分),KSR(介绍了时序推荐,利用GRU模块得到用户的偏好,在通过KV-MV模块得到用户属性级别偏好,利用BPR模块与预训练item embedding,之后再利用KV-MN模块学习实体e的embedding,利用TransE学习关系embedding),KTGAN(基于GAN网络)

joint learning

联合训练介绍了CKE(objective函数分为五部分,分别为推荐部分,属性级别特征,文本特征,可视特征还有一项正则),CFKA(利用TransE作为encoder,之后通过hinge loss学习实体和关系的embedding)等方法,

multi-task learing

主要介绍不同任务直接的结合,两个模块独立,通过一个cross & compress单元来分享知识,介绍了一个KTUP。实现图谱补全和推荐任务。补全采用TransH,两个模块的objective fuction
在这里插入图片描述

connection-based method

利用挖掘实体之间的关系,有两个主要的方法。
在这里插入图片描述

meta-structure

利用不同元路径中实体的连接相似性作为图正则化来约束用户和项的表示。
几种相似性
在这里插入图片描述

1.meta-path
2.meta-graph

path-embedding

to encode the connection pattern between user-item pair or item-item pair into vectors,

propagation-based method

利用高阶信息,常用GNN。
分为提取用户信息,提取用户和产品信息
在这里插入图片描述

三种方法对比

在这里插入图片描述

future work

  1. 动态推荐
    动态图注意力网络被提出,值得关注。
  2. 多任务学习
    图谱信息往往是有缺失的,基于图谱的推荐系统可以自然的视为图的链接预测,所以联合训练图补全和推荐模块有利于推荐
  3. 跨域推荐
    由于各个平台的交互数据不平衡,所以可以利用迁移学习等方法。
  4. 知识增强表达
    利用外部数据增强语言表达模型,从而使知识表示和文本表示能够相互细化。
### 知识图谱推荐系统中的三种实现方式 #### 方法一:基于知识图谱增强的协同过滤 传统的协同过滤算法通过分析用户的历史行为来预测用户的兴趣偏好。然而,这种方法通常受限于稀疏性和冷启动问题。引入知识图谱后,可以通过实体链接将用户的行为与知识图谱中的实体关联起来,从而扩展用户的兴趣表示[^1]。具体来说,可以利用知识图谱中的语义信息构建更加丰富的用户画像和物品描述,进而提升推荐效果。 例如,在电影推荐场景中,除了考虑用户观看过的电影外,还可以结合知识图谱中的导演、演员、类型等属性,挖掘潜在的兴趣点。这种做法不仅缓解了数据稀疏性问题,还增强了推荐系统的解释能力[^2]。 ```python def knowledge_based_collaborative_filtering(user_history, kg_entities): user_profile = extract_user_interests(user_history, kg_entities) item_features = enrich_item_descriptions(kg_entities) recommendations = compute_similarity(user_profile, item_features) return recommendations ``` --- #### 方法二:融合知识图谱嵌入的学习模型 知识图谱嵌入技术(如TransE、DistMult)能够将知识图谱中的实体和关系映射到低维向量空间,捕捉它们之间的语义联系[^3]。这些嵌入特征可以直接用于改进推荐模型的表现。一种常见的实践是将知识图谱嵌入与其他特征(如用户交互记录、上下文信息)结合起来,训练统一的混合推荐模型。 在这种方法下,推荐过程不再仅仅依赖显式的用户-物品交互矩阵,而是充分利用隐含在知识图谱中的深层次语义信息。这有助于发现跨领域或间接的相关性,进一步优化个性化推荐的效果[^4]。 ```python import torch.nn as nn class KGEmbeddingBasedRecommender(nn.Module): def __init__(self, entity_embeddings, relation_embeddings): super(KGEmbeddingBasedRecommender, self).__init__() self.entity_embeddings = nn.Embedding.from_pretrained(entity_embeddings) self.relation_embeddings = nn.Embedding.from_pretrained(relation_embeddings) def forward(self, users, items): user_vectors = self.user_embedding(users) item_vectors = self.item_embedding(items) # Combine with KG embeddings enriched_representations = fuse_knowledge_graph_info( user_vectors, item_vectors, self.entity_embeddings.weight ) scores = predict_scores(enriched_representations) return scores ``` --- #### 方法三:基于路径推理的推荐策略 知识图谱本质上是一个大规模的关系型网络,其中包含了丰富的实体及其相互作用的信息。通过对知识图谱上的路径进行建模,可以从已知的事实推导出未知的可能性。这一思路被广泛应用于推荐系统中,特别是在处理长尾商品或者新用户/物品的情况下特别有效[^5]。 例如,假设某个用户喜欢某位特定作者的作品,则可以根据知识图谱找到该作者所属流派下的其他作品,并将其作为候选集的一部分呈现给用户。这样的路径推理机制显著提高了推荐结果的新颖度和多样性。 ```python from pykg2vec.models import TransE def path_reasoning_recommendation(start_entity, target_type, max_hops=3): model = TransE() paths = find_relevant_paths(model, start_entity, target_type, max_hops) recommended_items = rank_candidates(paths) return recommended_items ``` --- ### 总结 上述三种方法分别从不同角度阐述了如何将知识图谱融入推荐系统的设计之中。无论是通过扩充用户画像还是采用先进的机器学习框架,亦或是借助复杂的路径推理逻辑,最终目标都是为了改善用户体验并满足多样化的需求。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值