-
Notifications
You must be signed in to change notification settings - Fork 824
Description
Is your feature request related to a problem? Please describe.
Currently, Gorse treats all feedback types equally when building recommendation models (e.g., read, like, collect, purchase). However, in real-world scenarios, not all user interactions carry the same importance or signal strength for recommendation quality. For instance, a purchase feedback typically indicates a much stronger preference or interest than a simple view or read. Treating these equally can dilute the signal from high-value interactions and lead to less relevant recommendations.
The problem is that without the ability to assign different weights, the system might overemphasize low-effort interactions or fail to adequately capture the true intent and preference conveyed by high-effort interactions, potentially leading to suboptimal recommendation results.
Describe the solution you'd like
I propose adding a configuration option (likely in gorse.toml or via API) that allows users to assign different numerical weights to various feedback types. These weights would then influence how Gorse processes and incorporates each type of feedback into its recommendation models.
Proposed implementation idea:
Configuration: Allow defining feedback type weights in gorse.toml (e.g., under a new [feedback_weights] section or as part of the [server] config), or possibly via a new API endpoint for dynamic updates.
Example gorse.toml snippet:
Ini, TOML
[feedback_weights]
read = 0.1
view = 0.05
like = 1.0
collect = 2.0
purchase = 5.0
(Note: These weights are illustrative and could be normalized internally by Gorse or directly applied.)
Model Impact:
- Collaborative Filtering (CF): When calculating user-user or item-item similarities, interactions with higher assigned weights should contribute more significantly to the similarity scores. This could be achieved by scaling the interaction strength based on the feedback type's weight.
- Click-Through Rate (CTR) Prediction: For CTR models, the weights could influence the 'positive' samples or the loss function, making it prioritize accurately predicting higher-weighted interactions.
- Item popularity/ranking: Higher-weighted feedback could boost an item's overall "score" or popularity more effectively.
Describe alternatives you've considered
Manual duplication of feedback: One could manually send multiple like feedback entries for a single purchase to simulate higher weight. This is clunky, prone to errors, and doesn't scale well.
Post-processing recommendations: Filter or re-rank recommendations based on external logic after receiving them from Gorse. This bypasses Gorse's internal model optimization and moves complexity to the application layer.
Why should this be added to Gorse?
Improved Recommendation Quality: Directly addresses the varying importance of different user interactions, leading to more accurate and relevant recommendations.
- Enhanced Flexibility: Gives Gorse users more control over how their data is interpreted and used by the recommendation engine.
- Industry Standard: Many advanced recommendation systems and libraries offer this capability, acknowledging its importance in fine-tuning model performance.
- Better Signal Capture: Allows Gorse to better capture the strength of user preference and intent, especially in scenarios with mixed-value feedback.
- Clearer User Intent: Helps differentiate between passive engagement (view) and strong interest (purchase), which is crucial for business objectives.
Additional Context
This feature would significantly enhance Gorse's ability to model user behavior accurately and deliver more impactful recommendations, particularly in e-commerce, content platforms, or any domain where different user actions have varying degrees of significance.