lyst / lyst/lightfm

Incorporating item and user biases in LightFM embeddings for accurate recommendations in Vespa

Open
#696 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
5.1k
Forks
724
PR merge metrics
No merged PRs in 30d

Description

I am working on deploying a recommender system using LightFM and Vespa. I have trained a LightFM model and saved the item embeddings in Vespa for deployment. However, I am facing an issue with prediction accuracy as I can only use the dot product of user and item embeddings for prediction in Vespa. The LightFM model's prediction formula includes item_biases and user_biases, which are crucial for accurate recommendations (user_e . item_e + user_b + item_b). Unfortunately, Vespa does not support entering bias information for user and item embeddings, resulting in reduced prediction accuracy.

I would appreciate any guidance or suggestions on how to train the model without biases or how to collect the information of embeddings and biases together, so that I can make accurate predictions in Vespa.
Unfortunately, ignoring biases or concatenating them to embeddings led to worsened prediction accuracy.
Thank you for your help.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file, test, or entry point is named. Start by reviewing LightFM's prediction formula and the Vespa embedding limitation described in the report; done would require an agreed, accurate way to represent or apply user and item biases for Vespa predictions.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.