30、基于ELM的时间序列预测与POI推荐方法研究

基于ELM的时间序列预测与POI推荐方法研究

一、ELM在时间序列预测中的应用

1.1 评估指标与预测策略

在时间序列预测中,归一化均方误差(NMSE)是一个重要的评估指标,其计算公式为:
[NMSE = \frac{1}{n}\cdot\frac{\sum_{i = 1}^{n}(F_i - A_i)^2}{variance(A)}]
其中,(F_i) 是第 (i) 个预测值,(A_i) 是第 (i) 个实际值,(A) 指包含训练数据的所有实际值,(n) 是预测期。

预测时,预测步长通常设为 1,即每次只预测未来 1 个值。预测后,添加该步的真实值并重新训练模型以预测下一个值,这样能利用最新值提高预测精度。由于训练速度快,极限学习机(ELM)在实时预测中表现出色,其他不同方法的基线模型也采用相同的预测策略。

1.2 ELM的原理与结构

ELM 是广义单层前馈网络(SLFNs),是一种简单的监督学习算法,可解决分类、回归和聚类问题。与传统学习理论和算法不同,ELM 的隐藏节点可随机生成,其参数与训练数据无关,能普遍逼近欧几里得空间 (R^2) 中任何紧子集 (X) 上的连续目标函数。此外,ELM 的输出权重具有非迭代线性解,因为输入和输出权重之间无依赖关系,不像反向传播训练过程。

ELM 结构通常包含三层:输入层、隐藏层和输出层。输入层权重 (w) 和偏置 (b) 随机生成且后续保持不变。输入数据 (x) 被映射到 (L) 维的 ELM 随机特征空间,隐藏层输出为:
[h_i(x) = \varphi(w_ix + b_i), i \in [1, L]]
其中,(\varphi) 是激活函数(常用的是 Sigmoid 函数,但也可以是其他函数,包括线性函数)。ELM 的功能输出为:
[f_{ELM}(x) = \sum_{i = 1}^{L}\beta_ih_i(x) = h(x)\beta, i \in [1, L]]
其中,(\beta) 是输出权重 (\beta = (\beta_1^T, \cdots, \beta_L^T)^T)。

对于 (N) 个不同的训练样本 ((x_j, t_j), j \in [1, N]),其中 (x_j \in R^d) 是输入,(t_j \in R^c) 是相应的目标。具有 (L) 个隐藏神经元的 ELM 模型为:
[\sum_{i = 1}^{L}\beta_i\varphi(w_ix_j + b_i) = t_j, j \in [1, N]]
矩阵形式为 (H\beta = T),其中:
[H =
\begin{pmatrix}
\varphi(w_1x_1 + b_1) & \cdots & \varphi(w_Lx_1 + b_L) \
\vdots & \ddots & \vdots \
\varphi(w_1x_N + b_1) & \cdots & \varphi(w_Lx_N + b_L)
\end{pmatrix}]
[T = (t_1^T, \cdots, t_N^T)^T]
(\beta) 是 (H\beta = T) 的普通最小二乘解:
[\beta = H^{\dagger}T]
[H^{\dagger} = (H^TH)^{-1}H^T]

1.3 实验设置

整个方法包含两个训练部分:ELM 模型训练和非负最小二乘线性模型(NNLS 模型)训练。

训练 ELM 模型时,将归一化的原始时间序列作为输入变量,归一化原始时间序列的归一化差值作为输出变量。同时,为每个模型分配一个整体性能权重,并根据其历史性能更新该权重。第 (i) 个数据点的权重绝对值通过百分比差值 ((A_i - A_{i - 1})/A_{i - 1}) 估计,其中 (A_i) 是第 (i) 个值,(A_{i - 1}) 是第 (i - 1) 个值。

训练完所有 ELM 模型后,根据模型性能权重选择性能最佳的特定数量的模型进行预测。所选 ELM 模型的预测结果作为 NNLS 模型的输入变量,原始时间序列的差值作为输出变量。最后,使用 NNLS 模型预测差值,将最新使用的时间序列值与 NNLS 预测的差值相加得到最终值。

