Item-Based Collaborative Filtering

Item-based collaborative filtering computes similarity between item columns, then recommends items similar to those a user already consumed. Compared with user-based collaborative filtering, item similarities can be more stable because item catalogs often change slower than user histories.

Item-item similarity

For item vectors and over users,

A user score for unseen item is

This is often a fast candidate generation source before richer ranking.

Worked example

Assume the target user already consumed items 0 and 3. Candidate scores sum item-item similarities from the consumed set and then filter already-seen items:

Candidate itemSimilarity to item 0Similarity to item 3Unseen scoreDecision
Item 01.0000.408filteredalready consumed
Item 10.8160.0000.816candidate
Item 20.4080.5000.908top candidate
Item 30.4081.000filteredalready consumed

Item 2 receives support from both consumed items and becomes the top unseen recommendation. Matrix factorization can compress a similar item-item structure into latent factors.

Caveats

Popular items are similar to many items unless similarities are normalized or shrinkage is used. Item-item tables can be large for huge catalogs, so approximate nearest-neighbor indexes and pruning are common. Pure item similarity still has cold-start problems for brand-new inventory.

References