You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi there! I must be confused.
I am trying to emulate this model, and ran into some trouble with the user->item and item->user message passing layers. When I used target to source for my item->user message passing layer, none of the parameters were training. Always 0 gradient. However, when I created reverse edges using "ToUndirected", it solved the problem. My intuition tells me these two approaches should be the same, but that's not been my experience.
Minimal example (I'm not calculating the behavior weight or alpha from the paper here because I was trying to make things as barebones as possible for debugging):
The graph is HeteroData with user nodes and item nodes, different edge types representing different behaviors, all edge types going from user to item.
The gradient for ItemToUser's linear layer was always 0, but not UserToItem's. When I added the undirected edges, and put the regular edges through one instance of UserToItem (really sending messages from users to items), and the rev edges through another instance of UserToItem (really sending messages from items to users), the linear layers for both were training.
What am I missing?!
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hi there! I must be confused.
I am trying to emulate this model, and ran into some trouble with the user->item and item->user message passing layers. When I used target to source for my item->user message passing layer, none of the parameters were training. Always 0 gradient. However, when I created reverse edges using "ToUndirected", it solved the problem. My intuition tells me these two approaches should be the same, but that's not been my experience.
Minimal example (I'm not calculating the behavior weight or alpha from the paper here because I was trying to make things as barebones as possible for debugging):
The graph is HeteroData with user nodes and item nodes, different edge types representing different behaviors, all edge types going from user to item.
The gradient for ItemToUser's linear layer was always 0, but not UserToItem's. When I added the undirected edges, and put the regular edges through one instance of UserToItem (really sending messages from users to items), and the rev edges through another instance of UserToItem (really sending messages from items to users), the linear layers for both were training.
What am I missing?!
Beta Was this translation helpful? Give feedback.
All reactions