Comments (2)
I'm not sure if I understand it correctly.
From what I get, you have a situation in which you have user features + item features and you observe both, and at each turn you make a recommendation for a different user and each potential recommendation has a continuous score, which is not the kind of scenario that this library deals with.
If the item embeddings are supposed to be invisible / not available to the algorithm and there is a threshold on the obtained scores to make them binary (reward vs. no reward), then it would sound like the kind of problem for this library, for which you could treat the items as arms (you'll need to enumerate them) and the user vector as features (you'll need to convert them to a matrix with 1 row, and pass it as numpy array)
But be aware that (a) this software by default will switch to non-contextual MAB when the number of seen data points is small, so if you explicitly want to make it contextual while running for only a few rounds, you'll have to check the specific parameters that you are using, (b) if you know the specific reward-generating function and the algorithm is supposed to be aware of this point, you might want to select a classifier and its hyperparameters accordingly instead of following the example notebooks.
from contextualbandits.
Thanks for your prompt reply @david-cortes, I really appreciate your message!
The simulation is for 1 user (user_embeddings
). The turns are a conversation simulation where the user gives his/her preferences step by step (comments in lines 83+).
Indeed, the current gist returns a continuous value between 0 and 1 where 1 means 100% match between user preferences and item features but I can maybe try to define a threshold to return 1 or 0 (reward/no reward).
I think contextual MAB makes sense for my project (a chatbot asks questions about user preferences) because the idea is to use a hybrid approach when it comes to recommend items (user-item and item-item filtering). The Gist tries to illustrate both concepts.
An idea: the goal of the algo is to find the best "end result" based on the maximization of 2 reward functions (user-item and item-item).
from contextualbandits.
Related Issues (20)
- Question about using contextual bandits in specific case HOT 1
- Question regarding using contextual bandits for Learning-To-Rank HOT 1
- Different predictions of the same model.dill file in different CPUs for the LinUCB algorithm HOT 1
- Support for continuous rewards HOT 1
- ParametricTS fails with: '_OneVsRest' object has no attribute 'beta_counters' HOT 2
- XGBClassifier becomes un-serializable after being used as a base_model HOT 2
- Need more understanding for the method beta_prior HOT 1
- Any good strategies to run Simulation other then one in Online policy example HOT 1
- How to deal with this Scenario while applying CB techniques HOT 2
- Getting topN arm features in Offpolicy method HOT 4
- Type error if beta_prior == "auto" and nchoices is list HOT 1
- Possibly unexpected behaviour of decision function HOT 1
- _BasePolicy.add_arm(); NameError: name 'base_algorithm' is not defined HOT 1
- AssertionError: online_contextual_bandits.ipynb HOT 1
- TypeError: contextual bandits with custom 'choice_names' (online.py) HOT 3
- Getting topN arm features in onlinepolicy method HOT 9
- topN inputs clarification HOT 3
- warm_start for online policy HOT 1
- Doubt in DREstimator HOT 3
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 contextualbandits.