Comments (11)
What is the reasoning? They are used twice hence the penalty is computed for each factor matrix of each mode, which does matter in two cases: 1. when the penalty that is computed is weighted 2. when the penelty weight comes from a shared lookup_embedder config setting, such that we cannot learn/tune the scaling.
from kge.
I can see arguments for both ways of doing it.
-
Keep as before: Do it like everywhere else (all related work). More intuitive/natural. Better performance.
-
Change is in this commit: No special treatment of the shared_embedders case. Anything else?
The weights are not a big deal: can be done both ways: in (1) by simply passing along a list of ids (as suggested in #39), in (2) by calling penalty twice (for s, for o). (BTW: currently, the penalty function in KgeModel does not correctly pass along ids.)
from kge.
currently, the penalty function in KgeModel does not correctly pass along ids.
How is that?
from kge.
currently, the penalty function in KgeModel does not correctly pass along ids.
How is that?
All fine, I must have been looking at outdated code.
from kge.
The current implementation of these penalty terms for lookup_embedders uses embed:
parameters = self.embed(kwargs['batch']['triples'][:, kwargs['slot']])
This may be flawed since this will run dropout (but shouldn't).
from kge.
from kge.
Looks fine now. The only suggested change I still have is the API change from #39:
I suggest to change self.get_s_embedder().penalty(slot=0, **kwargs) to self.get_s_embedder().penalty(penality_ids=triples[slot], **kwargs) or so. This way, the embedder can be used later on when the weights do not come from triples.
from kge.
The change above is still open.
I also think that it would be helpful (for understanding the model) if the penalty terms were named (e.g., entity_embedder.l2) and traced/printed both with and without the regularization weight being applied.
from kge.
Is this currently being worked on already?
from kge.
Yes, by @Nzteb
from kge.
Closed with #101
from kge.
Related Issues (20)
- Support more metrics?
- How to apply HittER
- Number of negative samples during evaluation HOT 3
- web.informatik.uni-mannheim.de not accesible HOT 2
- ValueError thrown by `$ kge start examples/toy-complex-train.yaml` HOT 3
- Using buffer for writing to a file during preprocessing
- ConvE and reciprocal_relations_model HOT 2
- Getting output of libKGE
- Relation Prediction HOT 5
- Filtered _ro prediction HOT 1
- Frequency based sampling broken
- Error on tensor scoring HOT 1
- Adding user keys to config HOT 2
- Trial XXXXX failed: TypeError("step() missing 1 required positional argument: 'closure'") HOT 2
- ERROR: file:///content does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found. HOT 3
- generate embeddings HOT 1
- Trained embeddings are missing for Codex-{S/M/L} HOT 1
- dataset issues HOT 3
- Getting model predictions in parallel HOT 1
- About debug the program HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kge.