1.4 结果与讨论

在可使用最新值进行下一个 1 步预测的设置下,该方法在对称平均绝对百分比误差(SMAPE)方面表现良好。不同方法的平均 SMAPE 和 NMSE 结果如下表所示:
| 方法 | SMAPE | NMSE |
| ---- | ---- | ---- |
| ELM 集成 | 0.0580 | 0.2223 |
| ARIMA (R) | 0.0669 | 0.2410 |
| 组合方法 | 0.0512 | 0.1778 |

需要注意的是,在 2016 年 CIF 的 48 个人工时间序列中,尤其是线性时间序列,ARIMA 平均表现最佳。但在复杂时间序列上,该方法优于 ARIMA。若将 ELM 和 ARIMA 巧妙结合,性能接近两者中的最佳值,SMAPE 为 0.0512。实验结果还表明,长短期记忆网络(LSTM)在这种循环任务中表现不佳。通过对初始训练集的验证,可判断序列是简单还是复杂,从而采用 ARIMA 预测简单序列,ELM 集成预测复杂序列的组合方法。

以下是整体实验流程的 mermaid 流程图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A(归一化原始时间序列):::process --> B(训练 ELM 模型):::process
    B --> C(分配性能权重并更新):::process
    C --> D(选择最佳性能的 ELM 模型):::process
    D --> E(ELM 模型预测):::process
    E --> F(作为 NNLS 模型输入):::process
    A --> G(计算原始时间序列差值):::process
    G --> F
    F --> H(训练 NNLS 模型):::process
    H --> I(NNLS 模型预测差值):::process
    A --> J(最新使用的时间序列值):::process
    J --> K(加上 NNLS 预测差值):::process
    I --> K
    K --> L(最终预测值):::process

二、基于 ELM 的 POI 推荐策略

2.1 研究背景与动机

随着移动设备和位置获取技术的发展,基于位置的社交网络(LBSNs)繁荣,如 Foursquare 和 Yelp,人们可发布位置并分享兴趣点(POI)相关体验,大量用户 - POI 交互数据为个性化 POI 推荐提供了可能。

与在线购物和观看电影不同,POI 推荐受空间、时间和类别信息等物理约束,签到活动是多种因素综合决策的结果。目前缺乏能兼顾准确性和泛化性的方法,因此采用堆叠泛化技术来平衡这两个挑战。此外,用户希望获得随环境变化的动态推荐列表,所以将推荐任务与上下文感知查询相结合。

2.2 相关定义与问题描述

  • POI :定义为唯一的特定站点,具有标识符 (v)、位置 (l_v) 和内容 (W_v)。
  • 签到活动 :用五元组 ((u, v, l_v, W_v, t)) 表示,即用户 (u) 在时间 (t) 访问 POI (v)。
  • 用户画像 :为每个用户 (u) 创建用户画像 (D_u),它是与 (u) 相关的签到活动集合,数据集 (D = {D_u : u \in U})。
  • 上下文感知查询 :用三元组 (q = (u_q, l_q, t_q)) 表示,即查询用户 (u_q) 在位置 (l_q) 且希望在时间 (t_q) 签到。

POI 推荐的目标是:首先,通过分析历史签到记录考虑各种影响因素来学习用户偏好;然后,给定查询用户 (u_q)、位置 (l_q) 和当前时间 (t_q),根据用户偏好对未访问的 POI 进行排序,并推荐前 (k) 个 POI。

2.3 基础学习器

基于概率生成模型设计了三个基础学习器,分别考虑地理、内容和时间因素。用户的签到记录被视为观测随机变量,区域 (r)、主题 (z) 和时段 (s) 被视为潜在随机变量。

以地理因素为例,将地理空间划分为 (R) 个区域,用多项分布 (\theta_r) 建模用户的空间模式。每个区域 (r) 应用高斯分布,POI (v) 的位置 (l_v \sim N(\mu_r, \Sigma_r)),其概率密度函数为:
[p(l_v|\mu_r, \Sigma_r) = \frac{1}{2\pi\sqrt{\Sigma_r}}\exp\left(-\frac{(l_v - \mu_r)^T\Sigma_r^{-1}(l_v - \mu_r)}{2}\right)]
其中,(\mu_r) 和 (\Sigma_r) 分别是均值向量和协方差矩阵。

