论文笔记 Where Would I Go Next? Large Language Models as Human Mobility Predictor

news2024/11/6 9:49:34

arxiv 2023 08的论文

1 intro

1.1 人类流动性的独特性

  • 人类流动性的独特特性在于其固有的规律性、随机性以及复杂的时空依赖性
    • ——>准确预测人们的行踪变得困难
  • 近期的研究利用深度学习模型的时空建模能力实现了更好的预测性能
    • 但准确性仍然不足,且产生的结果不能直接完全解释

1.2 本文

  • LMM+位置预测
    • 提出了一个名为LLM-Mob的框架
      • 将流动性数据组织成历史停留和上下文停留,以解释人们移动中的长期和短期依赖性
      • 利用目标停留的时间信息进行时间感知预测
      • 设计了有效的prompt策略来帮助LLM理解流动性数据,最大化它们的推理能力,使预测结果的解释成为可能。

2 Preliminary

2.1 术语和符号

  • 用户的轨迹被表示为一系列停留,一个停留被表示为 (st, dow, dur, pid)
    • st 表示停留开始的时间,dow 表示星期几,dur 表示停留的持续时间,pid 表示停留发生地点的唯一标识符。
    • 一个停留的例子可以是 (17:30, 星期二, 35分钟, 地点1),表示用户在星期二的17:30到18:05期间停留在地点1。

2.2 问题定义(next-location prediction)

  • 给定一个用户到时间 n 为止的停留序列 S = (Sn−Q+1, ..., Sn),目标是预测用户在下一个时间步骤将要访问的下一个位置/地点(即 pidn+1)

3 模型

3.1 数据整体

3.2 数据格式化

3.3 任务独特的prompt

4 实验

4.1  数据集和预处理

  • Geolife、纽约Foursquare 数据集(FSQ-NYC)

  • 预处理步骤,包括过滤记录很少的用户、处理原始轨迹成停留点,将数据集分为训练和测试集

4.2 实验细节

  • 使用的特定 LLM 是 GPT-3.51( gpt-3.5-turbo-0613)
  • 将温度设置为 0 以避免输出中的随机性
  • 史停留点 M 的长度和上下文停留点 N 的长度分别设置为 40 和 5

4.3 评估指标

  • 准确率(Accuracy)。
    • 预测按照成为下一个位置的概率降序排列,Acc@k 衡量真实位置出现在前k个预测中的比例。
    • 报告了 Acc@1、Acc@5 和 Acc@10 以进行比较
  • 加权F1分数(Weighted F1)
    • 个人访问位置的次数高度不平衡,一些位置出现的频率比其他位置更高。
    • 使用按访问次数加权的 F1 分数来强调模型在更重要位置的性能
  • nDCG@k
    • 归一化折扣累积增益(normalized discounted cumulative gain,简称 nDCG,以排名位置k为基准)
    • 通过折扣累积增益(DCG)与理想折扣累积增益(IDCG)之比来衡量预测向量的质量
      • rj​ 表示位置j的相关性值。
        • 在位置预测的上下文中,rj​∈{0,1},并且当且仅当排名预测向量中的第j个项目对应于真实的下一个位置时,rj​=1

4.4 实验结果

5 讨论

5.1 LLM-Mob 为什么表现得如此出色?

  • 论文测试了 LLM 在三个逐步任务上的性能,以展示论文认为对成功预测人类移动性至关重要的其能力的不同方面
  • 表 5 中展示的结果显示 LLM 在所有三个任务中都做得非常好
    • 生成数字和结构化输入的自然语言描述
    • 总结用户的活动模式
    • 以及对用户的家庭和工作场所进行推断
  • 这显示了三个主要能力:
    • 不仅能理解自然语言,还能理解如代表轨迹的数字列表这样的结构化数字输入
    • 总结历史移动性/活动模式的能力,以便模型能有效地利用过去的信息来预测未来情况
    • 强大的推理能力,意味着模型可以像人类一样“思考”并做出合理的推断
  • 除了 LLM 本身的能力外,LLM-Mob 的成功还在于数据的有效格式化和实用的提示工程,其中提示已通过迭代测试仔细设计和改进

