从 MAG 数据集构建 DKN 模型训练数据 2024-06-18 作者 C3P00 这篇文章将带你了解如何从 MAG (Microsoft Academic Graph) 数据集构建 DKN (Deep Knowledge-aware Network) 模型的训练数据。DKN 是一种用于推荐系统的深度学习模型,它可以利用知识图谱来提升推荐效果。 数据准备:论文相关文件 首先,我们需要准备论文相关文件。在 DKN 中,论文数据格式如下: [Newsid] [w1,w2,w3...wk] [e1,e2,e3...ek] 其中,Newsid 代表论文的 ID,w1,w2,w3...wk 代表论文中每个词的索引,e1,e2,e3...ek 代表论文中每个实体的索引。词和实体是相互对应的。 例如,一篇论文的标题为: One Health approach in the South East Asia region: opportunities and challenges 那么,标题词的索引可以是: 101,56,23,14,1,69,256,887,365,32,11,567 标题实体的索引可以是: 10,10,0,0,0,45,45,45,0,0,0,0 前两个实体索引为 10,表示这两个词对应同一个实体。词和实体的索引是从 1 到 n 和 m 进行哈希的,其中 n 和 m 分别代表不同词和实体的数量。 构建论文特征文件 词和实体哈希:首先,我们需要对词和实体进行哈希,将每个词和实体映射到一个唯一的索引。 论文内容表示:为了简化,在本教程中,我们只使用论文标题来表示论文内容。当然,你也可以使用论文摘要和正文来更全面地表示论文内容。 特征长度固定:每个论文特征的长度应该固定为 k (max_word_size_per_paper)。如果论文中的词数超过 k,我们将截断论文,只保留前 k 个词。如果词数少于 k,我们将用 0 填充到 k 个词。 构建知识图谱文件 接下来,我们需要构建知识图谱文件。知识图谱由三元组组成,每个三元组表示一个事实: head, tail, relation 例如,一个三元组可以表示: "COVID-19", "Respiratory disease", "is_a" 表示 COVID-19 是一种呼吸道疾病。 构建用户相关文件 接下来,我们需要准备用户相关文件。我们的第一个任务是用户到论文的推荐。对于每个用户,我们收集他/她引用的所有论文,并按时间顺序排列。然后,推荐任务可以被描述为:给定用户的引用历史,预测他/她将来会引用哪些论文。 构建 DKN 训练数据文件 DKN 模型需要以下几个文件作为输入: 训练/验证/测试文件:每个文件中的每一行代表一个实例。Impressionid 用于评估一个印象会话内的性能,因此它只在评估时使用,在训练数据中可以设置为 0。格式如下: [label] [userid] [CandidateNews]%[impressionid] 例如: 1 train_U1 N1%0 用户历史文件:每个文件中的每一行代表一个用户的引用历史。你需要在配置文件中设置 his_size 参数,该参数表示我们使用的用户点击历史的最大数量。如果用户的点击历史超过 his_size,我们将自动保留最后 his_size 个用户的点击历史。如果用户的点击历史少于 his_size,我们将自动用 0 填充到 his_size 个。格式如下: [Userid] [newsid1,newsid2...] 例如: train_U1 N1,N2 DKN 将推荐任务视为一个二元分类问题。我们根据项目的流行度对负样本进行采样。 构建 item-to-item 推荐数据集 我们的第二个推荐场景是关于 item-to-item 推荐。给定一篇论文,我们可以推荐一系列相关的论文供用户引用。 这里我们使用监督学习方法来训练这个模型。每个实例是一个 的元组。Label = 1 表示这对论文高度相关;否则 label 将为 0。 正样本的构建方式如下: 论文 A 和 B 在它们的引用列表中有很多重叠; 论文 A 和 B 被许多其他论文共同引用; 论文 A 和 B 由同一个作者(第一作者)在 12 个月内发表。 总结 本文介绍了如何从 MAG 数据集构建 DKN 模型的训练数据。通过对论文、知识图谱和用户行为数据的处理,我们可以生成 DKN 模型所需的训练数据,并进一步进行模型训练和评估。 参考文献 KDD2020 Tutorial: Deep Learning for Recommender Systems
这篇文章将带你了解如何从 MAG (Microsoft Academic Graph) 数据集构建 DKN (Deep Knowledge-aware Network) 模型的训练数据。DKN 是一种用于推荐系统的深度学习模型,它可以利用知识图谱来提升推荐效果。
数据准备:论文相关文件
首先,我们需要准备论文相关文件。在 DKN 中,论文数据格式如下:
其中,
Newsid
代表论文的 ID,w1,w2,w3...wk
代表论文中每个词的索引,e1,e2,e3...ek
代表论文中每个实体的索引。词和实体是相互对应的。例如,一篇论文的标题为:
那么,标题词的索引可以是:
标题实体的索引可以是:
前两个实体索引为 10,表示这两个词对应同一个实体。词和实体的索引是从 1 到 n 和 m 进行哈希的,其中 n 和 m 分别代表不同词和实体的数量。
构建论文特征文件
构建知识图谱文件
接下来,我们需要构建知识图谱文件。知识图谱由三元组组成,每个三元组表示一个事实:
例如,一个三元组可以表示:
表示 COVID-19 是一种呼吸道疾病。
构建用户相关文件
接下来,我们需要准备用户相关文件。我们的第一个任务是用户到论文的推荐。对于每个用户,我们收集他/她引用的所有论文,并按时间顺序排列。然后,推荐任务可以被描述为:给定用户的引用历史,预测他/她将来会引用哪些论文。
构建 DKN 训练数据文件
DKN 模型需要以下几个文件作为输入:
例如:
例如:
DKN 将推荐任务视为一个二元分类问题。我们根据项目的流行度对负样本进行采样。
构建 item-to-item 推荐数据集
我们的第二个推荐场景是关于 item-to-item 推荐。给定一篇论文,我们可以推荐一系列相关的论文供用户引用。
这里我们使用监督学习方法来训练这个模型。每个实例是一个 的元组。Label = 1 表示这对论文高度相关;否则 label 将为 0。
正样本的构建方式如下:
总结
本文介绍了如何从 MAG 数据集构建 DKN 模型的训练数据。通过对论文、知识图谱和用户行为数据的处理,我们可以生成 DKN 模型所需的训练数据,并进一步进行模型训练和评估。
参考文献