lyst / lyst/lightfm

Score decreases when features normalization enabled

Open
#413 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Hi,

I train my LightFM model with no features for both users and products (I create a pure interaction matrix) based on implicit interactions. I score my model using mean average precision. In one of my experiments, I tried to add one feature for every user (one-hot encoded, so I added ~10 columns to the user features matrix - I built it using `Dataset` class). Unfortunately, after this operation, my score decreased about 2 times. Interestingly, when I set `normalize=False` in `build_user_features` method, the score returned to the previous value (approximately).

Am I doing something wrong or is it a well-known effect that the score drastically decreases after normalization? Why?

Parameters for my model: `no_components=150`, `learning_rate=0.06`, `loss='warp'`. I trained the model with ~750 000 users and ~200 000 products.

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

Start with Dataset.build_user_features and reproduce the comparison between normalize=True and normalize=False using the reported one-hot user features, WARP settings, and MAP evaluation. Done means determining whether normalization explains the score change or exposes a defect, then documenting the finding or correcting the behavior if it is erroneous.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.