Comments (3)
Yes, the public version doesn't use BPTT. The reason is that it doesn't suit the data, in which the mojority of the sessions are very short (2-3 clicks) and the lengths are quite varied. I have a two BPTT versions in my private repo that overcomes the varying session length problem by (1) filtering short sessions and (2) by padding, respectively.
The version that uses filtering steadily decreases recommendation accuracy as I increase the window size. It seems that having more data is more important than learning a better sequence model based on long sessions.
The padding version performs similarly to the original algorithm - that is uploaded here - but trains slower due to the implementation of BPTT.
I might upload the padding version to the public repo later, but I haven't decided yet.
from gru4rec.
@hidasib
Thanks a lot for your explaination!
What about sort the sessions by length first?
In this way, the problem cause by padding is relieved
Does it cause another problem that the distribution between batches is very diffierent?
from gru4rec.
Some additional info about BPTT and the difference between session-based and sequential personalized recommendations was added to the readme. I will probably add the BPTT version (which has also been sped up significantly) to the public repo in the future for folks who use longer sequences, such as user histories. For now, I'm closing this issue.
from gru4rec.
Related Issues (20)
- About training time HOT 1
- Is it possible to output the embedding of user/session and item vectors? HOT 1
- NOT RNN MODEL HOT 2
- Additional Negative Sampling: Conditional Statement Logic Error HOT 1
- generate_samples function call in gru4rec.py HOT 2
- BPR loss implementation question
- Fit function in gru4rec.py missing data sort HOT 1
- predict_next_batch not considering other products in the same session HOT 2
- (Question) - How to use all items in a session for prediction? HOT 2
- No hidden state reset in get_metrics HOT 4
- Where is the data file ?
- theano error HOT 2
- Can you make a brief explaination on how you calculate recall ? HOT 2
- Incremental training (retrain) support removed
- ValueError: Input dimension mis-match. (input[2].shape[0] = 2080, input[3].shape[0] = 32)
- cuda error
- GFF code
- Testing Error:: start = offset_sessions[iters] IndexError: index 2 is out of bounds for axis 0 with size 2
- Evaluating baselines
- Non-session based custom dataset HOT 2
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 gru4rec.