Hexo搭建个人博客
Hexo 搭建个人博客
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
0. 安装前提
Node.js
Git
创建 GitHub 仓库
Hexo 建站环境配置详见:Hexo 建站环境配置
1. Hexo 建站
在配置完环境之后,就可以正式安装 Hexo 了。安装步骤还是比较简单的,主要在 Git Bash 中通过命令行安装。
Hexo 建站教程详见:Hexo 建站教程
2. 个性化域名(可选)
部署完博客之后,会发现我们的域名是 https://xxxxxx.github.io,很明显这个域名不够高端大气上档次,因此我们可以在 阿里云、腾讯云 等域名供应商那里注册自己的域名,一年大概几十块的费用,当然你也可以选择不更换域名。
GitHub Pages 个性化域名配置详见:GitHub Pages 个性化域名配置
3. 双线部署到 GitHub 和 Coding
本博客已迁移到阿里云 ECS, 部分功能可能失效,请注意!
由于 GitHub 的服务器在国外,所以访问速度不怎么样,因 ...
LeetCode 解题报告
LeetCode 解题报告
var chartDom = document.getElementById('main');
var myChart = echarts.init(chartDom);var option;
option && myChart.setOption(option);
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('echarts5413'));
// 指定图表的配置项和数据
var option =
option = {
tooltip: {
trigger: 'item'
},
legend: {
top: '5 % ',
left: 'center'
},
series: [
{
name: 'LeetCode 解题报告', ...
算法专题汇总
算法专题汇总
常用算法模板——常见算法
常用算法模板——数据结构
常用算法模板——数学知识
常用算法模板——搜索与图论
背包九讲学习笔记
排序算法总结
二分查找学习笔记
快速幂算法详解
由数据范围反推算法复杂度以及算法内容
【论文阅读】DynaPosGNN:Dynamic-Positional GNN for Next POI Recommendation
【论文阅读】DynaPosGNN: Dynamic-Positional GNN for Next POI Recommendation
前言
随着基于位置的社交网络(Location-Based Social Network)的快速发展, 海量的签到数据被用于挖掘用户的行为模式以实现兴趣点(Point-of-Interest) 推荐。 兴趣点推荐不但可以提高用户体验,增加用户粘性,还能为商家带来潜在的商业利益,已成为推荐系统中最重要的研究方向之一。
2021 年发表在 ICDM 上的一篇论文:DynaPosGNN: Dynamic-Positional GNN for Next POI Recommendation
问题描述
(next POI recommendation)给定大小为MMM的用户集合U={u1,u2,⋯ ,uM}U=\{u_1, u_2, \cdots,u_M\}U={u1,u2,⋯,uM}和大小为NNN的 POI 集合V={v1,v2,⋯ ,vN}V=\{v_1, v_2, \cdots, v_N \}V={v1,v2,⋯,vN}。
对于每个用户umu ...
【论文阅读】ALBERT:A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
【论文阅读】ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
前言
在 BERT 提出之后,各种大体量的预训练模型层出不穷,在他们效果不断优化的同时,带来的是巨大的参数量和漫长的训练时间。当然对于这个问题,也有大量的研究。ALBERT是谷歌在 BERT 基础上设计的一个精简模型,主要为了解决 BERT 参数过大、训练过慢的问题。
Overview
整体模型的架构还是与 BERT 相同,使用 Transformer encoder 和 GELU 激活函数,与 BERT 相比 ALBERT 主要做了如下三点改变:
A Lite BERT (ALBERT)使用了两种减少参数的方法来降低模型大小和提高训练速度:
Factorized embedding parameterization:Embedding 分解
Cross-layer parameter sharing:参数共享
除此之外,论文将 BERT 中的Next Sentence Prediction (NSP)问题修改为Sen ...
【论文阅读】Attention Is All You Need
【论文阅读】Attention Is All You Need
前言
Transformer 是谷歌在 2017 年底发表的论文 Attention Is All You Need 中所提出的 seq2seq 模型,Transformer 的提出也给 NLP 领域带来了极大震动。现如今,不少模型还是以 Transformer 作为特征抽取机制 ,比如 BERT 就是从 Transformer 中衍生出来的预训练语言模型。
Overview
Transformer 完全抛弃了传统的 CNN 和 RNN,整个网络结构完全是由 Attention 机制组成。作者认为 RNN 的固有的按照顺序进行计算的特点,限制了并行计算能力,即 RNN 只能是从左向右或是从右向左依次进行计算。
Transformer 和 RNN 的最大区别,就是 RNN 是迭代的、串行的,必须要等当前字处理完,才可以处理下一个字。而 Transformer 模型的训练是并行的,大大增加了计算的效率。
另一方面,作者在编码词向量时引入了 Position coding,即在词向量中加入了单词的位置信息,用来更好地理解语言的 ...
【论文阅读】BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding
【论文阅读】BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
前言
BERT 是 Google 于 2018 年提出的 NLP 预训练技术,全称是 Bidirectional Encoder Representations from Transformers,直译可以理解为双向 Transformer 的 Enocder。你可能听说过 BERT ,也知道它有多么神奇,本文主要通过对论文原文以及其他的一些资料,来帮助大家更全面的认识 BERT。
As a result, the pre-trained BERT model can be finetuned with just one additional output layer to create state-of-the-art models for a wide range of tasks, such as question answering and language inference, without subs ...
从 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 ...