Upload
smartnews-inc
View
2.362
Download
7
Embed Size (px)
Citation preview
SmartNews の Webmining を支えるプラットフォーム
第48回 データマイニング+WEB @東京( #TokyoWebmining 48th ) ーAWS上での分析基盤アーキテクチャ最前線 祭りー
西岡悠平 (スマートニュース株式会社)
1
マネージャ データサイエンス・マシンラーニング担当 スマートニュース
● 2003年 京都大学大学院情報学研究科複雑系科学コース修了。
● ネットワーク機器メーカーに入社、 2005年上半期の未踏ソフトウェア創造事業
「スーパークリエータ」に認定される。
● その後、株式会社四次元データ Web技術研究部を経て、2008年に楽天株式会社に入社。レ
コメンデーションエンジンをはじめとした先端技術の研究開発をリードする。
● 2014年9月にスマートニュース社入社。
西岡悠平
2
アイスブレイク
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 EngineHistory and Overview
16
スタートアップあるある
創業者が偉大すぎる
17
Crowsnest
[Ref]SmartNews Compass Keynote Sessionhttp://about.smartnews.com/ja/compass_2014/
18
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 今日
CrowsnestSmartNews APIアプリ
19
Before After
Monolithic Microservices
DevelopOriginal Database & Queue
Use Manged Servicesas much as possilble
DynamoDB CloudSearch Kinesis
20
Seasar Spring Boot
[告知]Seasar Conference 20152015年9月26日(土)
● Great Eco System● Microservices Friendly
21
API ( Swagger UI )
(ref) http://petstore.swagger.io 22
アルゴリズムの改善
プラットフォームの面倒
アルゴリズムにまつわる話( deploy や test )
Cloud
アルゴリズムの改善
Managed Service
Cloud
プラットフォームの面倒
アルゴリズムにまつわる話
Before After
23
News EngineInside News Engine
24
ArticleAnalysis
Scorer
News Ranking
API
News Engine System Overview
metadata
score(a)
(b)
(c)
(d) (e)
DataImporter
(f) (g)
Crawler
external signals
internal signals
article inventory article index
25
(a)Crawler
● マナーを守って
● 秘伝のタレがギッシリ○ (例) robots.txt で OutOfMemory Error
26
(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
(b)Article Analysis - Classification
Globally Scalable Web Document Classification Using Word2Vechttp://www.slideshare.net/kouheinakaji/smart-news-documentclassification?qid=c9b6df62-1fdd-4bf8-9543-bff0fba92dac&v=default&b=&from_search=2
28
(c)Scorer
ScoreTop-N
in CloudSearch
Ranking Process
スコアリングの詳細は極秘
internal signals
exnternal signals
29
(d) article inventoryURL
metadata
features for score
[...]
{a: 3, b:4....}
良いところ● scalable● stable● JSON で複雑なデータ構造を扱える● 要素の中身を atomic に変更可能
出来ないこと● 高度な検索
30
(e) DynamoDB から CloudSearch へ
TransformerFilterFilterTransformerFilterTransformerCosumer Uploader
byte stream JSON Objectfor DynamoDB
JSON Object for CloudSearch SDF format
DataImporterService
DocuentConverterService
IRecordProcessr called by Worker
31
(f) CloudSearch - Basic
...
... ...
...
Filter Sortby score function top-n
High Score
Low Score
n
32
(f) CloudSearch - score functionExamples
● 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
(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
(f) CloudSearch 残念なこと
(1) partial update が出来ない
(2) instance 数の変更時の挙動
(3) Solr のプラグイン( dedupe 処理など ) 使えない
35
(g) News Ranking API● top-n に対して
○ より詳細な scoring ■ ( CloudSearch の score, その他の要素)
○ Diversification○ Context
image similarity
36
Engine + Analytics
37
News Engine
Analytics
model
improve
ad-hocanalysis
reporting
use
38
Presto Hive Spark
Hive MetaStore
Data in S3 (RCfile, JSONー2012年 からのログ)
SparkSQL/MLlibSmartNews UDF, UDAF(user defined function)Chartio / Shib
ad-hocanalysis reporting pre-process model
creationrealtimeanalysis
StreamingData
news engine
Hive
Azkaban
SparkHive Spark
39
Spark MLlib
● Collaborative filtering○ ALS (Alternating Least Squares)
Pre Processon Hive SpakSQLData
in S3 RDD ALS MLlibon Spark
Apache Spark on EMRhttp://www.slideshare.net/smartnews/aws-meetupapache-spark-on-emr
40
Spark Straeming for News Engine
Signals Scorer
Kinesis
Advanced Scorer
● Spark 1.3 は厳しい● Spark 1.4 からが良い
41
Summary
42
43
良質な情報を届けるために
● プラットフォームを進化させている
● より良質な情報を探すアルゴリズム開発に集中できるようになってきている
44
人材募集
こんなプラットフォームの上で、
ガツガツとアルゴリズムを作りたい人!
もちろんプラットフォームを進化させる人も!
45