- 论文 - 《SensorLLM: Aligning Large Language Models with Motion Sensors for Human Activity Recognition》
- 代码 - Github
- 关键词 - 人类活动识别(HAR)、多模态对齐
摘要
- 研究问题:尽管LLMs具备强大的推理和泛化能力,但由于时间序列数据缺乏语义上下文、计算限制以及处理数值输入的挑战,它们在运动传感器数据领域的应用仍未得到充分开发。
- 本文工作 - SensorLLM
- 一种两阶段框架,使LLMs能够从传感器数据中执行人类活动识别(HAR)。
- 传感器-语言对齐阶段:为每个传感器通道引入了特殊标记,并自动生成文本趋势描述。这种对齐使LLMs能够捕捉数值变化、通道特定特征以及不同持续时间的数据,而无需人工标注。
- 任务感知微调阶段: 进一步优化模型以完成HAR分类任务,其性能达到了或超越了当前最先进的方法。
1 引言
-
背景介绍
- HAR是一种时间序列分类任务,它将传感器信号(如加速度计和陀螺仪数据)映射到人类活动。
- 传统的模型(例如LSTM、DeepConvLSTM)能够学习高层次特征,但这些模型通常是任务特定的,在不同传感器配置和活动集之间难以泛化。
- LLMs在图像领域的成功使得人们关注LLMs与传感器数据的结合。
-
LLMs处理传感器数据需要采取以下两种方法之一:
- (1)在时间序列数据上进行预训练或微调 ,但这需要大量的计算资源,并且受到有限且不平衡标注数据的限制;
- (2)利用零样本或少样本提示,通过将传感器数据转换为文本。这种方法避免了重新训练,但也带来了关键挑战:
- 数值编码问题:LLM的分词器专为文本设计,难以处理数值数据,会将连续数字视为独立标记,从而无法保留时间依赖性。
- 序列长度限制:传感器数据通常超出LLMs的最大上下文长度,导致截断、信息丢失以及计算成本增加。
- 多通道复杂性:LLMs处理单变量输入,因此难以以保留通道间依赖性的方式对多传感器数据进行编码。
- 提示工程挑战:设计有效的提示,使LLMs能够解释数值传感器读数、检测趋势并分类活动。
-
本文工作 - SensorLLM
- 这是一种将传感器数据与自然语言对齐的框架,允许LLMs通过基于文本的交互分析传感器数据(见图1),而无需修改LLM本身。
- 传感器-语言对齐阶段: 作者设计了一种自动生成问答对的方法,将传感器数据与文本对齐,同时利用预训练编码器保留时间特征。生成的嵌入被映射到一个可被LLM解释的空间中,从而缓解了与文本特定分词相关的问题。此外,作者为传感器通道引入了特殊标记,使LLM能够有效捕捉多通道依赖关系。
- 任务感知微调阶段: 对齐后的嵌入被用于HAR任务,利用LLM的推理能力,同时保持其参数冻结。这种设计扩展了LLM在其原始训练之外的应用范围,解决了LLM在时间序列数据适用性方面的担忧。
- 这是首个将传感器数据集成到LLM中的方法,用于传感器数据分析和HAR任务。
2 相关工作
2.1 将时间序列作为文本处理的LLMs
- 一些方法通过将时间序列信号视为原始文本,并使用与自然语言相同的分词方法来解决这一问题。典型例子包括:
- PromptCast:将数值输入转换为文本提示,用于零样本预测任务。
- LLMTime:将时间序列编码为数值字符串,以适配类似GPT的模型。
- 局限:由于缺乏针对数值序列的专用分词器,LLMs可能无法捕捉关键的时间依赖性和重复模式。
- 为缓解上述局限问题,一些研究在将嵌入映射到语言模型空间之前,使用时间序列编码器,从而以对比或监督的方式将传感器嵌入与文本嵌入对齐。
2.2 针对传感器数据的MLLMs
- 对于传感器数据,主要挑战在于如何有效表示连续信号。现有工作有:
- Yoon et al. 提出通过视觉提示将传感器数据与MLLM结合。传感器信号首先被可视化为图像,引导MLLM分析可视化的传感器轨迹以及任务描述,这种方法相比原始文本基线还能降低标记成本。
- Moon et al. 提出了IMU2CLIP,它在一个联合表示空间中将惯性测量单元(IMU)流与文本和视频对齐。这种方法支持基于运动的媒体搜索和基于语言模型的多模态推理等可穿戴AI应用,展示了如何将传感器数据整合到更广泛的多模态框架中。
2.3 用于HAR的LLMs
- 由于传感器数据解释上的挑战,LLMs在HAR中的有效性仍然有限。这些模型通常难以区分涉及相似对象的活动,需要更高级的提示工程来突出活动特定的细节。现有的工作有:
- Xia等(2023) 提出了一种无监督的方法,利用ChatGPT进行HAR。该方法通过两阶段提示从对象序列中推断活动,而无需人工描述。
- Ji等(2024) 探索了使用原始IMU数据进行零样本HAR的LLMs,结果表明GPT-4在简单的HAR任务中可以超越传统模型和深度学习模型,且无需领域特定的适配。这突显了LLMs在基于传感器系统中的潜力。
3 方法
目标:开发一个具备推理能力的多模态模型,用于分析可穿戴传感器数据。
Sensor 结构如图二,包含三个核心组件:(1) 预训练的LLM,(2) 预训练的时间序列(TS)嵌入器,(3) 对齐模块MLP。所有这些都在一个两阶段框架中运行:
- 传感器-语言对齐阶段,生成模型根据用户指令和问题,将传感器读数与文本对齐。
- 任务感知微调阶段,在LLM之上添加一个分类器以执行人类活动识别(HAR)。
- 注意,MLP在两个阶段中可训练,分类器在第二阶段可训练,而主干LLM和TS嵌入器保持冻结状态。
训练过程高效且轻量化,对齐阶段仅需训练5.67%(535.9M)的参数,而在微调阶段仅需训练0.12%(10.5M)的参数。(怎么微调阶段可训练参数少了?)
3.1 传感器-文本数据生成
- 时间序列数据与文本对齐是一个困难的挑战,因为只有类别标注,缺乏丰富的语义标签,并且人工标注不切实际。先前的工作依赖于预定义的文本原型
- 基本思想:时间序列数据本身包含可以通过描述性文本来表达的语义模式,从简单的数值趋势到统计洞察皆可。
- 自动标注方法:通过分析数据中的观察趋势和波动,自动生成描述性文本。使用预定义模板,构建了多样化的问答对(QA),以捕捉趋势变化,同时确保准确性和可扩展性。例如:
- 时间序列数据表示在<t_s>秒到<t_e>秒之间从<S>传感器获取的读数。
- 总结来说,数据在累计<t_t>秒内表现出<T>趋势。
优点:这种方法不仅避免了手动标注的复杂性,还通过直观的语言描述保留了传感器数据的关键特征。
3.2 传感器-语言对齐
如图2(a)所示,传感器-语言对齐阶段使用生成模型创建结合单通道传感器读数与文本描述的多模态句子。传感器数据表示为矩阵 \mathbf{X} \in \mathbb{R}^{C \times T},其中 C 是传感器通道的数量,T 是序列长度。每个通道的数据,记为 \mathbf{X}^c(对于通道 c),独立处理以保留其独特特征。然后,数据被划分为不重叠的片段 \mathbf{X}_S^c,其中 S 是片段总数。每个片段 x_s 被分配一个在预定义范围内随机选择的长度 l,允许模型从不同的时间模式和趋势变化中学习。这种分段策略确保了生成的多模态句子能够有效捕捉长期趋势和短期波动。
作者使用Chronos作为时间序列嵌入器,生成片段嵌入 \hat{x}_s \in \mathbb{R}^{(l+1) \times d_{ts}},其中 d_{ts} 是特征维度,(l+1) 表示在Chronos分词过程中附加的 [EOS] 标记。在将传感器片段输入到Chronos之前,应用实例归一化 \tilde{x}_s = \frac{x_s - \text{mean}(x_s)}{\text{std}(x_s)} 来标准化数据。Llama3-8B作为LLM主干。
对齐模块
为了将时间序列嵌入 \hat{x}_s 转换为与文本对齐的嵌入 \hat{a}_s \in \mathbb{R}^{(l+1) \times D} 以用于下游任务,引入了一个对齐投影模块。该模块实现为一个MLP,首先将传感器嵌入映射到一个中间空间(维度为 d_m),然后再投影到目标维度 D。形式上,
其中 \mathbf{W}_1 \in \mathbb{R}^{d_m \times d_{ts}} 和 \mathbf{W}_2 \in \mathbb{R}^{D \times d_m} 是可学习的权重,\mathbf{b}_1 和 \mathbf{b}_2 是偏置项,\sigma 是GELU激活函数。这种投影确保了转换后的嵌入 \hat{a}_s 在语义上与文本嵌入空间对齐,使其适用于文本生成和分类等任务。
输入嵌入
为了将传感器数据整合到LLM中,为每个传感器通道引入两个特殊标记(例如,<x_acc_start>
和 <x_acc_end>
用于x轴加速度计),将LLM的嵌入矩阵从 \mathbf{E} \in \mathbb{R}^{V \times D} 扩展到 \mathbf{E} \in \mathbb{R}^{V' \times D},其中 V' = V + 2c,V 是词汇表大小,c 是通道数量。这些特殊标记的嵌入与对齐后的传感器嵌入拼接在一起。最终的组合传感器表示 \hat{d}_s \in \mathbb{R}^{(l+3) \times D} 再与指令和问题嵌入拼接,形成完整的输入序列 \hat{z} \in \mathbb{R}^{k \times D},其中 k 是总标记数。
损失函数
SensorLLM 处理一个由传感器嵌入和文本嵌入组成的输入序列 \mathbf{Z}_s = \{z_s^i\}_{i=1}^K,并生成一个输出序列 \mathbf{Z}_t = \{z_t^i\}_{i=1}^N,其中 z_s^i, z_t^i \in V',K 和 N 分别表示输入和输出标记的数量。模型使用因果语言建模目标进行训练,基于先前的标记预测下一个标记。优化目标是最小化负对数似然:
损失仅在生成的标记上计算,确保SensorLLM有效地整合传感器和文本嵌入,生成连贯且上下文相关的响应。
3.3 任务感知微调
如图2(b)所示,任务感知微调阶段对人类活动识别(HAR)的多模态传感器-文本嵌入进行优化。该阶段将多通道传感器读数与活动标签相结合,将时间模式与人类活动对齐。输入传感器数据 \mathbf{X} 被分割为大小为 L、重叠率为50%的滑动窗口,形成片段 \mathbf{X}_S \in \mathbb{R}^{S \times C \times L},其中 S 是片段数量,C 是通道数量。第一阶段预训练的对齐模块将传感器数据映射到活动标签,同时保留通道间的依赖关系并学习与活动相关的模式。
输入嵌入
对于每个传感器通道 c,我们提取其对齐后的传感器嵌入 \hat{d}_s^c。这些嵌入在所有通道中拼接起来,同时结合其对应的统计特征(均值和方差),形成最终的输入嵌入:
其中 \hat{z}_{\text{stat}} 表示统计信息,C 是通道数量。这确保了模型在HAR中同时整合时间特征和统计特征。
损失函数
输入标记序列由LLM处理,生成一个潜在表示 \mathbf{H} \in \mathbb{R}^{K \times D},其中 K 是标记数量,D 是嵌入维度。由于因果掩码,提取最终隐藏状态 \mathbf{h} = \mathbf{H}_K,它编码了所有先前标记的信息。该池化向量通过一个全连接层生成一个大小为 M 的预测向量,其中 M 是活动类别数量。最终的类别概率 \hat{y}_i 通过softmax函数获得,模型使用交叉熵损失进行优化:
其中 y_i 是真实标签。