4实验
TransE的实验数据是从Wordnet和Freebase中抽取的(它们的统计分布已经在表2中给出),并以各种各样的标准和扩展到相对较大的数据集上与文献中几个已经证明是现在最好的几个方法比较。
4.1数据集
Wordnet 这个知识库用于产生直觉上可用的字典和辞典,并且支持自动文本分析。它的实体对应着词义,关系定义它们之间的词汇关系。我们使用了文献[2]中使用的数据版本,我们在下面表示WN。元组的样例为(score NN 1, hypernym, evaluation NN 1)或者(score NN 2, has part, musical notation NN 1)。
Freebase Freebase是一个一般事实很大并且不断增长的知识库;目前有大约12亿的元组和超过8千万的实体。我们用Freebase构造两个数据集,做一个小的数据集在我们所选择的实体子集上做实验,这个数据集也在Wikilinks数据库中,并且至少有100个在Freebase中(包含实体和关系)。我们移除像’!/people/person/nationality’的关系,与关系’/people/person/nationality’相比仅仅把头和尾互换。结果是含有14951个实体和1345个关系的592,213个元组被随机分割,如表2。在本节的剩余部分这个数据集表示为FB15k。我们也想用一个大规模的数据在规模上去测试TransE。因此,我们从Freebase构造了另一个数据集,通过选择最频繁出现的1百万个实体。这个分割大约有25k的关系和超过170万的训练元组,称为FB1M。
4.2实验设置
评价方案 我们使用跟文献[3]一样的排名过程。对每个测试元组,头部被移去或者被字典中的每个实体轮流替换。首先通过模型计算这些错误元组的相似性(或者能量),然后按升序排列;最后,正确的实体排名被存储。重复这个过程,把移去头部用移去尾部代替。我们报告这些预测排名的平均值和hits@10,也就是,排在前10的正确实体的比例。
这些度量有一定的参考性但是当一些错误元组在验证集上时也有缺陷。在这种情况下,这些可能排在测试元组之上,但是这不应该被作为一个错误计算,因为这两者都是正确的。为了避免这样一个误导的行为,我们移除所有的错误元组,不管是出现在训练集和验证集或者测试集中的。这保证了所有的错误元组不属于数据集。在下文中,我们报告这两种设置下的平均排名和hits@10:原始的数据在论文中为raw,新的为filt。在FB1M的实验上,我们仅提供了原始数据的结果。
标准 第一个方法是无结构的,TransE的一个版本,只考虑了数据的单一关系并且置所有的翻译为0(文献[2]也将它作为标准使用)。我们也和RESCAL作比较,RESCAL是文献[11][12]提出的集体矩阵分解模型,同时也和文献[3]的能量模型SE、文献[2]中的SME(线性)/SME(双线性)以及文献[6]的LFM作比较。RESCAL通过交替最小二乘法训练,其它的与TransE一样通过随机梯度下降训练。表1比较了模型的理论参数数量,并且在FB15k上给出了数量级。SME(线性), SME(双线性), LFM和TransE作为无结构的低维嵌入的参数数量几乎一样,对于SE和RESCAL算法,每个关系要学习至少k*k维的矩阵,因此需要学习更多的参数。在FB15k上,RESCAL大约需要87倍多的参数,因为它比其它模型需要一个较大的嵌入空间以取得较好的性能。因为参数的规模和训练时间原因我们没有在FB1M上做关于RESCAL,SME和LFM的实验。
我们所有的训练方法得代码都是由提出这些方法的作者提供的。对于RESCAL,由于规模原因,我们必须设置正则化参数为0,这一点在文献[11]中已经表明,并且在{50,250,500,1000,2000}中选择隐藏维数k,这可以导致在验证集上取得较低的平均预测排名(使用原始数据)。对于无结构的SE, SME(线性)和SME(双线性),在{0.001,0.01,0.1}中选择学习率,在{20,50}中选择k,并且使用在验证集上的平均排名来选择最好的模型(在训练数据上最多执行1000次)。对于LFM,我们也是用平均验证排名来选择模型,并在{25,50,75}中选择隐藏维数,在{50,100,200,500}中选择因素的数量,在{0.01,0.1,0.5}中选择学习率。
实现 关于TransE的实验,对于随机梯度下降的学习率λ从{0.001,0.01,0.1}中选择,边际值γ从{1,2,10}中选择,k从{20,50}中选择。相似性度量d根据验证的性能选择L1选择L2。优化配置为:在Wordnet上k=20,λ=0.01,γ=1,d=L1;在FB15k上,k=50,λ=0.01,γ=1,d=L1;在FB1M上,k=50,λ=0.01,γ=1,d=L2。对所有的训练集,训练时间最多为1000次。最好的模型通过验证集(原始数据)上的平均排名来选取。在注释6的网页上公开了TransE的实现资源。