2016 hadoop conf tw - 如何建置數據精靈

47
如何建置 關鍵字(數據)精靈 1

Upload: -

Post on 08-Jan-2017

422 views

Category:

Data & Analytics


8 download

TRANSCRIPT

Page 1: 2016 Hadoop Conf TW - 如何建置數據精靈

如何建置關鍵字(數據)精靈

1

Page 2: 2016 Hadoop Conf TW - 如何建置數據精靈

Who am I ?

● Kent Shih (施晨揚)

● 熱愛 Data Analysis & Machine

Learning

● 痞客邦 - Manager, Alogrithm

Design & Research Team

https://www.facebook.com/texibhttps://tw.linkedin.com/in/kentshih

Page 3: 2016 Hadoop Conf TW - 如何建置數據精靈

3

痞客邦 PIXNET

Page 4: 2016 Hadoop Conf TW - 如何建置數據精靈

我們在做什麼?

4

● 設計演算法優化痞客邦內外部服務

● 性別預測、年齡預測、文章優質程度及族群分析等

● 白話的說 - 利用電腦科學優化大規模性問題

Page 5: 2016 Hadoop Conf TW - 如何建置數據精靈

● 操作太複雜 - 還要學新的軟體

● 等太久 - 老闆馬上這要份報告了

● 資料很多 - 一堆圖表看了就暈

● 不知道要怎麼分析什麼 - 腦袋很空

5

資料科學是火星科技?

Page 6: 2016 Hadoop Conf TW - 如何建置數據精靈

● 簡單- 只要輸入然後按 Enter

● 快速 - 5秒內

● 一張圖或表 - 真的就只有一個

● 隨時取得 - 在捷運上拿著手機就可以用

6

設計方向

Page 7: 2016 Hadoop Conf TW - 如何建置數據精靈

數據精靈(PIXBOT) 基本資料

● 出生:2015/12/23 6:03 PM

● 指令:12 道不同指令

● 服務對象:渴望數據資料內部同仁

● 住在哪:PIXinsight & Slack

7 7

Page 8: 2016 Hadoop Conf TW - 如何建置數據精靈

8

有哪些類型法術

文章優質度分析

閱讀者行為分析

關鍵字聯想分析

文章關鍵字分析

Page 9: 2016 Hadoop Conf TW - 如何建置數據精靈

什麼是關鍵字?

摘錄Wikipedia : Keyword (computer programming), word or identifier that

has a particular meaning

to the programming language

9

Page 10: 2016 Hadoop Conf TW - 如何建置數據精靈

文章熱門搜尋關鍵字分析

10

Page 11: 2016 Hadoop Conf TW - 如何建置數據精靈

優像數位媒體科技股份有限公司

PIXNET DIGITAL MEDIA CORPORATION

UX 部門主管

中午看的文章和晚上看會一樣

嗎 ?

應該不一樣吧?可以抓幾篇看一

下嗯我想想~但有上千篇文章

今晚不用睡了!

11

Page 12: 2016 Hadoop Conf TW - 如何建置數據精靈

破千篇的文章早上中午

晚上

Page 13: 2016 Hadoop Conf TW - 如何建置數據精靈

優像數位媒體科技股份有限公司

PIXNET DIGITAL MEDIA CORPORATION

怎麼算出來的呢?

早上下午文章集

晚上文章集

比對搜尋紀錄差異

計算代表的關鍵字

斷詞處理

13

Page 14: 2016 Hadoop Conf TW - 如何建置數據精靈

早上到下午會搜尋的關鍵字

四神湯下午茶上引水產

14

Page 15: 2016 Hadoop Conf TW - 如何建置數據精靈

下午晚上的搜尋關鍵字

啤酒夜市

15

Page 16: 2016 Hadoop Conf TW - 如何建置數據精靈

現在只要 10 秒

原本 4000 文章 * 30 秒 = 33 小時

16

Page 17: 2016 Hadoop Conf TW - 如何建置數據精靈

內容議題分析

17

Page 18: 2016 Hadoop Conf TW - 如何建置數據精靈

最近有客戶想下尿布的廣告

廣告部門主管

創作者都怎麼介紹尿布

啊??

我們的老婆大人比較清楚吧!!

總不能跟客戶這麼說吧 XD

嗯我想想~

18

Page 19: 2016 Hadoop Conf TW - 如何建置數據精靈

關聯詞(搜尋)

尿布

19

Page 20: 2016 Hadoop Conf TW - 如何建置數據精靈

相似詞(同義詞)

尿布

20

Page 21: 2016 Hadoop Conf TW - 如何建置數據精靈

相似詞 - 詞向量

Page 22: 2016 Hadoop Conf TW - 如何建置數據精靈

皮卡丘

22

Page 23: 2016 Hadoop Conf TW - 如何建置數據精靈

神奇寶貝 = 皮卡丘

神奇寶貝GO/精靈寶可夢GO] 2016/7/22

正式在日本提供服務&日本橫濱的

皮卡丘手遊台灣精靈寶可夢「Pokémon GO」

23

Page 24: 2016 Hadoop Conf TW - 如何建置數據精靈

關聯詞

寶可夢

24

Page 25: 2016 Hadoop Conf TW - 如何建置數據精靈

熱搜詞組

精靈寶可夢台灣

精靈寶可夢太陽 pokemon寶可夢

