【论文阅读】BERT:Pre-training of deep bidirectional transformers for language understanding
【论文阅读】BERT: Pre-training of deep bidirectional transformers for language understanding
Metadata
authors:: Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova
container:: Proceedings of the 2019 conference of the north American chapter of the association for computational linguistics: Human language technologies, volume 1 (long and short papers)
year:: 2019
DOI:: 10.18653/v1/N19-1423
rating:: ⭐⭐⭐⭐⭐
share:: false
comment:: 经典bert的模型
前言
BERT 是 Google 于 2018 年提出的 NLP 预训练技术,全称是 Bidirectiona ...
从 Embedding 到 Word2Vec
从 Embedding 到 Word2Vec
前言
Word Embedding 是将自然语言中的「单词」转换为「向量」或「矩阵」,使计算机更容易理解它们,你常常可以在自然语言处理的工作中见到这种方法。而 Word2Vec 正是 Word Embedding 的一种。
关于 Word Embedding 以及 Word2Vec,它们的基本思想我并不陌生,之前也有粗略地看过 NLP 相关的东西,最近接手毕业师兄的一些工作,想着也是要好好补一下 NLP 的这些东西了。
什么是 Embedding ?
在自然语言处理中,我们首先面对的是词语,而不是数字。以中译英翻译为例,我们有一系列的数据 (x, y),其中 x,y 分别是中文和对应的英文单词,我们的任务是需要构建 f(x) -> y 的映射。
但是,我们遇到的第一个问题就是如何处理 x 也就是中文词语?我们的神经网络模型,只能接受数字的输入,而我们现有的词语则是符号形式的,人类的抽象总结,因此我们需要将它们转换为数字形式。
换句话说,利用词嵌入的方法通常是为一个特定的单词生成一个向量,然后训练它,用单词的上下文来表示这个单词。
我 ...
使用 Caddy 替代 Nginx
使用 Caddy 替代 Nginx
前言
Caddy 2 is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go
Caddy 是一个 Go 编写的 Web 服务器,类似于 Nginx。相较于 Nginx 来说,Caddy 的配置简单了很多,而且默认启用了 https,更加的安全。
最开始的时候,我使用的还是 Nginx 进行部署,当时主要是也不太了解,磕磕碰碰查资料来部署静态网站,复制粘贴后也能把 server 写起来,但对于里面的字段配置也不怎么明确。最近想要弄反向代理的时候,感觉配置没问题,但就是代理不成功,可能就是菜吧 😣
在查找问题的过程中,发现了 Caddy,简单尝试之后发现相较于 Nginx 来说,Caddy 的配置简单了很多,没有 Nginx 那么多的配置项。
当然,如果你是用的是宝塔面板,可以忽略上面的所有问题。虽然当初主要是抱着学习的目的没有用宝塔,但确实越来越感觉宝塔是真的方便,可是这就是折腾吧。
安装 Caddy
官方提供了许多安装方 ...
线段树模板
线段树模板
线段树是算法竞赛中常用的用来维护 区间信息 的数据结构。
线段树可以在O(logN)O(\log{N})O(logN)的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。
线段树 + Lazy(数组)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273class SegmentTree: def __init__(self, nums) -> None: self.n = len(nums) self.nums = nums self.tree = [0] * (4 * self.n) self.lazy = [0] * (4 * self.n) self.build(1, self.n, 1) def build(self ...
【论文阅读】Time-Series Anomaly Detection Service at Microsoft
【论文阅读】Time-Series Anomaly Detection Service at Microsoft
Metadata
authors:: Hansheng Ren, Bixiong Xu, Yujing Wang, Chao Yi, Congrui Huang, Xiaoyu Kou, Tony Xing, Mao Yang, Jie Tong, Qi Zhang
container:: Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining
year:: 2019
DOI:: 10.1145/3292500.3330680
rating:: ⭐
share:: true
comment:: 将图像领域的光谱残差分析引入到时间序列检测,通过无监督的方法进行异常检测,异常为人工添加。
前言
「异常检测」旨在发现数据中的意外事件或罕见项目。它在许多工业应用中非常流行,是数据挖掘中的一个重要研究领域。
为了解决时间序列异常检测的问题 ...
Redis 时间序列
Redis 时间序列
前言
REmote DIctionary Server(Redis) 是一个使用 ANSI C 编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库。
RedisTimeSeries 是 Redis 的一个扩展模块。它专门面向时间序列数据提供了数据类型和访问接口,并且支持在 Redis 实例上直接对数据进行按时间范围的聚合计算。
由于 RedisTimeSeries 不属于 Redis 的内置数据结构,在使用时,需要先把它的源码单独编译成动态链接库 redistimeseries.so。
在本文中,直接使用官方说明文档中的 docker 实例:
1docker run -p 6379:6379 -it --rm redislabs/redistimeseries
RedisTimeSeries 基本操作
RedisTimeSeries 的操作主要有 5 个:
TS.CREATE 命令创建时间序列数据集合
TS.ADD 命令插入数据
TS.GET 命令读取最新数据
TS.MGET 命令按标签过滤查询数据集合
TS.RANGE 支持聚合计算的范 ...
【论文阅读】Modeling Extreme Events in Time Series Prediction
【论文阅读】Modeling Extreme Events in Time Series Prediction
Metadata
authors:: Daizong Ding, Mi Zhang, Xudong Pan, Min Yang, Xiangnan He
container:: Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining
year:: 2019
DOI:: 10.1145/3292500.3330896
rating:: ⭐⭐⭐️
share:: true
comment:: 以GRU为基础,主要针对损失函数进行了修改,强调极端值的模型预测中的作用。
前言
时间序列预测是数据挖掘中一个深入研究的课题。尽管取得了相当大的进步,但最近基于深度学习的方法忽略了极端事件的存在,这导致将它们应用于实时序列时性能较弱。
在本文中,探讨了提高深度学习建模极端事件以进行时间序列预测的能力。
Extreme Value Loss ( ...
树状数组学习笔记
树状数组学习笔记
前言
树状数组或二叉索引树(Binary Indexed Tree),又以其发明者命名为 Fenwick 树
它可以以 O(logn)O(\log n)O(logn) 的时间得到任意前缀和 ∑i=1jA[i],1<=j<=N\sum_{i=1}^j A[i], 1 <= j <= N∑i=1jA[i],1<=j<=N,并同时支持在 O(logn)O(\log n)O(logn) 时间内支持动态单点值的修改。空间复杂度 O(n)O(n)O(n)。
使用场景
树状数组可以高效地实现如下两个操作:
数组前缀和的查询
单点更新
对于上面两个问题,如果我们不使用任何数据结构,仅依靠定义,「数组前缀和的查询」 的时间复杂度是 O(n)O(n)O(n),「单点更新」 的时间复杂度是 O(1)O(1)O(1)
利用数组实现前缀和,每次查询前缀和时间复杂度就变成了 O(1)O(1)O(1), 但是对于频繁更新的数组,每次重新计算前缀和,时间复杂度为 O(n)O(n)O(n)。
树状数组简介
树状数组名字虽然又有树,又有数组,但是它实际上物 ...
Linux 文件权限
Linux 文件权限
前言
Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
Linux 文件属性
在 Linux 中,文件属性是一个字符串,它描述了文件的权限,文件的所有者,文件的所有者组,文件的其他用户的访问权限。
使用 ls -l 命令可以显示文件的属性:
12345678root@emoryhuang:/# ls -ltotal 970048lrwxrwxrwx 1 root root 7 Nov 23 18:08 bindrwxr-xr-x 18 root root 3880 Jan 12 08:46 devdrwxr-xr-x 90 root root 4096 Jan 12 18:44 etcdrwxr-xr-x 5 root root 4096 Jan 12 21:29 home-rw------- 1 root root 993249280 Nov 23 18:08 swa ...
Spark 与 DataFrame
Spark 与 DataFrame
前言
在 Spark 中,除了 RDD 这种数据容器外,还有一种更容易操作的一个分布式数据容器 DateFrame,它更像传统关系型数据库的二维表,除了包括数据自身以外还包括数据的结构信息(Schema),这就可以利用类似 SQL 的语言来进行数据访问。
Dataframe 读写
手动创建
12from pyspark.sql import SparkSessionspark = SparkSession.builder.appName("Spark").getOrCreate()
创建一个列表,列表的元素是字典,将其作为输出初始化 DataFrame:
123456data = [{"Category": 'A', "ID": 1, "Value": 121.44, "Truth": True}, {"Category": 'B', "I ...