Can I combine bpr (for offline long term static behavior) with als (near line for short time (mini batch) incremental dynamic behavior)?
Recommendation algorithms deal with ever growing user feedback, so for bpr , I can just use long term userid+itemid pairs to train the model and get the user/item latent factors (we can do that daily).
As the data grows (especially for incremental short time user behavior), we can just assume that the user factor is static (since new user would have cold start issue with collaborative filtering, we can just ignore new users). And we can use the daily trained user/item factors as the initialized values (instead of the values initialized randomly) for the mini-batch iterate (we can do this hourly). And we just fix the user vector, and iterate the newly growing user+item pairs the update the item factors (which we can call that as the partial ALS (only alternating for the item part and keep the user part static). And if we do like that, we can get the newly growing data trained (get the related items’ factors updated) and also can get almost as good as the result with the total data training .
Can I combine bpr (for offline long term static behavior) with als (near line for short time (mini batch) incremental dynamic behavior)?
Recommendation algorithms deal with ever growing user feedback, so for bpr , I can just use long term userid+itemid pairs to train the model and get the user/item latent factors (we can do that daily).
As the data grows (especially for incremental short time user behavior), we can just assume that the user factor is static (since new user would have cold start issue with collaborative filtering, we can just ignore new users). And we can use the daily trained user/item factors as the initialized values (instead of the values initialized randomly) for the mini-batch iterate (we can do this hourly). And we just fix the user vector, and iterate the newly growing user+item pairs the update the item factors (which we can call that as the partial ALS (only alternating for the item part and keep the user part static). And if we do like that, we can get the newly growing data trained (get the related items’ factors updated) and also can get almost as good as the result with the total data training .