任天堂精靈寶可夢

25

Page 26: 2016 Hadoop Conf TW - 如何建置數據精靈

廣告部拿到一筆尿布廣告訂單

26

Page 27: 2016 Hadoop Conf TW - 如何建置數據精靈

一些小技巧及關鍵資源 - 詞庫

27

● 斷詞是 Text Mining 最基礎工程之一

● 建立好的詞庫是最直接手段之一● 收集詞

○ 爬網 : Wikipedia, 淘寶○ 收集使用者常下的 Query String○ 輸入法詞庫○ 公司內部的產品資料庫

Page 28: 2016 Hadoop Conf TW - 如何建置數據精靈

一些小技巧及關鍵資源 - 斷詞系統

28

● 結巴 - https://github.com/fxsjy/jieba● 但是如果有上億篇的文章要處理,Python 版效能是

無法滿足的

●       的效能快上 100 倍

Page 29: 2016 Hadoop Conf TW - 如何建置數據精靈

一些小技巧及關鍵資源 - 詞向量

Page 30: 2016 Hadoop Conf TW - 如何建置數據精靈

詞向量 - One Hot v.s Continue Value It is better for analysis

Very High Dimension

Page 31: 2016 Hadoop Conf TW - 如何建置數據精靈

詞向量 - One Hot RepresentationWord One Hot Index

Apple 00000001

how 00000010

Are 00000100

You 00001000

I 00010000

Am 00100000

Fine 01000000

Book 10000000

How Are You ? I am Fine . Thank You

TF - Term Frequency

01111110

00001000

00010000

AND

You

I

00000000

Page 32: 2016 Hadoop Conf TW - 如何建置數據精靈

詞向量 - Context Vector

Page 33: 2016 Hadoop Conf TW - 如何建置數據精靈

詞向量 - Context Vector

P(Wi|Context)

Word 餐廳 浮潛 美食 旅遊 出國

沖繩 0.1 0.7 0.5 0.9 0.5

好吃 0.6 0.01 0.7 0.01 0.02

Okinawa 0.2 0.5 0.2 0.8 0.7

喔伊西 0.3 0.002 0.8 0.02 0.03

Similar

Similar

Page 34: 2016 Hadoop Conf TW - 如何建置數據精靈

Co-occurrence MatrixSparse & Large

n ~= 500K

Space ~= n*nTime ~= n*n

GG!!

Page 35: 2016 Hadoop Conf TW - 如何建置數據精靈

優像數位媒體科技股份有限公司

PIXNET DIGITAL MEDIA CORPORATION

怎麼算出來的呢? 大量優質文章

100萬篇文章 Top High Quality 2015 Q3 Q4

6.1 億篇文章

High Quality

Classifier

Ranking

35

Page 36: 2016 Hadoop Conf TW - 如何建置數據精靈

怎麼算出來的呢?Word Embedding

優像數位媒體科技股份有限公司

PIXNET DIGITAL MEDIA CORPORATION 資料前處理 深度學習100 萬篇文章

36

Page 37: 2016 Hadoop Conf TW - 如何建置數據精靈

怎麼算出來的呢? Word2Vec

使用類神網路來產生以下模型:給予短句中的前文即可預測出下一個

可能會出現的詞

附帶產生的結果投影層即為詞向量(Word Vector)

我想要去沖繩潛水 潛水

打球

潛水

睡覺

洗臉

...

37

Page 38: 2016 Hadoop Conf TW - 如何建置數據精靈

Word2Vec● Google 2013 Release● Open Source Project● Two Layer Neural Network● Another Toolkit : Gensim● pip install --upgrade

gensim

https://www.tensorflow.org/versions/r0.8/tutorials/word2vec/index.html

Page 39: 2016 Hadoop Conf TW - 如何建置數據精靈

39

閱讀者行為分析

Page 40: 2016 Hadoop Conf TW - 如何建置數據精靈

痞客邦社群影響力

40

Page 41: 2016 Hadoop Conf TW - 如何建置數據精靈

同樣都是寵物蛙

創作者的受眾重疊比率分析

41

美妝 vs 寵物蛙

Page 42: 2016 Hadoop Conf TW - 如何建置數據精靈

42

一些小技巧 - 抽樣

● 資料量實在太大 - 單日不重複訪客770萬

● 抽樣使用者 - 1/70

● 時間區間 - 120 天內

● 5 分鐘 -> 5 秒

Page 43: 2016 Hadoop Conf TW - 如何建置數據精靈

43

文章優質成度分析分析

Page 44: 2016 Hadoop Conf TW - 如何建置數據精靈

文章優質程度分析

44

Page 45: 2016 Hadoop Conf TW - 如何建置數據精靈

文章優質程度分析-訓練資料

45

熱門部落客

垃圾文章

文章分類器

Page 46: 2016 Hadoop Conf TW - 如何建置數據精靈

46

一些小技巧及關鍵資源 - CNN Model

Convolutional Neural Networks for Sentence Classification

http://arxiv.org/abs/1408.5882

Page 47: 2016 Hadoop Conf TW - 如何建置數據精靈

系統架構

NAS

MySQL

SparkWorkerWorker Worker

Jieba Server

Gensim Word2VecFlask

JupyterScikitLearn

TensorFlow

Slack Bot

Redshift

47