-
Notifications
You must be signed in to change notification settings - Fork 1
/
reproduce_link_prediction_results.py
320 lines (286 loc) · 22 KB
/
reproduce_link_prediction_results.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
from util.helper_classes import Reproduce
from models.ensemble import Ensemble
run_WN18RR = True
run_FB15K_237 = True
run_YAGO_3_10 = True
run_Kinship = True
run_UMLS = True
run_FB15K = True
run_WN18 = True
# To predict only tail entity, set it to true
tail_pred_constraint = False
# To apply range constraint, set it True. This is ongoing work.
apply_range_constraint = True
# To show link prediction results via ensemble models, set it True.
show_ensembles = False
if run_FB15K_237:
kg_path = 'KGs/FB15k-237'
print(
'########################################### {0} ##################################################'.format(
kg_path))
Reproduce().reproduce(model_path='PretrainedModels/FB15K-237/QMultBatch', data_path="%s/" % kg_path,
model_name='QMultBatch', tail_pred_constraint=tail_pred_constraint,
apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/FB15K-237/OMultBatch', data_path="%s/" % kg_path,
model_name='OMultBatch', tail_pred_constraint=tail_pred_constraint,
apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/FB15K-237/ConvQBatch', data_path="%s/" % kg_path,
model_name='ConvQBatch', tail_pred_constraint=tail_pred_constraint,
apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/FB15K-237/ConvOBatch', data_path="%s/" % kg_path,
model_name='ConvOBatch', tail_pred_constraint=tail_pred_constraint,
apply_range_constraint=apply_range_constraint)
if show_ensembles:
Reproduce().reproduce_ensemble(
model=Ensemble(
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/QMultBatch', model_name='QMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/OMultBatch', model_name='OMultBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/QMultBatch', model_name='QMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/ConvQBatch', model_name='ConvQBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/QMultBatch', model_name='QMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/ConvOBatch', model_name='ConvOBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/OMultBatch', model_name='OMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/ConvQBatch', model_name='ConvQBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/OMultBatch', model_name='OMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/ConvOBatch', model_name='ConvOBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/ConvQBatch', model_name='ConvQBatch'),
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/ConvOBatch', model_name='ConvOBatch'),
Reproduce().load_model(model_path='PretrainedModels/FB15K-237/OMultBatch', model_name='OMultBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
print(
'########################################### {0} ##################################################'.format(
kg_path))
if run_YAGO_3_10:
kg_path = 'KGs/YAGO3-10'
print('###########################################{0}##################################################'.format(
kg_path))
Reproduce().reproduce(model_path='PretrainedModels/YAGO3-10/QMult', data_path="%s/" % kg_path, model_name='QMult',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/YAGO3-10/OMult', data_path="%s/" % kg_path, model_name='OMult',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/YAGO3-10/ConvQ', data_path="%s/" % kg_path, model_name='ConvQ',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/YAGO3-10/ConvO', data_path="%s/" % kg_path, model_name='ConvO',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
if show_ensembles:
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/QMult', model_name='QMult'),
Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/OMult', model_name='OMult')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/QMult', model_name='QMult'),
Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/ConvQ', model_name='ConvQ')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/QMult', model_name='QMult'),
Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/ConvO', model_name='ConvO')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/OMult', model_name='OMult'),
Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/ConvQ', model_name='ConvQ')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/OMult', model_name='OMult'),
Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/ConvO', model_name='ConvO')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/ConvQ', model_name='ConvQ'),
Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/ConvO', model_name='ConvO'),
Reproduce().load_model(model_path='PretrainedModels/YAGO3-10/OMult', model_name='OMult')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
if run_WN18RR:
kg_path = 'KGs/WN18RR'
print(
'########################################### {0} ##################################################'.format(
kg_path))
Reproduce().reproduce(model_path='PretrainedModels/WN18RR/QMult', data_path="%s/" % kg_path, model_name='QMult',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/WN18RR/OMultBatch', data_path="%s/" % kg_path,
model_name='OMultBatch', tail_pred_constraint=tail_pred_constraint,
apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/WN18RR/ConvQBatch', data_path="%s/" % kg_path,
model_name='ConvQBatch', tail_pred_constraint=tail_pred_constraint,
apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/WN18RR/ConvOBatch', data_path="%s/" % kg_path,
model_name='ConvOBatch', tail_pred_constraint=tail_pred_constraint,
apply_range_constraint=apply_range_constraint)
if show_ensembles:
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/WN18RR/QMult', model_name='QMult'),
Reproduce().load_model(model_path='PretrainedModels/WN18RR/OMultBatch',
model_name='OMultBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/WN18RR/QMult', model_name='QMult'),
Reproduce().load_model(model_path='PretrainedModels/WN18RR/ConvQBatch',
model_name='ConvQBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/WN18RR/QMult', model_name='QMult'),
Reproduce().load_model(model_path='PretrainedModels/WN18RR/ConvOBatch',
model_name='ConvOBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/WN18RR/OMult', model_name='OMult'),
Reproduce().load_model(model_path='PretrainedModels/WN18RR/ConvQBatch',
model_name='ConvQBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(
Reproduce().load_model(model_path='PretrainedModels/WN18RR/OMultBatch', model_name='OMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/WN18RR/ConvOBatch',
model_name='ConvOBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(
Reproduce().load_model(model_path='PretrainedModels/WN18RR/ConvQBatch', model_name='ConvQBatch'),
Reproduce().load_model(model_path='PretrainedModels/WN18RR/ConvOBatch', model_name='ConvOBatch'),
Reproduce().load_model(model_path='PretrainedModels/WN18RR/OMultBatch',
model_name='OMultBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
print(
'########################################### {0} ##################################################'.format(
kg_path))
if run_FB15K:
kg_path = 'KGs/FB15k'
print(
'########################################### {0} ##################################################'.format(
kg_path))
Reproduce().reproduce(model_path='PretrainedModels/FB15K/QMult', data_path="%s/" % kg_path, model_name='QMultBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/FB15K/OMult', data_path="%s/" % kg_path, model_name='OMultBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/FB15K/ConvQ', data_path="%s/" % kg_path, model_name='ConvQBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/FB15K/ConvO', data_path="%s/" % kg_path, model_name='ConvOBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
if run_WN18:
kg_path = 'KGs/WN18'
print(
'########################################### {0} ##################################################'.format(
kg_path))
Reproduce().reproduce(model_path='PretrainedModels/WN18/QMult', data_path="%s/" % kg_path, model_name='QMultBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/WN18/ConvQ', data_path="%s/" % kg_path, model_name='ConvQBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/WN18/OMult', data_path="%s/" % kg_path, model_name='OMultBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/WN18/ConvO', data_path="%s/" % kg_path, model_name='ConvOBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
if run_UMLS:
kg_path = 'KGs/UMLS'
print('###########################################{0}##################################################'.format(
kg_path))
Reproduce().reproduce(model_path='PretrainedModels/UMLS/QMult', data_path="%s/" % kg_path, model_name='QMultBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/UMLS/ConvQ', data_path="%s/" % kg_path, model_name='ConvQBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/UMLS/OMult', data_path="%s/" % kg_path, model_name='OMultBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/UMLS/ConvO', data_path="%s/" % kg_path, model_name='ConvOBatch',
tail_pred_constraint=tail_pred_constraint, apply_range_constraint=apply_range_constraint)
if show_ensembles:
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/UMLS/ConvQ', model_name='ConvQBatch'),
Reproduce().load_model(model_path='PretrainedModels/UMLS/ConvO', model_name='ConvOBatch'),
Reproduce().load_model(model_path='PretrainedModels/UMLS/OMult', model_name='OMultBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/UMLS/ConvQ', model_name='ConvQBatch'),
Reproduce().load_model(model_path='PretrainedModels/UMLS/ConvO', model_name='ConvOBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/UMLS/QMult', model_name='QMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/UMLS/OMult', model_name='OMultBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/UMLS/QMult', model_name='QMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/UMLS/ConvQ', model_name='ConvQBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/UMLS/QMult', model_name='QMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/UMLS/ConvO', model_name='ConvOBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/UMLS/OMult', model_name='OMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/UMLS/ConvQ', model_name='ConvQBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/UMLS/OMult', model_name='OMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/UMLS/ConvO', model_name='ConvOBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
print(
'########################################### {0} ##################################################'.format(
kg_path))
if run_Kinship:
kg_path = 'KGs/KINSHIP'
print(
'########################################### {0} ##################################################'.format(
kg_path))
Reproduce().reproduce(model_path='PretrainedModels/Kinship/QMult', data_path="%s/" % kg_path,
model_name='QMultBatch', tail_pred_constraint=tail_pred_constraint,
apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/Kinship/ConvQ', data_path="%s/" % kg_path,
model_name='ConvQBatch', tail_pred_constraint=tail_pred_constraint,
apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/Kinship/OMult', data_path="%s/" % kg_path,
model_name='OMultBatch', tail_pred_constraint=tail_pred_constraint,
apply_range_constraint=apply_range_constraint)
Reproduce().reproduce(model_path='PretrainedModels/Kinship/ConvO', data_path="%s/" % kg_path,
model_name='ConvOBatch', tail_pred_constraint=tail_pred_constraint,
apply_range_constraint=apply_range_constraint)
if show_ensembles:
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/Kinship/ConvQ', model_name='ConvQBatch'),
Reproduce().load_model(model_path='PretrainedModels/Kinship/ConvO', model_name='ConvOBatch'),
Reproduce().load_model(model_path='PretrainedModels/Kinship/OMult',
model_name='OMultBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/Kinship/ConvQ', model_name='ConvQBatch'),
Reproduce().load_model(model_path='PretrainedModels/Kinship/ConvO',
model_name='ConvOBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/Kinship/QMult', model_name='QMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/Kinship/OMult',
model_name='OMultBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/Kinship/QMult', model_name='QMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/Kinship/ConvQ',
model_name='ConvQBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/Kinship/QMult', model_name='QMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/Kinship/ConvO',
model_name='ConvOBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/Kinship/OMult', model_name='OMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/Kinship/ConvQ',
model_name='ConvQBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
Reproduce().reproduce_ensemble(
model=Ensemble(Reproduce().load_model(model_path='PretrainedModels/Kinship/OMult', model_name='OMultBatch'),
Reproduce().load_model(model_path='PretrainedModels/Kinship/ConvO',
model_name='ConvOBatch')),
data_path="%s/" % kg_path, tail_pred_constraint=tail_pred_constraint)
print(
'########################################### {0} ##################################################'.format(
kg_path))