论文笔记:Large Language Models for Next Point-of-Interest Recommendation

SIGIR 2024

1 intro

  • 传统的基于数值的POI推荐方法在处理上下文信息时存在两个主要限制
    • 需要将异构的LBSN数据转换为数字,这可能导致上下文信息的固有含义丢失
    • 仅依赖于统计和人为设计来理解上下文信息,缺乏对上下文信息提供的语义概念的理解
  • ------>使用预训练的大语言模型来进行推荐
    • 允许在原始格式下保留异构的LBSN数据,从而避免上下文信息的丢失
    • 能够通过包含常识知识来理解上下文信息的内在含义

2 方法

2.1 轨迹提示

  • 当前轨迹块(current trajectory block)

    • 当前轨迹块中只包含当前用户的一条轨迹,且不含最后一个签到点
  • 历史轨迹块(historical trajectory block)

    • 在当前轨迹块和历史轨迹块中,为每条签到记录生成一个句子

      • 对每条签到记录 𝑞 = (𝑢,𝑝,𝑐,𝑡,𝑔),构造句子为:

        • 在 [time],用户 [user id] 访问了 POI 编号 [poi id],该地点属于 [poi category name] 类别,其类别 ID 为 [category id]。

        • 为节省 token 数量,没有将地理坐标(geo-coordinates)包含在句子中

        • 同时论文发现,未经特别地图数据微调的 LLM 无法很好地理解坐标信息

    • 历史轨迹块则可以包含来自当前用户及其他行为相似用户的多条轨迹,以应对轨迹短和冷启动问题

  • 指令块(instruction block)

    • 指令块用于引导模型关注目标任务,并提醒 POI ID 的取值范围
  • 目标块(target block)

    • 目标块用于微调和评估阶段,包含要预测的签到记录(时间戳、用户 ID、POI ID),但在推理阶段不会作为输入

    • 作者尝试将 POI 类别信息加入指令块和目标块,希望模型更关注 POI ID 与类别之间的关系,但实验显示效果提升不明显,可能模型已隐式学会这种关系。

2.2 键-查询对相似性计算

  • 为了从用户历史轨迹及其他用户轨迹中挖掘行为模式,提出了适用于自然语言轨迹格式的键-查询对相似度计算框架
    • 当前轨迹块中的轨迹被视为Key
    • 所有结束时间早于该 Key 的轨迹被视为Query
  • 计算所有 Key-Query 对的相似度,并从中选出与 Key 相似度较高的 Query,将其用于生成历史轨迹块内容
    • 每个 Key 和 Query prompt 输入到 LLM 编码器中,提取最后一层的表示向量
    • 对每组 Key 和 Query 计算余弦相似度,提取最高的top-k个Query

2.3 监督微调

在训练集中,将提示中的 <question> 部分送入预训练 LLM,而 <answer> 部分作为监督信号进行微调

LoRA+NormalFloat 4-bit量化+FlashAttention

3 实验

相关推荐
renhongxia14 小时前
多机器人任务分配的事件触发自适应共识
人工智能·微服务·语言模型·机器人·prompt
汽车仪器仪表相关领域4 小时前
广州文明机电 新能源汽车运行安全性能检验解决方案
人工智能·功能测试·安全·单元测试·汽车·压力测试·可用性测试
大模型备案@虎虎4 小时前
垂直大模型备案vs通用大模型备案
人工智能·大模型备案·aigc合规·生成式人工智能大语言模型备案·大模型备案代办·大模型登记备案·大模型备案流程
大学有意思4 小时前
广西职教高考|教育与体育大类民办大专择校指南
人工智能·机器人
美酒没故事°1 天前
Open WebUI安装指南。搭建自己的自托管 AI 平台
人工智能·windows·ai
云烟成雨TD1 天前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
AI攻城狮1 天前
用 Obsidian CLI + LLM 构建本地 RAG:让你的笔记真正「活」起来
人工智能·云原生·aigc
鸿乃江边鸟1 天前
Nanobot 从onboard启动命令来看个人助理Agent的实现
人工智能·ai
lpfasd1231 天前
基于Cloudflare生态的应用部署与开发全解
人工智能·agent·cloudflare
俞凡1 天前
DevOps 2.0:智能体如何接管故障修复和基础设施维护
人工智能