Skip to content

一灯@qiancy.com Posts

Word2Vec原理之层次Softmax算法

在这个人工智能半边天,主流话题一天一变的现代世界里,不乏进步,也不乏泡沫,但Word2Vec依然是很富极客精神的典型代表,作者思路很巧妙,工程层面又很实用主义。

词嵌入的假设,是通过一个词所在的上下文可以获得词的语义甚至语法结构,有相似上下文的词在向量空间中是邻近的点。

1 背景概念

Word2Vec要解决的根本问题,说到底是自然语言处理的问题。一般认为自然语言处理模型氛围两大派系,分别是形式文法和统计语言模型。

1.1 统计语言模型

统计语言模型在分词、词性标注、语义理解等NLP基本任务,以及语音识别、机器翻译等领域有广泛应用。关于统计语言模型,文献资料非常多,这篇博客也讲的很详细。简单地说,可以用统一地形式化表示:

\[p(S)=p(w_1,w_2,…,w_n)=\prod_{i=1}^{n} p(w_i|w_1,w_2,…,w_{i-1})\]

上述表示可以看做是用来计算词构成一个句子的概率模型,这就是统计语言模型的本质。但是概率的计算是个大问题,数据稀疏、参数过多,很难实际运用。前辈们研究了各种模型。例如n-gram、n-pos、决策树模型、最大熵模型等。

2 Comments

ChinaVis2016见闻与所思

前言

每年都争取出去参加一次跨界的知识学习,去年是CCL,今年是ChinaVis。ChinaVis2016(7月21日-23日,湖南长沙)是国内可视化与可视化分析领域的专业会议,今年是第三届。去年的时候开始关注,没能去参加,今年终于排上了日程并说走就走。站在可视化领域的外围看这个世界,一直都不是很清晰,所以有机会能够以一个外行的身份过来感受一下这个圈子的氛围,是件令人兴奋的事情。下面整理的内容无法面面俱到,有些内容甚至都是大会以外的,但是希望把我的几个关注点上学习到的内容作一个简单的总结,如有不正确之处,希望得到指正。

理解可视化与交互

可视化的概念不用说了,但“可视化分析”一词,我是至今才有一个稍微清晰一点的认识,很是惭愧。所谓分析,一般可以拆解为不通的步骤,从数据的获取开始,可以往后写一堆。作为一个GIS人,在我以前的理解里,可视化呈现的是一种结果,所以一直对“可视化分析”这个词的科学性持质疑态度。

实际上,不同领域里,对此可以有不同的解释。例如,清华大学的朱军在谈到交互式机器学习与可视化的话题时,交互式机器学习在如下环节中都需要可视化的协助:

  1. 数据预处理时可以用到可视化
  2. 学习过程里可以可视化,因为机器学习本身黑箱
  3. 对机器学习评价也需要可视化交互式界面
142 Comments

中文维基百科文本数据分析之一(数据获取与预处理)

照例,先讲下环境,Mac OSX 10.11.2 ,Python 3.4.3。

下载数据

方法1:使用官方dump的xml数据

最新打包的中文文档下载地址是:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 。

方法2:也是官方,结构化数据(json)

下载地址是:https://dumps.wikimedia.org/wikidatawiki/entities/ 。目前尚未测试使用此数据,不多作介绍。但数据模型和已有的工具都可以在wikidata的站点上找到。

3 Comments

Ubuntu下ArcGIS Server 10.4与PostgreSQL 9.4的完美CP

稍微说几句,为什么要折腾这个:(1)不希望再用Windows Server,理由都懂;(2)对SQL Server在应用中的各种保守表现不太满意,希望在GIS上有更激进些的工作,例如对空间数据的处理能力;(3)有些应用要有更灵活的架构,而PG在一定程度上迎合了这种需求,例如支持JSON和JSONB,成为关系和非关系混合的一种选择(据说MySQL5.7开始也支持了JSON);(4)ArcGIS Server在linux下的表现,希望用实践来验证;(5)搞技术的人面对互联网的热闹,实在无法完全抵御尝试和改变的欲望。

2 Comments

PostgreSQL两三事

不要用Graphic Installer

至少在Ubuntu下,觉得原生的apt-get管理方式更合适,PG的文件资源会被分配到应该的地方,Linux的系统文件结构也是种非常稳健的架构。例如在/etc/postgresql下可以找到conf文件是一件清晰到爽的事情。正常通过apt安装的方式参见这篇博文

之前有一台VM就是没有忍住一时之快,用了Graphic Installer,所有的东西被塞到/opt/PostgreSQL/x.x中,当然,conf、bin等文件都在其中。在没有手动配置的情况下,start/stop/restart/reload之类的事情,不得不交给pg_ctl做,而与postgres账户之间的来回切换,也会浪费宝贵的时间。例如重启PG需要

而出现冲突的时候还会需要忍不住 -m fast 一下。而如果使用系统服务,至少可以这样:

73 Comments