AnacletoLAB / grape

🍇 GRAPE is a Rust/Python Graph Representation Learning library for Predictions and Evaluations
MIT License
508 stars 37 forks source link

Embedding model names not recognized; alternate suggestions are unexpected #12

Closed caufieldjh closed 1 year ago

caufieldjh commented 2 years ago

As of grape 0.1.9, node embedding model names have changed, such that a call to embiggen's AbstractModel.get_task_data(model_name, task_name) with one of the frequently used model names like CBOW or SkipGram throws a ValueError.

I see from grape.get_available_models_for_node_embedding() that these now have more specific names like Node2Vec CBOW. No problem with being specific, but we'd still like to be able to specify CBOW, SkipGram, or GloVe in config definitions without having to verify the exact model names embiggen is expecting first. Could we use the short names as aliases to a default model, like CBOW will be understood as Node2Vec CBOW, etc?

The name convention also appears to confuse the alternative suggests provided in the ValueError text, so we get suggestions like this:

ValueError: The provided model name `CBOW` is not available. Did you mean BoxE?
caufieldjh commented 2 years ago

Also looks like there is a typo in the name of Nod2Vec GloVe

LucaCappelletti94 commented 2 years ago

Typo fixed, I'm looking into getting more helpful method names.

LucaCappelletti94 commented 2 years ago

The reason we are no longer accepting the generic CBOW name is that we have a plethora of models that use CBOW or others, and it is, therefore, unclear which one to use. For instance, it may be Walklets CBOW, Node2Vec CBOW or Deepwalk CBOW. I am now looking into getting a more helpful suggestion.

LucaCappelletti94 commented 1 year ago

The suggestion system should now provide a better error.