Improve the stability of the model training process. Too much effort is required by the model to predict elements of the graph that are preexisting. These elements are far more numerous than the relations to be predicted, and so they dominate the priorities of the loss function.
We are also disinterested in predicting the class of edges, we wish only to predict the existence of relation nodes. We should take the view that the roleplayer edges of a relation are attached, and thereby are predicted to exist if their relation is predicted to exist.
What are the changes implemented in this PR?
Efforts to improve the stability and consistency of model training.
The loss function now:
Ignores all edges
Ignores all nodes which are marked as preexisting in the graph
A new metric for accuracy is added to only measure the accuracy for nodes (excluding preexisting nodes)
A larger dataset is used to reduce discrepancies between training and generalisation sets
Add a stringent constraint of a minimum of 70% accuracy on training and generalisation sets for the end-to-end test to pass
Decrease the default number of training iterations since convergence is now typically faster and there are more examples to process
What is the goal of this PR?
Improve the stability of the model training process. Too much effort is required by the model to predict elements of the graph that are preexisting. These elements are far more numerous than the relations to be predicted, and so they dominate the priorities of the loss function.
We are also disinterested in predicting the class of edges, we wish only to predict the existence of relation nodes. We should take the view that the roleplayer edges of a relation are attached, and thereby are predicted to exist if their relation is predicted to exist.
What are the changes implemented in this PR?
Efforts to improve the stability and consistency of model training.