POI 的流行度会影响用户行为,使用多项分布 (\varphi_r) 建模区域级别的 POI 归一化流行度。为避免过拟合,对多项分布 (\theta_r) 施加狄利克雷先验:
[p(\theta_r|\alpha) = \frac{\Gamma(\sum_r\alpha_r)}{\Pi_r\Gamma(\alpha_r)}\prod_r\theta_{u,r}^{\alpha - 1}]
其中,(\Gamma(\cdot)) 是伽马函数。

用户签到记录中观测和隐藏变量的联合分布如下:
[p(v, l_v, r|\alpha_r, \beta_r, \mu, \Sigma) = p(r|\alpha_r)p(v|r, \beta_r)p(l_v|r, \mu, \Sigma) = \int p(r|\theta_r)p(\theta_r|\alpha_r)d\theta_r\int p(v|r, \varphi_r)p(\varphi_r|\beta_r)d\varphi_rp(l_v|r, \mu, \Sigma)]
关于内容和时间的观测和隐藏变量的联合分布分别为:
[p(v, W_v, z|\alpha_z, \beta_z, \gamma_z) = p(z|\alpha_z)p(v|z, \beta_z)p(W_v|z, \gamma_z) = \int p(z|\theta_z)p(\theta_z|\alpha_z)d\theta_z\int p(v|z, \varphi_z)p(\varphi_z|\beta_z)d\varphi_z\int p(W_v|z, \phi_z)p(\phi_z|\gamma_z)d\phi_z]
[p(v, t, s|\alpha_s, \beta_s, \gamma_s) = p(s|\alpha_s)p(v|s, \beta_s)p(t|s, \gamma_s) = \int p(s|\theta_s)p(\theta_s|\alpha_s)d\theta_s\int p(v|s, \varphi_s)p(\varphi_s|\beta_s)d\varphi_s\int p(t|s, \phi_s)p(\phi_s|\gamma_s)d\phi_s]

2.4 模型推理

给定超参数 (\alpha_r, \alpha_z, \alpha_s, \beta_r, \beta_z, \beta_s, \gamma_z, \gamma_s) 以及观测值 (v, l_v, W_v) 和 (t),目标是推断潜在变量 (\theta_r, \theta_z, \theta_s, \varphi_r, \varphi_z, \varphi_s, \phi_z, \phi_s) 以及 (\mu) 和 (\Sigma)。由于精确计算后验概率难以处理,采用马尔可夫链蒙特卡罗(MCMC)方法进行估计。

首先,使用 k - 均值聚类算法初始化潜在地理区域 (r),然后从马尔可夫链中迭代采样潜在变量 (r),其平稳分布为后验分布。采样区域 (r) 的后验概率为:
[p(r|r_{\neg u}, v, u) \propto \frac{n_{\neg u, r}^{u, r} + \alpha_r}{\sum_{r’}(n_{\neg u, r}^{u, r’} + \alpha_{r’})}\frac{n_{\neg u, v}^{r, v} + \beta_r}{\sum_{v’}(n_{\neg u, v’}^{r, v’} + \beta_{r’})}p(l_v|\mu_r, \Sigma_r)]
其中,(n_{u, r}) 是从用户 (u) 采样区域 (r) 的次数,(n_{r, v}) 是区域 (r) 生成 POI (v) 的次数。

每次迭代后,更新参数 (\mu_r) 和 (\Sigma_r):
[\mu_r = E(r) = \frac{1}{|S_r|}\sum_{v \in S_r}l_v]
[\Sigma_r = D(r) = \frac{1}{|S_r| - 1}\sum_{v \in S_r}(l_v - \mu_r)(l_v - \mu_r)^T]
经过足够的采样迭代后,估计参数 (\theta_r) 和 (\varphi_r):
[\hat{\theta} {u, r} = \frac{n {u, r} + \alpha_r}{\sum_{r’}(n_{u, r’} + \alpha_{r’})}; \hat{\varphi} {r, v} = \frac{n {r, v} + \beta_r}{\sum_{v’}(n_{r, v’} + \beta_{r’})}]

