Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

8,341 views

Published on

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

Published in: Engineering
  • Hello! High Quality And Affordable Essays For You. Starting at $4.99 per page - Check our website! https://vk.cc/82gJD2
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

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

×