Unifying Knowledge Graph Learning and Recommendation: Towards a Better Understanding of User Preferences

总体大纲如下图

记录下:9月6号

组合两个模型:TransHTUP
TransH:考虑关系和实体的1对N,N对1,N对N的情况,实现kg的补全增强
TUP:包括偏好引入和超平面映射

  • 偏好归纳组件
    给定user-item对(u,i),组件从latent factors集合P中归纳出一种偏好。
    两种策略:
    Hard Strategy:假设当用户对项目做出决定时,只有一个偏好生效
    soft Strategy:注意力机制融合多个偏好

  • 超平面映射
    和TransH思想类似,user-item对看作h,t,用户对item的偏好看作r,用偏好p代替kg中的r.


KTUP: 组合上面两个模型
同时提出加强item embedding,perference embedding

   i' = i + e;p' = p + rw_p' = w_p + w_r

然后进行超平面映射,得到新的打分函数

问题:知识图谱的补全增强体现在哪里?TransH算法进行知识图谱的补全

记录下:9月7号,学习TransH知识图谱补全
参考:
transH算法实现知识图谱补全实验


TransH认为:TransE算法在处理自反关系,多对一,一对多,多对多关系时,会使不同的实体拥有相同的嵌入(h+r=t,h+r=t’=>t=t’)
提出了超平面,将头实体和尾实体映射到同一个超平面上,dr是两者在超平面上的平移

知识图谱补全:链接预测
通过TransH建模后,得到了每个实体和关系的嵌入向量,利用嵌入向量,可以进行知识图谱的链接预测
将三元组(head,relation,tail)记为(h,r,t)

链接预测分为三类:
头实体预测:(?,r,t)
关系预测:(h,?,t)
尾实体预测:(h,r,?)
但原理很简单,利用向量的可加性即可实现。以(h,r,?)的预测为例:

假设t’=h+r,则在所有的实体中选择与t’距离最近的向量,即为t的的预测值

问题:wp′w_p'wp怎么获得

jTransUP.py perference归纳代码

# u_e, i_e : batch * dim or batch * item * dim
def getPreferences(self, u_e, i_e, use_st_gumbel=False):# use item and user embedding to compute preference distribution# pre_probs: batch * rel, or batch * item * rel# p = p+r# torch.t转置# pre_probs是相似度分数,不清楚为啥/2pre_probs = torch.matmul(u_e + i_e, torch.t(self.pref_embeddings.weight + self.rel_embeddings.weight)) / 2if use_st_gumbel:# ST Gumbel采样,获得一个热矢量pre_probs = self.st_gumbel_softmax(pre_probs)# 注意力参数和相似度得分成正比r_e = torch.matmul(pre_probs, self.pref_embeddings.weight + self.rel_embeddings.weight) / 2# norm就是w_p',pref_norm_embeddings像是正则化后的pref_embeddingnorm = torch.matmul(pre_probs, self.pref_norm_embeddings.weight + self.norm_embeddings.weight) / 2return pre_probs, r_e, norm

pref_norm_embeddings的初始化

pref_norm_weight = torch.FloatTensor(self.rel_total, self.embedding_size)
nn.init.xavier_uniform(pref_norm_weight)
self.pref_norm_embeddings = nn.Embedding(self.rel_total, self.embedding_size)
self.pref_norm_embeddings.weight = nn.Parameter(pref_norm_weight)
normalize_pref_norm_emb = F.normalize(self.pref_norm_embeddings.weight.data, p=2, dim=1)
self.pref_norm_embeddings.weight.data = normalize_pref_norm_emb

根据norm超平面映射

_, r_e, norm = self.getPreferences(u_e, ie_e, use_st_gumbel=self.use_st_gumbel)proj_u_e = projection_transH_pytorch(u_e, norm)
proj_i_e = projection_transH_pytorch(ie_e, norm)def projection_transH_pytorch(original, norm):return original - torch.sum(original * norm, dim=len(original.size())-1, keepdim=True) * norm