5.2 限制

  • 效率问题。
    • 对每个测试样本独立调用 OpenAI API,这种做法效率低下,难以应用于大规模预测
  • 幻觉问题
    • 这是 LLM 面临的一个常见问题。
    • 如表 4 中标记为蓝色的声明所示,模型声明地点 1 是一家餐厅,这是虚构的,可能会误导用户
  • 来自专有 LLM 的限制
    • 首先,调用 OpenAI API 需要花费金钱,当数据量大时,成本可能会很高
    • 此外,OpenAI 不断更新 GPT 模型系列,导致最新模型的性能漂移
      • 在旧模型上表现良好的提示可能在新模型上不起作用,需要在提示工程上做额外工作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1505612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python数据结构与判断1/7】复杂的多向选择

目录 导入 举个栗子 代码优化 elif 栗子 执行顺序 情况一 情况二 情况三 if-elif-else特性 三种判断语句小结 if if-else if-elif-else 嵌套语句 if嵌套 栗子 执行顺序 相互嵌套 Tips Debug 总结 导入 在前面,我们学习了单向选择的if语句和多项…

超越α!PixArt家族新秀PixArt-Σ: 由弱到强训练的文本生成4K图像DiT(华为诺亚)

文章链接: https://arxiv.org/pdf/2403.04692 开源地址:https://pixart-alpha.github.io/PixArt-sigma-project/ PixArt-Σ,这是一个能够直接生成4K分辨率图像的Diffusion Transformer(DiT)。PixArt-Σ相比其前身PixAr…

【unity实战】3D水系统,游泳,潜水,钓鱼功能实现

最终效果 文章目录 最终效果素材将项目升级为URP画一个水潭地形材质升级为URP创建水调节水第一人称人物移动控制游泳水面停留添加水下后处理水下呼吸钓鱼参考完结 素材 https://assetstore.unity.com/packages/vfx/shaders/urp-stylized-water-shader-proto-series-187485 将…

06 数据结构之树

引言&#xff1a; 数的代码实现&#xff0c; 先序遍历、中序、后序、层次遍历 /* binary_tree.h */ #ifndef _BINARY_TREE_H #define _BINARY_TREE_H#include <stdio.h> #include <stdlib.h> #include <string.h>#define DEBUG(msg) \printf("--%s--, %…

【工作】如何写好一份工作自评/总结 述职报告

文章目录 一、述职与工作汇报1、述职是什么&#xff1f;2、述职的目标&#xff08;表扬/体谅/资源&#xff09;3、述职的对象&#xff08;挑战/规划/方法&#xff09; 二、如何做好一份述职报告1、述职内容2、述职PPT制作3、述职试讲练习 三、附工作自评 一、述职与工作汇报 1…

18个惊艳的可视化大屏(第21辑):环境监测与污染治理

hello&#xff0c;我是贝格前端工场老司机&#xff0c;这是第21期了&#xff0c;本次分享环境监测与污染治理场景下&#xff0c;可视化大屏的意义和案例&#xff0c;喜欢文章的别忘点赞关注&#xff0c;文章底部也有其他行业的案例。 可视化大屏在环境监测污染治理中发挥着重要…

【C++】list模拟实现list迭代器失效问题

list模拟实现&list迭代器失效问题 一&#xff0c;list模拟实现1. list的主要框架接口模拟2. list构造&拷贝构造&析构3. list迭代器3.1 普通迭代器3.2 const迭代器 4. 增删查改 二&#xff0c;迭代器失效问题1. list的迭代器失效原因2. 解决办法 一&#xff0c;list…

【动态规划】【前缀和】【和式变换】100216. K 个不相交子数组的最大能量值

本文涉及知识点 动态规划汇总 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LeetCode 100216. K 个不相交子数组的最大能量值 给你一个长度为 n 下标从 0 开始的整数数组 nums 和一个 正奇数 整数 k 。 x 个子数组的能量值定义为 stren…

九州金榜|孩子厌学的因素及解决办法

孩子在学习的过程中&#xff0c;遇到厌学这种情况非常容易见到&#xff0c;这也是孩子在成长的过程中经常遇到的烦恼。面对孩子的厌学&#xff0c;作为家长这时候不要慌乱&#xff0c;要做到分析孩子产生厌学的原因&#xff0c;在去寻找解决孩子厌学的办法。下面九州金榜家庭教…