给定查询用户 (u_q)、位置 (l_q) 和查询时间 (t_q),计算用户 (u_q) 签到每个 POI (v) 的得分 (S_r(q, v)):
[S_r(q, v) = \sum_{r}p(l_q|\hat{\mu} r, \hat{\Sigma}_r)p(r)p(l_v|\hat{\mu}_r, \hat{\Sigma}_r)\hat{\varphi} {r, v}]
其中,(p(r)) 的计算方式为:
[p(r) = \sum_{u}p(r|u)p(u) = \sum_{u}\frac{N_u + \kappa}{\sum_{u’}N_{u’} + \kappa}\hat{\theta}_{u’, r}]
(N_u) 表示用户 (u) 生成的签到次数,引入狄利克雷先验参数 (\kappa) 避免过拟合。主题和时间的处理过程类似,但主题和时间随机初始化且无需更新额外参数。

模型相关参数的含义如下表所示:
| 符号 | 描述 |
| ---- | ---- |
| (N, V, M, W) | 用户、POI、位置、内容词的数量 |
| (R, K, S) | 区域、主题和时段的数量 |
| (\mu_r, \Sigma_r) | 区域 (r) 的平均位置和位置协方差 |
| (\theta_r, \theta_z, \theta_s) | 用户 (u) 在区域 (r)、主题 (z) 和时段 (s) 上的活动范围、兴趣和活动周期分布 |
| (\varphi_r, \varphi_z, \varphi_s) | 特定于区域 (r)、主题 (z) 和时段 (s) 的 POI 的区域级、主题级和时段级流行度分布 |
| (\phi_z, \phi_s) | 主题 (z) 和时段 (s) 在 POI 单词和特定时间上的分布 |
| (\alpha_r, \alpha_z, \alpha_s, \beta_r, \beta_z, \beta_s, \gamma_z, \gamma_s) | 多项分布 (\theta_r, \theta_z, \theta_s, \varphi_r, \varphi_z, \varphi_s, \phi_z, \phi_s) 的狄利克雷先验 |

以下是 POI 推荐中基础学习器的 mermaid 流程图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A(用户签到记录):::process --> B(地理因素建模):::process
    A --> C(内容因素建模):::process
    A --> D(时间因素建模):::process
    B --> E(初始化区域 r):::process
    E --> F(迭代采样 r):::process
    F --> G(更新参数 μr 和 Σr):::process
    G --> H(估计参数 θr 和 φr):::process
    H --> I(计算得分 Sr(q, v)):::process
    C --> J(随机初始化主题 z):::process
    J --> K(计算相关参数):::process
    K --> I
    D --> L(随机初始化时段 s):::process
    L --> M(计算相关参数):::process
    M --> I
    I --> N(排序并推荐 POI):::process

综上所述,无论是在时间序列预测还是 POI 推荐领域,基于 ELM 的方法都展现出了良好的性能和应用潜力。在时间序列预测中,结合 ELM 和 ARIMA 能有效处理不同类型的时间序列;在 POI 推荐中,基于 ELM 的集成策略可综合考虑多种因素,提高推荐质量。

三、总结与展望

3.1 方法优势总结

  • 时间序列预测 :基于 ELM 的时间序列预测方法在 SMAPE 指标上表现良好,尤其在复杂时间序列上优于 ARIMA。通过结合 ELM 和 ARIMA 的组合方法,能进一步提升性能,接近两者中的最佳值。ELM 训练速度快,适合实时预测,且能利用最新值提高预测精度。
  • POI 推荐 :提出的 Multiple Criteria Ensemble Recommendation System (MCERS) 能统一整合地理、时间和类别影响,采用基于 ELM 的集成策略提高了 POI 推荐的质量。通过三个基础学习器分别考虑不同因素,再利用 ELM 作为元学习器进行整合,实验表明该方法优于现有基线方法。

