CALRec: Contrastive Alignment of Generative LLMs for Sequential Recommendation
<|reference_start|>CALRec: Contrastive Alignment of Generative LLMs for Sequential Recommendation: Traditional recommender systems such as matrix factorization methods have primarily focused on learning a shared dense embedding space to represent both items and user preferences. Subsequently, sequence models such as RNN, GRUs, and, recently, Transformers have emerged and excelled in the task of sequential recommendation. This task requires understanding the sequential structure present in users' historical interactions to predict the next item they may like. Building upon the success of Large Language Models (LLMs) in a variety of tasks, researchers have recently explored using LLMs that are pretrained on vast corpora of text for sequential recommendation. To use LLMs for sequential recommendation, both the history of user interactions and the model's prediction of the next item are expressed in text form. We propose CALRec, a two-stage LLM finetuning framework that finetunes a pretrained LLM in a two-tower fashion using a mixture of two contrastive losses and a language modeling loss: the LLM is first finetuned on a data mixture from multiple domains followed by another round of target domain finetuning. Our model significantly outperforms many state-of-the-art baselines (+37% in Recall@1 and +24% in NDCG@10) and our systematic ablation studies reveal that (i) both stages of finetuning are crucial, and, when combined, we achieve improved performance, and (ii) contrastive alignment is effective among the target domains explored in our experiments.<|reference_end|>
@article{li2024calrec:,
    title={CALRec: Contrastive Alignment of Generative LLMs for Sequential
  Recommendation},
    author={Yaoyiran Li, Xiang Zhai, Moustafa Alzantot, Keyi Yu, Ivan Vuli'c,
  Anna Korhonen, Mohamed Hammad},
    journal={arXiv preprint arXiv:2405.02429},
    year={2024},
    doi={10.48550/arXiv.2405.02429},
    archivePrefix={arXiv},
    eprint={2405.02429},
    primaryClass={cs.IR cs.AI cs.CL cs.LG}
}