4 ms·
I’m one of the contributors to this project. The idea of the tool is to focus on typical ML feature engineering challenges. It takes a stream of business events
by shutty 5y ago
I’m one of the contributors to this project. The idea of the tool is to focus on typical ML feature engineering challenges. It takes a stream of business events like clicks and impressions, and computes a ton of common ML features on top:
* Parse User-Agent field, make a GeoIP lookup
* Count number of clicks over different items on multiple time windows, like 1-2-3-4 weeks
* Conversion and CTR rates
* Basic customer profiling, like “you clicked on a red item in the past, and this item is also red”
There is just a LambdaMART with xgboost inside, no rocket science. It won’t replace an in-house highly-focused solution, but building everything from scratch may take a ton of time. With Metarank you can quickly hack a good enough solution in a day, hopefully :)
- kqr 5y agoNot only could it be good enough -- it's a great reference to benchmark commercial custom solutions against! (And I say this as an engineer working on one of those commercial custom solutions!)
- Ennergizer 5y agoWhat are approximate the costs in your demo https://demo.metarank.ai/ https://demo.metarank.ai/ example to train and run the service?
- shutty 5y agoRight now it runs in a dev-mode on a single EC2 t3.large instance with loadavg ~0.30, but the inference load is quite tiny right now: around 3-4 reranking requests per second. And yes, as a typical open-source project it still crashes from time to time :) The training dataset is not that huge (see https://github.com/metarank/ranklens/ https://github.com/metarank/ranklens/ for details, it's open-source), so we do a full retraining directly on the node right after the deployment, and it takes around 1 minute to finish. We also run the same process inside the CI: https://github.com/metarank/metarank/blob/master/run_e2e.sh https://github.com/metarank/metarank/blob/master/run_e2e.sh There is an option to run this thing in a distributed mode: * training is done using a separate batch job running on Apache Flink (and on k8s using flink's integration) * feature updates are done in a separate streaming Flink job, writing everything in Redis * The API fetches latest feature values from Redis and runs the ML model. The dev-mode I've mentioned earlier is when all these three things are bundled together in a single process to make it easier to play with the tool. But we didn't spent much time testing distributed setup, as this thing is still a hobby side-project and we're limited in time spent developing it.
- jka 5y agoFrom reading some of the repository and architecture overview, I think this is true, but: could you confirm that users of metarank can self-train their own models from scratch?
- shutty 5y agoThis is actually part of our CI process: https://github.com/metarank/metarank/blob/master/run_e2e.sh https://github.com/metarank/metarank/blob/master/run_e2e.sh . This script runs on every PR to retrain the model used on a demo and confirms that it's working fine. So you can just download the jar file from releases page and run ./run_e2e.sh <jar file> in the checked-out repository, it should do the job.
- jka 5y agoThanks!
- dannywarner 5y agoWhat budget for cloud infrastructure for 100K/mo buyers to an ecommerce website, approximate range, with typical purchase habits? I am new to Flink. We use Redis in production.
- airstrike 5y ago> “you clicked on a red item in the past, and this item is also red” Layman here: is this why I keep seeing ads for things I've already bought?
- nanidin 5y agoNo. When the average person sees an ad for something they just bought, it increases their satisfaction with their purchase (thus making them less likely to return it.) Also, when you’ve just bought something, there is a non-zero chance you will return it and want to buy a different model of the same type of item.
- tinus_hn 5y agoAlso perhaps if you made an informed purchase, the system knows you looked for information on your item but not that you bought it.