Closed c0ntradicti0n closed 5 years ago
Hi @c0ntradicti0n :
Some models such as ComplEx and HolE use complex-valued embeddings, so there is a real part and an imaginary part. Therefore, for these models, the actual number of embeddings will be twice as what is defined by k
.
About the performance issue with varying k
, I will look into it. Note that the accuracy score is not the same as F1 score, but your point is definitely valid either way.
Regarding the second point, I have tried ComplEx and TransE with k
equals to 100 and 1 (which result in embedding size of 200 and 2 for ComplEx and 100 and 1 for TransE, for the reasons explained in my previous comment). I also applied Logistic Regression, to see the impact of the classifier itself.
First of all, I managed to reproduce your results where having k=1 seems almost as good as k=100. The MRR and clustering however suffered greatly on this setting.
I actually got the best results with TransE with k=100 and Logistic Regression, the accuracy reached 0.559. TransE also had better MRR and adjusted rand score (clustering metric).
I tried applying SHAP on the case of k=1 but the results were not particularly illuminating.
I cannot explain why the accuracy is still strong with such small embedding size. Somehow the embeddings are able to capture some team quality information in this case (though no geographical information, as the clustering becomes poor). I have double checked the baseline and the target and they all seem appropriate.
I will close this issue as there doesn't seem to be any issue to be actually solved in the tutorial notebook.
Description
I checked out this tutorial: https://github.com/Accenture/AmpliGraph/blob/master/docs/tutorials/ClusteringAndClassificationWithEmbeddings.md and changed the
embedding_size
to different values k=[1,2,50] and also changed the training procedure also to minimal values from 50 to 1.Actual Behavior
The classifier, that is trained on a clustering of the embeddings, whatever it classifies, achieves never less than F1 score of 0.53 despite these poor training parameters. (only with k=1 and epochs=1 I get down to 0.525). I also saw the shape of the produced embeddings, it's always the double size of the given
embedding_size
.Expected Behavior
Why is this doubling of the
embedding_size
parameter k? And why this classifier is so effective on the poor embeddings?Steps to Reproduce