ICLR 2022丨Pyraformer:基于低复杂度金字塔注意机制的长时间序列建模与预测模型
论文标题丨Pyraformer: Low-Complexity Pyramidal Attention for Long-Range Time Series Modeling and Forecasting 论文来源丨ICLR 2022 (Oral) 论文链接丨https://openreview.net/forum?id=0EXmFzUn5I 源码链接丨暂未开源 TL;DR 为了捕获长时间序列的时序依赖特征且模型达到低的时空复杂度,这篇论文中提出基于金字塔注意力机制 (Pyramidal Attention Module,Pyramidal) 的 Transformer 模型 Pyraformer。PAM 模块中:inter-scale tree structure 是为了总结不同尺度的特征,intra-scale neighboring connections 是为了对不同范围的时序依赖进行建模。实验结果证明 Pyraformer 可以达到较高的预测准确率且时空复杂度较低。 Algorithm/Model 关键概念:如何度量时间序列模型捕获的长范围 long-range 依赖特征 ...
AAAI 2022丨LUNAR:基于图神经网络的统一离群点检测方法
论文标题丨LUNAR: Unifying Local Outlier Detection Methods via Graph Neural Networks 论文来源丨AAAI 2022 论文链接丨https://arxiv.org/abs/2112.05355 源码链接丨https://github.com/agoodge/lunar TL;DR 局部离群点检测的方法例如 KNN、LOF 和 DBSCAN 等由于缺少可训练参数,因此难以自适应不同数据集。这篇文章基于图神经网络和局部离群点检测的思想提出了一种统一的异常检测框架 LUNAR (Learnable Unified Neighbourhood-based Anomaly Ranking),可以基于近邻节点学习特征从而检测异常点。实验部分证明 LUNAR 效果明显优于现有的局部异常点检测方法和其它的深度学习模型,并且对模型参数的鲁棒性进行效果检验。 Problem Definition 无监督异常检测的定义:给定 mmm 个正常训练样本 x1(train) ,…,xm(train )∈Rd\mathbf{x}_{1}^{\te ...
Python 命令行参数解析模块 Fire 用法说明
背景 之前在文章 Python 命令行参数解析方法总结 中总结了 argparser、click 和 typer CLIs 工具的优劣,通常情况下使用 typer。这篇文章中学习下 Google 出品的 Python Fire 命令行解析工具,发现其更加高效而且简单! Fire 先从官方说明中了解其主要功能和优势:https://github.com/google/python-fire Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. Python Fire is a simple way to create a CLI in Python. Python Fire is a helpful tool for developing and debugging Python code. Python Fire helps with exploring existing code or turni ...
AAAI 2022丨图神经网络相关论文概览
AAAI(Association for the Advancement of Artificial Intelligence)意为国际先进人工智能协会,是人工智能领域的主要学术组织之一。旨在推动智能思维与行为机制的科学理解及机器实现,并促进人工智能的科学研究和规范应用。被中国计算机协会 CCF 推荐为 A 类会议。 AAAI 2022 的论文接收结果:共有9020篇有效投稿,其中1349篇论文被接收,接收率仅为14.96%,创历史新低! 本文主要整理下 AAAI 2022-Main Track 中图机器学习/图神经网络方向相关研究成果。 📢 由于图相关工作量较多因此本文仅记录个人感兴趣的研究,主要包括图机器学习场景,图神经网络 × 图聚类/无监督表示学习/模型解释性等。 01 论文标题 LUNAR: Unifying Local Outlier Detection Methods via Graph Neural Networks 研究方向 图神经网络结合离群点检测 论文链接 https://arxiv.org/abs/2112.05355 主要内容 许多成熟的异常检测方法使用样 ...
AAAI 2022丨时间序列相关论文概览
AAAI(Association for the Advancement of Artificial Intelligence)意为国际先进人工智能协会,是人工智能领域的主要学术组织之一。旨在推动智能思维与行为机制的科学理解及机器实现,并促进人工智能的科学研究和规范应用。被中国计算机协会 CCF 推荐为 A 类会议。 AAAI 2022 的论文接收结果:共有9020篇有效投稿,其中1349篇论文被接收,接收率仅为14.96%,创历史新低! 本文主要整理下 AAAI 2022-Main Track 中时间序列方向相关研究成果。 01 论文标题 Towards a Rigorous Evaluation of Time-series Anomaly Detection 研究方向 异常检测模型综述 论文链接 https://arxiv.org/abs/2109.05257 主要内容 近年来,关于时间序列异常检测(TAD)的拟议研究在基准 TAD 数据集上报告了高 F1 分数,给人以 TAD 明显改善的印象。然而,大多数研究在打分前采用了一种特殊的评估协议,即点调整(PA)。在本文中,我们从 ...
Windows 系统中配置终端 Oh-My-Zsh 教程
背景 在 MacOS 开发环境中 iTerm + Oh-My-Zsh 是一高效生产力工具组合,其终端命令行提示功能及其便携,尤其是 zsh-autosuggestions 命令行自动填充功能等其它插件。 那么在 Windows 系统中是否可以配置 Zsh 终端并安装其插件呢? 当然可以,最终达到效果如下 在网上搜索一下发现有两种常用方案: 第一种方案:WSL + zsh; 第二种方案:Git Bash + zsh; 相比于这两种方案而言: 第一种方案 WSL 直接安装 Linux 子系统,优点是支持 Linux 生态。缺点是开发时一般在主机系统,两者间的文件共享比较麻烦。 第二种方案 Git Bash 优点是不用切入 Linux 子系统可直接使用 Zsh,方便但不是完全支持 Linux 命令。 综上优劣个人选择第二种,原因是个人在 Windows 系统中仅进行一些轻量级开发,需求是命令行可提示历史命令。主要是为了解决命令太多记不住的问题 o(╥﹏╥)o 配置 Git bash 如果想在 Git Bash 中使用 Zsh 那么首先需要安装 Git bash for window ...
ICDM 2021丨时间序列相关研究论文汇总
文章系列: ICDE 2021丨时间序列相关研究论文汇总 ICML 2021丨时间序列相关研究论文汇总 KDD 2021丨时间序列相关研究论文汇总 IJCAI 2021丨时间序列相关研究论文汇总 CIKM 2021丨时间序列相关研究论文汇总 ICDM 2021丨时间序列相关研究论文汇总 IEEE ICDM(International Conference on Data Mining)是世界上数据挖掘领域的顶级会议之一,该会议涵盖了数据挖掘的所有方面,包括算法、软件、系统和应用,旨在推动数据挖掘领域的最先进技术。被中国计算机协会 CCF 推荐为 B类会议。 IEEE ICDM 2021 共接收 990 篇投稿,平均接受率为 20.0%,主要包含 2 tracks :Regular papers(98/990=9.9%)和 Short papers(100)。 本文主要整下 Regular papers 下时间序列相关研究,其研究主题包括但不限于:时序预测 & 异常检测 & 时序生成 & 时序相似性 01 论文标题 Towards Interpreta ...
利用 Github Actions 自动更新最新博客文章到 Github Profile
背景 最近在 Github Marketplace 上发现一个有趣的 Github Actions Workflow,名为 Blog Post Workflow 。 主要功能是:使用 RSS 提要,可以在个人 GitHub profile/Project 的 readme.md 上自动显示来自任何来源的最新博客文章或 StackOverflow activity 或 Youtube Videos。 例如最新博客的显示效果如下图所示 恰巧个人时常在博客中写点水文,因此想折腾下同步至个人 Github Profile 上。 本文记录下 Blog Post Workflow 的使用过程,同时感兴趣的话可以折腾下其它有趣的 Workflows:top 20 most used/starred Github Actions 流程 实现以上效果的流程如下主要包括: 创建 Github Profile; 创建 Blog Post Workflow ; 优化 Github Actions 触发方式; Github Profile 首先在 Github 中新建同名个人仓库,例如笔者账户名 dre ...
Redis 基础知识与实践
本文主要学习在 Redis 的基础知识和实践(入门级)随实践而更新~ 背景 REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。 Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。 官网:https://redis.io/ 安装 & 启动 Windows:https://github.com/tporadowski/redis Linux:https://redis.io/download MacOS brew install redis 安装; 可能遇到问题tar: Error opening archive: Failed to open ,可以手动安装依赖 ***.big_sur.bottle.tar.gz 然后重新安装即可。 brew services start/stop redis 启动/关 ...
Kafka 基础知识与实践
本文主要学习 Kafka 基础知识及其在实践中的使用,(入门级)随实践而更新~ 背景 Kafka 是最初由 Linkedin 公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统。用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。 最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等。 架构 术语 消息(Message、Event、Record) Kafka 中的数据单元被称为消息,也被称为记录,可以把它看作数据库表中某一行的记录。 批次 为了提高效率, 消息会分批次写入 Kafka,批次就代指的是一组消息。 主题(Topic) 消息的种类称为 主题,可以说一个主题代表了一类消息。相当于是对消息进行分类。主题就像是数据库中的表。 分区(partition) 主题可以被分为若干个分区,同一个主题中的分区可以不在 ...
禅道 ——《程序员生存手册》
背景 偶然在 Github 上发现一本比较有趣的《程序员生存手册》作者名为禅道(📢 “禅道” 为这家公司产品的命名而不是笔名),从此命名上就有种佛系的感觉,所以产生了浏览手册内容的兴趣 🐶。整体而言这本手册覆盖范围广且干货满满,因此记录下个人关注的内容。 这篇《程序员生存手册》分别从技能篇、方法篇、发展规划篇、资源篇、管理篇五个部分来介绍相关的知识,涵盖了每位程序员从初入行业到准备转型,直至最终实现自己人生价值的全过程。 技能篇 这部分从编程语言、英语和 Linux 三个方面强调了其重要性并给出建议。个人感觉意义不大,毕竟每个程序员从事的领域都有所不同,学习路线视自身情况而定。自关注~ 方法篇 此篇方法讲究团队合作方法,涉及项目开发管理的模型和方法。属于个人当前涉及少且较为关注的内容。 敏捷开发 用户故事与 Invest 原则 尤其对于 ToB 企业而言,“讲故事”是及其重要的一环,会直接决定产品价值。 Scrum 方法论 团队转敏捷的首选方法论。 极限编程 Scrum 与 XP 的结合。 CMMI 全称为软件成熟度模型集成(Capability Matu ...
Python 泛型函数 Singledispatch 使用及其扩充场景
@singedispatch 泛型函数可以通过传入参数类型不同而返回不同的处理结果,从而可以避免在代码中写入一系列的 if...elif...else 语句,这篇文章学习下 Python 中泛型函数的使用。 Python 中可以通过@functools.singledispatch将普通函数转为泛型函数 [1] ,📢 注意当使用@singledispatch定义函数时,注意 dispatch 是在第一个参数的类型上进行的。 简单定义函数示例如下 123456from functools import singledispatch@singledispatchdef fun(arg, verbose=False): if verbose: print("Let me just say,", end=" ") print(arg) 然后向函数添加重载实现,请使用泛型函数的 register() 属性,该属性可以用作装饰器。对于带类型注释的函数,装饰器将自动推断第一个参数的类型: 1234567891011121314151 ...
常用 Shell 命令汇总
备忘一些常用的 Shell 命令,随所遇及所用而持续更新… 命令汇总 cd dirname $0 此命令写在脚本文件里才生效,主要作用是返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置。示例如下 在 /home/admin/test/ 下新建 test.sh 内容如下: 12cd `dirname $0`echo `pwd` 然后返回到 /home/admin/ 执行 sh test/test.sh,输出: /home/admin/test tac filename 与 cat 主要作用是反向输出文件内容。示例如下 12345678$ cat test.txt12,34,5,6$ tac test.txt 4,5,62,31
NeurIPS 2021丨针对时间序列预测的拓扑注意力模型 TopAttn & N-BEATS
论文标题丨Topological Attention for Time Series Forecasting 论文来源丨NIPS 2021 论文链接丨https://arxiv.org/pdf/2107.09031v1.pdf 源码链接丨https://github.com/plus-rkwitt/TAN TL;DR 目前大部分基于统计或神经网络的单变量时序预测方法通常直接在原始观测序列上进行预测,而这篇论文研究了通过持久同源性(persistent homology)捕获的局部拓扑属性(local topology properties)是否可以提高时间序列预测的准确性。论文中提出了拓扑注意力(topological attention)模块,可以在现有的模型(文中选用 N-BEATS)中融入局部拓扑特征且即插即用。实验部分在大规模时间序列数据集 M4 中验证了 topological attention + N-BEATS 可以达到 SOTA 性能,而且系列消融实验证实了通过注意力机制表达的局部拓扑特征是有效的。 Algorithm/Model 模型的整体架构如下图所示 主要包 ...
利用 Github Actions 自动化部署 Hexo 博客
背景 为了方便可以使用 GitHub Actions 实现博客自动发布,将静态博客页面部署到多个服务器上,比如 GitHub Pages,Gitee pages 以及云服务器上。本文介绍使用 GitHub Actions 实现将 Hexo 博客自动编译并发布到 GitHub Pages 上。 流程 SSH 秘钥 生成秘钥用于仓库间的推送: 1ssh-keygen -f hexo-deploy-key -t rsa -C "2284672469@qq.com" 以上命令会在当前路径下生成:秘钥 hexo-deploy-key 和公钥 hexo-deploy-key.pub,然后分别添加到对应的文件中。 页面文件仓库(即 dreamhomes.github.io): 在 Settings > Deploy keys 中添加 Deploy key,内容为 hexo-deploy-key.pub 文件内容,同时勾选 Allow write access 选项。 博客源文件库:在 Settings > Secrets 中添加一个 Secret,名称为 DEPLO ...