0
SmartNews の Webmining を支えるプラットフォーム
第48回 データマイニング+WEB @東京
( #TokyoWebmining 48th )
ーAWS上での分析基盤アーキテクチャ最前線 祭りー
西岡悠平 (スマートニュース...
マネージャ データサイエンス・マシンラーニング担当
スマートニュース
● 2003年 京都大学大学院情報学研究科複雑系科学コース修了。
● ネットワーク機器メーカーに入社、 2005年上半期の未踏ソフトウェア創造事業
「スーパークリエータ」に認...
アイスブレイク
3
4
後ほど、アップロード
5
後ほど、アップロード
6
後ほど、アップロード
1. Overview
2. News Engine
a. History & Overview
b. Inside News Engine
3. News Engine + Analytics
Agenda
7
Overview
8
9
10
11
SmartNews の紹介
12
Engineer Scientist
13
http://aws.amazon.com/jp/solutions/case-studies/smartnews/
today's
main topic
today's
sub topic
14
News Engine
15
News Engine
History and Overview
16
スタートアップあるある
創業者が偉大すぎる
17
Crowsnest
[Ref]
SmartNews Compass Keynote Session
http://about.smartnews.com/ja/compass_2014/
18
News Engine History
● 2011.5 - Crowsnest release
● 2012.12 - SmartNews release
● 2013 - 2014 ... fork して改善し続けたが
○ Crowsnes...
Before After
Monolithic Microservices
Develop
Original Database & Queue
Use Manged Services
as much as possilble
DynamoDB ...
Seasar Spring Boot
[告知]
Seasar Conference 2015
2015年9月26日(土)
● Great Eco System
● Microservices Friendly
21
API ( Swagger UI )
(ref) http://petstore.swagger.io
22
アルゴリズムの改善
プラットフォームの面倒
アルゴリズムにまつわる話
( deploy や test )
Cloud
アルゴリズムの改善
Managed Service
Cloud
プラットフォームの面倒
アルゴリズムにまつわる話
Before...
News Engine
Inside News Engine
24
Article
Analysis
Scorer
News
Ranking
API
News Engine System Overview
metadata
score
(a)
(b)
(c)
(d) (e)
Data
Importer
(f) ...
(a)Crawler
● マナーを守って
● 秘伝のタレがギッシリ
○ (例) robots.txt で OutOfMemory Error
26
(b)Article Analysis
HTML
Article
Analysis
Metadata
(Structured Data)
pipeline process
- title
- content
- thumbnail
- cate...
(b)Article Analysis - Classification
Globally Scalable Web Document Classification Using Word2Vec
http://www.slideshare.ne...
(c)Scorer
Score
Top-N
in
CloudSearch
Ranking
Process
スコアリングの詳細は極秘
internal
signals
exnternal
signals
29
(d) article inventory
URL
metadata
features for score
[...]
{a: 3, b:4....}
良いところ
● scalable
● stable
● JSON で複雑なデータ構造を扱える...
(e) DynamoDB から CloudSearch へ
TransformerFilterFilter
TransformerFilterTransformerCosumer Uploader
byte stream
JSON Object...
(f) CloudSearch - Basic
...
...
...
...
Filter
Sort
by score function
top-n
High
Score
Low
Score
n
32
(f) CloudSearch - score function
Examples
● relevence x popularity : (0.3*popularity)+(0.7*_score)
● decay : pow(e, _time ...
(f) CloudSearch - personalization
feature.1 feature.2 ... feature.n
doc.1 0.8 0.7 ... 0.3
doc.2 0.2 0.6 ... 0.7
... ... .....
(f) CloudSearch
残念なこと
(1) partial update が出来ない
(2) instance 数の変更時の挙動
(3) Solr のプラグイン( dedupe 処理など ) 使えない
35
(g) News Ranking API
● top-n に対して
○ より詳細な scoring
■ ( CloudSearch の score, その他の要素)
○ Diversification
○ Context
image simil...
Engine + Analytics
37
News Engine
Analytics
model
improve
ad-hoc
analysis
reporting
use
38
Presto Hive Spark
Hive MetaStore
Data in S3
(RCfile, JSONー2012年 からのログ)
SparkSQL/MLlib
SmartNews UDF, UDAF
(user defined fu...
Spark MLlib
● Collaborative filtering
○ ALS (Alternating Least Squares)
Pre Process
on Hive
SpakSQL
Data
in S3
RDD
ALS MLl...
Spark Straeming for News Engine
Signals Scorer
Kinesis
Advanced Scorer
● Spark 1.3 は厳しい
● Spark 1.4 からが良い
41
Summary
42
43
良質な情報を届けるために
● プラットフォームを進化させている
● より良質な情報を探すアルゴリズム開発に
集中できるようになってきている
44
人材募集
こんなプラットフォームの上で、
ガツガツとアルゴリズムを作りたい人!
もちろんプラットフォームを進化させる人も!
45
Upcoming SlideShare
Loading in...5
×

SmartNews の Webmining を支えるプラットフォーム

402

Published on

第48回データマイニング+ WEB @東京(#TokyoWebminig 48th)- AWS上での分析基盤アーキテクチャ最前線祭り-「SmartNews の Webmining を支えるプラットフォーム」
speaker: Yuhei Nishioka @SmartNews

Published in: Engineering

Transcript of "SmartNews の Webmining を支えるプラットフォーム"

  1. 1. SmartNews の Webmining を支えるプラットフォーム 第48回 データマイニング+WEB @東京 ( #TokyoWebmining 48th ) ーAWS上での分析基盤アーキテクチャ最前線 祭りー 西岡悠平 (スマートニュース株式会社) 1
  2. 2. マネージャ データサイエンス・マシンラーニング担当 スマートニュース ● 2003年 京都大学大学院情報学研究科複雑系科学コース修了。 ● ネットワーク機器メーカーに入社、 2005年上半期の未踏ソフトウェア創造事業 「スーパークリエータ」に認定される。 ● その後、株式会社四次元データ Web技術研究部を経て、 2008年に楽天株式会社に入社。レ コメンデーションエンジンをはじめとした先端技術の研究開発をリードする。 ● 2014年9月にスマートニュース社入社。 西岡悠平 2
  3. 3. アイスブレイク 3
  4. 4. 4 後ほど、アップロード
  5. 5. 5 後ほど、アップロード
  6. 6. 6 後ほど、アップロード
  7. 7. 1. Overview 2. News Engine a. History & Overview b. Inside News Engine 3. News Engine + Analytics Agenda 7
  8. 8. Overview 8
  9. 9. 9
  10. 10. 10
  11. 11. 11
  12. 12. SmartNews の紹介 12
  13. 13. Engineer Scientist 13
  14. 14. http://aws.amazon.com/jp/solutions/case-studies/smartnews/ today's main topic today's sub topic 14
  15. 15. News Engine 15
  16. 16. News Engine History and Overview 16
  17. 17. スタートアップあるある 創業者が偉大すぎる 17
  18. 18. Crowsnest [Ref] SmartNews Compass Keynote Session http://about.smartnews.com/ja/compass_2014/ 18
  19. 19. News Engine History ● 2011.5 - Crowsnest release ● 2012.12 - SmartNews release ● 2013 - 2014 ... fork して改善し続けたが ○ Crowsnest 部分、辛い部分も増えてきて、アーキテクチャ刷新したかった・・・。 たぶん、どの会社もたどる道・・・。 ● 2015.3 ○ SmartNews News Office で初めて Tokyo WebMining ! ○ 自分も参加。Tokyo Web運営者でもある小宮氏 (SmartNews)から「発表しろ」プレッシャー。 ○ 発表を決める(刷新を決める)。発表に間に合うように、アーキテクチャの刷新を始める。 ● 2015.4 - 7 Platform 刷新 ● 2015.8.1 今日 Crowsnest SmartNews API アプリ 19
  20. 20. Before After Monolithic Microservices Develop Original Database & Queue Use Manged Services as much as possilble DynamoDB CloudSearch Kinesis 20
  21. 21. Seasar Spring Boot [告知] Seasar Conference 2015 2015年9月26日(土) ● Great Eco System ● Microservices Friendly 21
  22. 22. API ( Swagger UI ) (ref) http://petstore.swagger.io 22
  23. 23. アルゴリズムの改善 プラットフォームの面倒 アルゴリズムにまつわる話 ( deploy や test ) Cloud アルゴリズムの改善 Managed Service Cloud プラットフォームの面倒 アルゴリズムにまつわる話 Before After 23
  24. 24. News Engine Inside News Engine 24
  25. 25. Article Analysis Scorer News Ranking API News Engine System Overview metadata score (a) (b) (c) (d) (e) Data Importer (f) (g) Crawler external signals internal signals article inventory article index 25
  26. 26. (a)Crawler ● マナーを守って ● 秘伝のタレがギッシリ ○ (例) robots.txt で OutOfMemory Error 26
  27. 27. (b)Article Analysis HTML Article Analysis Metadata (Structured Data) pipeline process - title - content - thumbnail - category - (person) - (location) ● Natural Language Processing ● Machine Learning ● Apache UIMA vs. Original Framework 27
  28. 28. (b)Article Analysis - Classification Globally Scalable Web Document Classification Using Word2Vec http://www.slideshare.net/kouheinakaji/smart-news-documentclassification?qid=c9b6df62-1fdd-4bf8-9543- bff0fba92dac&v=default&b=&from_search=2 28
  29. 29. (c)Scorer Score Top-N in CloudSearch Ranking Process スコアリングの詳細は極秘 internal signals exnternal signals 29
  30. 30. (d) article inventory URL metadata features for score [...] {a: 3, b:4....} 良いところ ● scalable ● stable ● JSON で複雑なデータ構造を扱える ● 要素の中身を atomic に変更可能 出来ないこと ● 高度な検索 30
  31. 31. (e) DynamoDB から CloudSearch へ TransformerFilterFilter TransformerFilterTransformerCosumer Uploader byte stream JSON Object for DynamoDB JSON Object for CloudSearch SDF format DataImporterService DocuentConverterService IRecordProcessr called by Worker 31
  32. 32. (f) CloudSearch - Basic ... ... ... ... Filter Sort by score function top-n High Score Low Score n 32
  33. 33. (f) CloudSearch - score function Examples ● relevence x popularity : (0.3*popularity)+(0.7*_score) ● decay : pow(e, _time - created) (例) http://www.slideshare.net/AmazonWebServices/enrich-search-user-experience-using-amazon- cloudsearch-svc302-aws-reinvent-2013 33
  34. 34. (f) CloudSearch - personalization feature.1 feature.2 ... feature.n doc.1 0.8 0.7 ... 0.3 doc.2 0.2 0.6 ... 0.7 ... ... ... ... ... doc.n 0.4 0.5 ... 0.3 = { feature.1 : 0.6, feature.2, ... feature.n : 0.7} [exression] user_feature_1 x doc_feature_1 + user_feature_2 x doc_feature_2 .. + user_feaure_n xdoc_feature_n e.g. ) 0.6 x 0.8 + 0.2 X 0.7 + ... + 0.7 x 0.3 34
  35. 35. (f) CloudSearch 残念なこと (1) partial update が出来ない (2) instance 数の変更時の挙動 (3) Solr のプラグイン( dedupe 処理など ) 使えない 35
  36. 36. (g) News Ranking API ● top-n に対して ○ より詳細な scoring ■ ( CloudSearch の score, その他の要素) ○ Diversification ○ Context image similarity 36
  37. 37. Engine + Analytics 37
  38. 38. News Engine Analytics model improve ad-hoc analysis reporting use 38
  39. 39. Presto Hive Spark Hive MetaStore Data in S3 (RCfile, JSONー2012年 からのログ) SparkSQL/MLlib SmartNews UDF, UDAF (user defined function)Chartio / Shib ad-hoc analysis reporting pre-process model creation realtime analysis Streaming Data news engine Hive Azkaban SparkHive Spark 39
  40. 40. Spark MLlib ● Collaborative filtering ○ ALS (Alternating Least Squares) Pre Process on Hive SpakSQL Data in S3 RDD ALS MLlib on Spark Apache Spark on EMR http://www.slideshare.net/smartnews/aws-meetupapache-spark-on-emr 40
  41. 41. Spark Straeming for News Engine Signals Scorer Kinesis Advanced Scorer ● Spark 1.3 は厳しい ● Spark 1.4 からが良い 41
  42. 42. Summary 42
  43. 43. 43
  44. 44. 良質な情報を届けるために ● プラットフォームを進化させている ● より良質な情報を探すアルゴリズム開発に 集中できるようになってきている 44
  45. 45. 人材募集 こんなプラットフォームの上で、 ガツガツとアルゴリズムを作りたい人! もちろんプラットフォームを進化させる人も! 45
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×