C++单例模式、工厂模式

一、单例模式 (一) 什么是单例模式 1. 是什么&#xff1f; 在系统的整个生命周期内&#xff0c;一个类只允许存在一个实例。 2. 为什么&#xff1f; 两个原因&#xff1a; 节省资源。方便控制&#xff0c;在操作公共资源的场景时&#xff0c;避免了多个对象引起的复杂操作…

【Python】成功解决ModuleNotFoundError: No module named ‘seaborn’

【Python】成功解决ModuleNotFoundError: No module named ‘seaborn’ &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; …

win11家庭版docker和milvus

docker 1、官网下载docker文件Get Started | Docker&#xff0c;选择download for windows下载。 2、双击打开下载好的文件Docker Desktop Installer.exe&#xff0c;add shortcut to desktop选择√代表同意添加快捷键到桌面&#xff0c;如果不勾选就说明不创建快捷键&#x…

软件报错提示缺少D3DCompiler_47.dll文件怎么解决

许多用户在运行游戏或电脑软件时&#xff0c;遇到了一个提示“找不到d3dcompiler_47.dll”的错误消息。这个问题相当普遍&#xff0c;这个错误通常是由于系统中缺少关键的d3dcompiler_47.dll文件所导致的&#xff0c;而这个文件是很多应用程序运行的必要条件&#xff0c;特别是…

浮点数的前世今生

文章目录 浮点数问题浮点数赋值和打印不同0.1累加100次&#xff0c;得到的不是10 计算机如何存储整数计算机如何存储浮点数二进制小数表示法浮点数表示小数和浮点数的转换十进制小数转换成浮点数二进制float二进制转换成十进制小数 问题解决方法参考资料 浮点数问题 浮点数赋值…

《深度学习风暴:掀起智能革命的浪潮》

在当今信息时代,深度学习已经成为科技领域的一股强大力量,其应用领域涵盖了从医疗到金融再到智能交互等方方面面。随着技术的不断进步和应用的不断拓展,深度学习的发展势头愈发迅猛,掀起了一股智能革命的浪潮。本文将从基本原理、应用实例、挑战与未来发展方向、与机器学习…

makedowm文本居中、首行缩进、回车换行

文章目录 1. 居中2. 首行缩进3. 回车换行3.1 段落中<br />换行3.2 句子中 \Enter 换行3.3 句子中 空格Enter 换行 1. 居中 由于Markdown本身不支持字体居中&#xff0c;所以采取HTML语法。如下&#xff1a; <center>这一行需要居中</center>注意: <cent…

基于PBS向超算服务器队列提交任务的脚本模板与常用命令

本文介绍在Linux服务器中&#xff0c;通过PBS&#xff08;Portable Batch System&#xff09;作业管理系统脚本的方式&#xff0c;提交任务到服务器队列&#xff0c;并执行任务的方法。 最近&#xff0c;需要在学校公用的超算中执行代码任务&#xff1b;而和多数超算设备一样&a…

仿牛客项目Day3:开发社区登录模块

发送邮件 邮箱设置 springEmail properties spring.mail.hostsmtp.qq.com spring.mail.port465 spring.mail.username spring.mail.password spring.mail.protocolsmtps spring.mail.properties.mail.smtp.ssl.enabletrue MailClient Component public class MailClient {…

计算机网络——OSI网络层次模型

计算机网络——OSI网络层次模型 应用层表示层会话层传输层TCP和UDP协议复用分用 网络层数据链路层物理层OSI网络层次模型中的硬件设备MAC地址和IP地址MAC地址IP地址MAC地址和IP地址区别 OSI网络层次模型通信过程解释端到端点到点端到端和点到点的区别 我们之前简单介绍了一下网…

数组:初始化,访问某一个,遍历

文章目录 静态初始化数组数组的访问&#xff1a;遍历数组案例 动态初始化数组总结案例 静态初始化数组 定义数组的时候直接给数组赋值。 简化格式&#xff1a; int[] ages {12,52,96}; 完整格式&#xff1a; int[] ages new int[]{12,16,26};数组变量名中存储的是数组在内存…