STAR: A Simple Training-free Approach for Recommendations using Large Language Models
概
本文提出了一种融合语义/协同/时序信息的方法, 使得 LLM 无需微调即可轻松超越传统方法.
符号说明
- , user;
- , item;
- , 为用户 的交互序列;
STAR
Retrieval
-
首先, STAR 会通过某个方式为 LLM 检索出一些合适的候选 items.
-
作者希望, 这个检索方式能够同时考虑到语义和协同信息:
- 语义信息: 作者将 item 的一些文本信息 (title, description, category, brand, sales ranking, price) 通过编码模型 (本文采用 text-embedding-004) 进行编码, 然后计算两两的 cosine 相似度 .
- 协同信息: 令 , 表示 item 出现在对应 user 的交互序列中的次数. 然后, 此时 item-item 的协同相似度为, 各自的稀疏行向量的 cosine 相似度. 记为 .
-
于是, 对于用户 (其交互序列为 ), 其对 item 的打分定义为:
其中 是 user 给 item 的打分, (比如 0.7) 用于建模越近的 item 越重要这一特性, 用于平衡语义信息和协同信息. 这些都是超参数.
Ranking
-
假设, 我们通过上面的策略检索出 top-K 个候选 items, 我们希望对这些候选 items 排个序.
-
Point-wise: 这个方法很简单, 把每个 item 的结果通过上述方式传给大模型, 然后用大模型得到一个分数, 倘若有两个 item 分数一样, 则采用之前的检索的方式的排序.
-
Pair-wise:
- 假设候选 items 按照检索排名为 (从高到低):
- 然后首先让 LLM 判断 的次序, 倘若 则交换二则的次序得到:否则保持原样.
- 然后再排序 , 重复上述操作.
- 假设候选 items 按照检索排名为 (从高到低):
-
List-wise:
- 这是上述 pair-wise 的一个推广, 设定一个滑动窗口 和滑动步长 , 每一次对一个窗口内的 items 进行排序, 然后不断滑动.
最后的结果
- 其实可以发现, 最最重要的, 其实是检索的效率很高啊.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2022-10-23 MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems
2021-10-23 Understanding and Improving Fast Adversarial Training
2020-10-23 Git