基于 TransE TransH TransR和PTransE的知识图

・4 分钟阅读

  • 源代码名称: KB2E
  • 源代码网址: https://www.github.com/thunlp/KB2E
  • KB2E的文档
  • KB2E的源代码下载
  • Git URL:
    git://www.github.com/thunlp/KB2E.git
  • Git Clone代码到本地:
    git clone https://www.github.com/thunlp/KB2E
  • Subversion代码到本地:
    $ svn co --depth empty https://www.github.com/thunlp/KB2E
                              Checked out revision 1.
                              $ cd repo
                              $ svn up trunk
              
  • 新增:添加PTransE (EMNLP 2015 )代码!

    评估结果

    我们将在dateSet FB15k和WN18中实现的各种方法的结果列出。

    FB15k

    model meanrank(raw)meanrank(filter)hit@10(raw)hit@10(filter )
    transe(paper )24312534.947.1
    transh(paper )2128745.764.4
    TransR (n =50 )1987748.268.7
    TransE(Our ,n=50 )2108241.961.3
    TransE(Our ,n=100 )2056347.970.2
    PTransE (ADD ,2-step )2005451.883.4
    PTransE (MUL ,2-step )2166747.477.7
    PTransE (RNN ,2-step )2429250.682.2
    PTransE (ADD ,3-step )2075851.484.6

    WN18

    model meanrank(raw)meanrank(filter)hit@10(raw)hit@10(filter )
    transe(paper )26325175.489.2
    transh(paper )31830375.486.7
    TransR23822579.892.0
    transe(our )25123978.989.8
    数据

    我们提供用于data.zip链接任务预测FB15k和WN18的数据集,使用我们的代码所需的输入格式,原始数据可以从以下位置下载:

    FB15k ,WN18 are published by "Translating Embeddings for Modeling Multi-relational Data (2013)."[Download]

    FB13 ,WN11 are published by"Reasoning with Neural Tensor Networks for Knowledge Base Completion",[Download]

    纽约时报语料库:从文本中提取关系的数据是由"Modeling relations and their mentions without labeled text"发布的,应首先从最不发达国家(https://catalog.ldc.upenn.edu/LDC2008T19 )获取数据。

    FB40k [Download]

    在下列格式的文件夹数据/文件夹中需要数据集,其中包含六个文件:

    • train.txt :训练文件,格式化(e1,e2,rel )。

    • valid.txt :验证文件,与train.txt相同

    • test.txt :测试文件,与train.txt相同。

    • entity2id.txt :所有实体和相应的id,每行一个。

    • relation2id.txt :所有关系和相应的id,每行一个。

    • e1_e2.txt由TransE计算的前500个实体对 [Download]

    代码

    代码位于transe/,transr/,ctransr/文件夹中,

    编译

    只需在文件夹中键入make ./

    培训

    要进行培训,你需要遵循以下步骤:

    TransE:在文件夹TransE/文件夹中调用程序Train_TransE

    TransH:在文件夹TransH/文件夹中调用程序Train_TransH

    TransR:

    • 将TransE的统一方法作为初始化。

    • 在transr/文件夹中调用程序train_transr

    CTransR:

    • 将TransR的统一方法作为初始化。

    • 在文件夹集群中运行带有关系号的bash run.sh。 例如,bash run.sh 10

    • 在文件夹ctransr/中调用程序train_ctransr

    你还可以在运行Train_TransE,Train_TransR,Train_CTransR时更改参数。

    -size:嵌入大小k,d

    -rate:学习率

    -method:0 -unif,1 -bern

    测试

    对于测试,你需要遵循以下步骤:

    TransR:在文件夹TransR/folder中调用带有方法的程序Test_TransR

    CTransR:在文件夹CTransR/folder中调用带有方法的程序Test_CTransR

    它将在test.txt上进行评估,并且报告平均等级和命中数@10.

    引用

    如果你使用该代码,请参考以下文章:

    Yankai Lin ,zhiyuan Liu ,maosong Sun ,yang Liu ,xuan Zhu ,Learning Entity and Relation Embeddings for Knowledge Graph Completion ,the 29th AAAI Conference on Artificial Intelligence (AAAI'15),[pdf]

    讨论
    Fansisi profile image