3.2 未来研究方向

  • 时间序列预测
    • 探索更多的 ELM 集成方式,进一步优化组合方法,以适应更复杂的时间序列。
    • 研究如何自动判断时间序列的复杂程度,更智能地选择使用 ARIMA 还是 ELM 集成进行预测。
  • POI 推荐
    • 考虑更多的上下文信息,如天气、节假日等,进一步完善用户偏好模型。
    • 尝试将深度学习模型与基于 ELM 的集成策略相结合,提升推荐的准确性和泛化性。

3.3 应用场景拓展

  • 时间序列预测 :可应用于金融市场预测、能源消耗预测、交通流量预测等领域,帮助企业和机构做出更准确的决策。
  • POI 推荐 :除了 LBSNs 中的 POI 推荐,还可应用于旅游推荐、城市规划等领域,为用户提供更个性化的服务。

以下是未来研究方向和应用场景拓展的表格总结:
| 领域 | 未来研究方向 | 应用场景拓展 |
| ---- | ---- | ---- |
| 时间序列预测 | 探索更多 ELM 集成方式,自动判断序列复杂程度 | 金融市场预测、能源消耗预测、交通流量预测 |
| POI 推荐 | 考虑更多上下文信息,结合深度学习模型 | 旅游推荐、城市规划 |

3.4 技术挑战与应对策略

  • 数据处理挑战 :在时间序列预测和 POI 推荐中,都面临着大量数据的处理问题。数据可能存在噪声、缺失值等情况,需要进行有效的数据清洗和预处理。可以采用数据平滑、插值等方法处理缺失值,使用滤波算法去除噪声。
  • 模型复杂度挑战 :随着模型的不断优化和集成,模型复杂度可能会增加,导致训练时间和计算资源的消耗增大。可以采用模型压缩、分布式计算等技术来降低模型复杂度,提高计算效率。

以下是技术挑战与应对策略的列表总结:
1. 数据处理挑战
- 问题:数据存在噪声、缺失值。
- 应对策略:采用数据平滑、插值等方法处理缺失值,使用滤波算法去除噪声。
2. 模型复杂度挑战
- 问题:模型复杂度增加,训练时间和计算资源消耗大。
- 应对策略:采用模型压缩、分布式计算等技术降低模型复杂度,提高计算效率。

3.5 整体流程回顾

为了更清晰地展示整个研究过程,以下是时间序列预测和 POI 推荐的整体流程 mermaid 流程图:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    subgraph 时间序列预测
    A(原始时间序列数据):::process --> B(数据归一化):::process
    B --> C(训练 ELM 模型):::process
    C --> D(分配性能权重):::process
    D --> E(选择最佳 ELM 模型):::process
    E --> F(ELM 模型预测):::process
    F --> G(作为 NNLS 模型输入):::process
    B --> H(计算原始时间序列差值):::process
    H --> G
    G --> I(训练 NNLS 模型):::process
    I --> J(NNLS 模型预测差值):::process
    B --> K(最新时间序列值):::process
    K --> L(加上 NNLS 预测差值):::process
    J --> L
    L --> M(最终预测值):::process
    end

    subgraph POI 推荐
    N(用户签到记录数据):::process --> O(地理因素建模):::process
    N --> P(内容因素建模):::process
    N --> Q(时间因素建模):::process
    O --> R(初始化区域 r):::process
    R --> S(迭代采样 r):::process
    S --> T(更新参数 μr 和 Σr):::process
    T --> U(估计参数 θr 和 φr):::process
    U --> V(计算得分 Sr(q, v)):::process
    P --> W(随机初始化主题 z):::process
    W --> X(计算相关参数):::process
    X --> V
    Q --> Y(随机初始化时段 s):::process
    Y --> Z(计算相关参数):::process
    Z --> V
    V --> AA(排序并推荐 POI):::process
    end

通过以上总结和展望,我们可以看到基于 ELM 的时间序列预测和 POI 推荐方法具有很大的发展潜力。在未来的研究中,我们可以进一步优化这些方法,拓展其应用场景,为实际问题提供更有效的解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值