console.log(test()); // => xo xo — 我们在全局上下文中调用了 test 函数。 console.log(test.call(foo)); // => lorem ipsum — 通过使用 `call`,我们在 foo 对象的上下文中调用了 test 函数。 console.log(test.apply(foo)); // => lorem ipsum — 通过使用 `apply`,我们在 foo 对象的上下文中调用了 test 函数。
领域发现。来源可以为爬虫或领域本体库。 > 爬虫部分引用了 S.
Chakrabarti. Mining the Web: Discovering knowledge from hypertext data.
Elsevier, 2002. > 领域本体库部分引用了 A. Zouaq and R. Nkambou. A
survey of domain ontology engineering: methods and tools. In Advances in
intelligent tutoring systems, pages 103–119. Springer, 2010.
有了数据源后,使用 IE system
抽取相关结构化数据。作者简述了基于统计学习的信息抽取方法:使用 CRF
序列标注、以及在数据量大的情况下使用深层神经网络,目的为抽取命名实体与关系(extraction
of name entities and relationships)。 > 神经网络部分引用 R.
Collobert and J. Weston. A unified architecture for natural language
processing: Deep neural networks with multitask learning. In Proceedings
of the 25th international conference on Machine learning, pages 160–167.
ACM, 2008.
当 IE system 在跨领域 Web 数据源(cross-domain Web
source,以维基百科为例)和传统领域(以生物学为例)表现优秀时,在一些“动态领域”(dynamic
domain)中表现一般。这些领域包括:news
feed、自媒体、广告、在线市场以及一些非法领域(如人口贩卖 human
trafficking)等。
非法领域的信息抽取之所以难做是因为在非法网站中常常会对信息进行混淆、非随机地对一些常用词进行错误拼写、OOV(out
of vocabulary,非登录词)及生僻词高频出现、有时候还非随机使用Unicode
字符,且相关网页中正文分布稀疏、网页结构各异。与传统领域中(如聊天记录、Twitter
等)规律的信息不同,这些信息正文在非法网站中基本上是独一无二的。此论文仅讨论人口贩卖领域,不过在另一些在暗网中存在
Web 服务的非法领域(如武器贩卖、恐怖袭击、假货等)也可以适用。
接着举了两个典型例子说明上面的情况: eg1. Hey gentleman im
neWYOrk and i’m looking for generous... eg2. AVAILABLE NOW! ?? - (4 two
4) six 5 two - 0 9 three 1 - 21
因此传统领域 IE system 的包装归纳学习系统(wrapper induction
systems)不能在这些领域中正常工作,只能将数据给调查员和领域专家进行分析。
作者归纳:此论文分析了传统的 IE system
在动态的、非法的领域中的不适用性,因此提出了一种不依赖于传统信息提取系统、可在小样本
Web 数据集上正常运行的方法。
简述贡献:创建了一种轻量级的、无特征的信息提取系统,可以适用于各种各样的非法领域。且这种方法很容易实现,无需大范围地调参,效果随数据集增大而增强,适用部署于流数据。且此方法在刚开始做领域发现的小数据集上也表现良好,在遇到超大
web 数据集时依然稳定。
简述 baseline,基于 CRF 的最新的 Stanford Named Entity Resolution
system,包含关于人口贩卖的预训练数据。
二、相关工作
Open IE > N. Kushmerick. Wrapper induction for information
extraction. PhD thesis, University of Washington, 1997. > M. Banko,
M. J. Cafarella, S. Soderland,M. Broadhead, and O. Etzioni. Open
information extraction from the web. In IJCAI, volume 7, pages
2670–2676, 2007. ADRMine > B. Han, P. Cook, and T. Baldwin.
Text-based twitter user geolocation prediction. Journal of Artificial
Intelligence Research, 49:451–500, 2014. > A. Nikfarjam, A. Sarker,
K. OaˆA ̆Z ́Connor, R. Ginn, and G. Gonzalez. Pharmacovigilance from
social media: mining adverse drug reaction mentions using sequence
labeling with word embedding cluster features. Journal of the American
Medical Informatics Association, page ocu041, 2015.
在此之前还没有工作对无特征、低监督的 web
非法领域信息提取进行研究。
三、方法
总体的架构如上图 Figure 1
所示。模型有两个输入端,一个是包含有关兴趣领域的 Web
页面集,一个是有着高召回率的识别器。在此论文中假定模型初始化时的数据集很小,接着会有很多的数据不断地加入到数据集中(即模仿流数据条件)。首先将给定一个初始的数据集,其中已经人工标注好了
10-100
条数据的属性(假定为城市、姓名、年龄),模型将根据此数据集在没有做特征工程的情况下学习出一个信息提取系统。
> 此处数据条数有疑问
需要注意的是需要分析的 Web
页面大多是多领域结合,因此在处理页面时不仅需要不断将新的页面加入数据集中,还要由初始数据集进行概念漂移(concept
drift)以适应各种新的情况。
1 预处理过程
爬取相关网页,使用 RTE(Readability Text Extractor)对 HTML
文本进行正文提取。对 RTE 进行调参,将其调至高召回率。由于 Web
网页的结构多样,因此正文中可能会存在许多无关内容(包括一些无用的数字及
Unicode 字符等等)。RTE
最终会返回一组字符串集,字符串集中包含以句子为单位的内容。 > RTE
给了网址:https://www.readability.com/developers/api
接下来使用 NLTK 对 RTE 返回内容的每个句子分别进行分词。
2 词向量表示
接下来作者使用 CRF
序列标注模型对已标注数据进行学习(详细内容在后面)。但是由于数据集实在太少,CRF
的效果并不好。 为了避免 CRF
出现的状态,又为了避免工作量极大的页面标注,作者使用了非监督算法,以低维空间来表示页面中所有词的全集。在此使用了嵌入算法(embedding
algorithms),作者在此提及了 Word2Vec 和 Bollegala
的算法和一种更简单的算法(random indexing)。 > Word2Vec 引用了 T.
Mikolov, I. Sutskever, K. Chen, G. S. Corrado, and J. Dean. Distributed
representations of words and phrases and their compositionality. In
Advances in neural information processing systems, pages 3111–3119,
2013. > Bollegala 算法引用了 D. Bollegala, T. Maehara, and K.-i.
Kawarabayashi. Embedding semantic relations into word representations.
arXiv preprint arXiv:1505.00161, 2015. > random indexing 引用了 M.
Sahlgren. An introduction to random indexing. In Methods and
applications of semantic indexing workshop at the 7th international
conference on terminology and knowledge engineering, TKE, volume 5,
2005. 最终作者选用了“最简单”的 RI(random
indexing)算法。此算法可以保证向量在表示时,即使是在低维空间中点与点间依然能够保持足够的距离。RI
算法最开始本来是为了增量降维(incremental dimensionality
reduction)设计的。RI 算法定义如下:
作者使用 Stanford Named Entity Recognition system(NER) 作为其
baseline。 > 此处引用 J. R. Finkel, T. Grenager, and C. Manning.
Incorporating non-local information into information extraction systems
by gibbs sampling. In Proceedings of the 43rd Annual Meeting on
Association for Computational Linguistics, pages 363–370. Association
for Computational Linguistics, 2005.
(作者”解释“了前面我关于为什么不使用 word2vec
的疑惑)作者表示,他也不清楚为啥不能使用 word2vec
之类更具适应性的算法来代替 Random Indexing 算法。不过表 7 与表 8
可以看到 Random Indexing
算法在不断加入更多网站的情况下表现仍然稳定。
upload successful
表 10:在一万数据集与全集中 Random Indexing
算法找到的相似语义样例
由表 10 可以看到 Random Indexing
算法在不同数据集大小下表现的鲁棒性,给出的相似语义词依然较为准确。
upload successful
图
6:城市名称上下文分类时的可视化图(不同的颜色表示在标准数据集中的标签)
使用 t-SNE 工具对数据进行可视化,得到上图。 > t-SNE 工具引用了 L.
v. d. Maaten and G. Hinton. Visualizing data using t-sne. Journal of
Machine Learning Research, 9(Nov):2579–2605, 2008.
目前平台支持离线、大规模分布式训练,包括决策树、线性模型、逻辑模型、无监督模型(k-means)、时间序列模型以及深度神经网络。工程师们将定期根据用户的需求增加一些由
Uber AI
实验室新开发的模型。此外,用户也可以自己提供模型类型,包括自定义训练、评价以及提供服务的代码。分布式模型训练系统可以规模化处理数十亿的样本数据,也可以处理一些小数据集进行快速迭代。
最近,Airbnb
机器学习的基础架构进行了改进,使得部署新的机器学习模型到生产环境中的成本降低了许多。例如,我们的
ML Infra
团队构建了一个通用功能库,这个库让用户可以在他们的模型中应用更多高质量、经过筛选、可复用的特征。数据科学家们也开始将一些自动化机器学习工具纳入他们的工作流中,以加快模型选择的速度以及提高性能标准。此外,ML
Infra 还创建了一个新的框架,可以自动将 Jupyter notebook 转换成 Airflow
pipeline 能接受的格式。
source: { type: hive query:""" SELECT id_listing as listing , dim_city as city , dim_country as country , dim_is_active as is_active , CONCAT(ds, ' 23:59:59.999') as ts FROM core_data.dim_listings WHERE ds BETWEEN'{{ start_date }}'AND'{{ end_date }}' """ dependencies: [core_data.dim_listings] is_snapshot: true start_date: 2010-01-01 } features: { city: "City in which the listing is located." country: "Country in which the listing is located." is_active: "If the listing is active as of the date partition." }
for field in categorical: transforms.append( (field, ExtendedPipeline([ ('select', ColumnSelector(features=[field])), ('encode', OrdinalEncoder(min_support=10)) ]) ) )