【论文阅读】Unifying Knowledge Graph Learning and Recommendation相关推荐

  1. Unifying Task-oriented Knowledge Graph Learning and Recommendation

    Unifying Task-oriented Knowledge Graph Learning and Recommendation ABSTRACT 背景 将知识图纳入推荐系统(知识感知推荐),以辅 ...

  2. 论文阅读 Enhancing knowledge graph embedding with relational constraints

    Enhancing knowledge graph embedding with relational constraints 利用关系约束增强知识图嵌入 发表于:Neurocomputing 429 ...

  3. 论文阅读《Knowledge Graph Refinement: A Survey of Approaches and Evaluation Methods》

    论文链接 一.谷歌的知识图谱 谷歌的知识图谱是在2012年向公众推出的,也是在这个时候,"知识图谱"这个术语被创造出来. 谷歌本身对于知识图谱的构建是相当保密的:只有少数外部来源讨 ...

  4. 【论文阅读】Spatio-Temporal Graph Convolutional Networks:...Traffic Forecasting[时空图卷积网络:用于交通预测的深度学习框架](1)

    [论文阅读]Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecastin ...

  5. 论文阅读|node2vec: Scalable Feature Learning for Networks

    论文阅读|node2vec: Scalable Feature Learning for Networks 文章目录 论文阅读|node2vec: Scalable Feature Learning ...

  6. 论文阅读笔记:Geography-Aware Sequential Location Recommendation

    论文阅读笔记:Geography-Aware Sequential Location Recommendation 文章目录 论文阅读笔记:Geography-Aware Sequential Loc ...

  7. 论文阅读笔记:SCAN: Learning to Classify Images without Labels

    论文阅读笔记:SCAN: Learning to Classify Images without Labels 摘要 简介和相关工作 方法 表征学习 语义聚类损失 2.3 通过自标记进行微调 3 实验 ...

  8. Zero-shot Learning零样本学习 论文阅读(一)——Learning to detect unseen object classes by between-class attribute

    Zero-shot Learning零样本学习 论文阅读(一)--Learning to detect unseen object classes by between-class attribute ...

  9. 年龄论文阅读——Deep Label Distribution Learning With Label Ambiguity

    论文阅读--Deep Label Distribution Learning With Label Ambiguity 版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.c ...

最新文章

  1. 10 ping不通widwos7 windwos_弱电老司机总结的10种视频监控系统故障解决方法,学会,事半功倍...
  2. supervisor源码分析
  3. Ubuntu root 密码 sudo passwd
  4. 一步一步写二叉查找树
  5. arm-linux-gcc armv4,ubuntu11.10 下 arm-linux-gcc4.4.3
  6. C++11 Lambda表达式(匿名函数)详解
  7. 7限制cpu使用_Kubernetes 资源配额使用指南 | Linux 中国
  8. Netweaver和SAP云平台的quota管理
  9. 土城战役_避免使用FOR –反假战役
  10. 如何在Go中实现Elasticsearch
  11. 解决vue axios跨域请求发送两次问题
  12. QCC3020呼吸灯设计
  13. MySQL数据的读写分离之maxscale的使用
  14. Python下载及环境的安装
  15. UVALive - 5713
  16. 两个案例带你搞定JBoss Marshalling编解码在Netty中的应用
  17. 如何利用PDF转换器将WPS转换成word
  18. 图像的表示方法和种类
  19. SQL Server 2005系列教学(11) 约束
  20. Java(老白再次入门) - 入门概述

热门文章

  1. u盘里的图片损坏怎么修复?
  2. jdt eclipse_Eclipse JDT语言服务器项目
  3. 境界--------相濡以沫,不如相忘于江湖
  4. CollectionView的HeaderView头视图悬停
  5. 清华大学计算机刘云鹏,清华大学2017年在豫高招录取结束
  6. 中山大学计算机类专业是什么,中山大学2017年计算机类专业自主招生条件及专业优势...
  7. 使用certbot生成https证书
  8. cassandra java cql_Cassandra CQL v3.3中文文档(下)
  9. c 语言 合并多个excel,C#操作Excel合并多个Excel文件
  10. ssh免密码登录全过程