feat: wire explain_from_items for picker flow; fix nan author guardβ
yash-b18
de2efef
- explain_from_items() derives explanation signals (author, keyword,
rating, price) from the liked_item_idxs passed by the cold-start
picker flow instead of a user_idx
- Guards item_author not in ("nan", "Unknown") prevent "you selected
a book by nan" from appearing in explanations
- recommender.py now calls explain_from_items() for liked-item
cold-start path instead of the generic fallback string
feat: rewrite language explainer β author, rating, price, keyword signals
yash-b18
ef7b84a
feat: explainability β SHAP for LightGBM and metadata-grounded language explanations for Two-Tower