Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
TS
Uploaded by
Takehiro Shiozaki
PDF, PPTX
9,766 views
iQONを支えるクローラーの裏側
Fashion Tech meetup #1 発表資料 iQONがどのようにして大量の商品データをECサイトからクローリングしているのかを説明
Technology
◦
Read more
23
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 35
2
/ 35
3
/ 35
4
/ 35
5
/ 35
6
/ 35
7
/ 35
8
/ 35
9
/ 35
10
/ 35
11
/ 35
12
/ 35
13
/ 35
14
/ 35
15
/ 35
16
/ 35
17
/ 35
18
/ 35
19
/ 35
20
/ 35
21
/ 35
22
/ 35
23
/ 35
24
/ 35
25
/ 35
26
/ 35
27
/ 35
28
/ 35
29
/ 35
30
/ 35
31
/ 35
32
/ 35
33
/ 35
34
/ 35
35
/ 35
More Related Content
PDF
OpenCVを使ったiQONの画像処理の全容
by
Kazuki Matsumoto
PDF
iQONの開発手法 at iQONエンジニアセミナー
by
Imamura Masayuki
PDF
Cloud Vsion APIによるGUIの検証自動化
by
Terui Masashi
PDF
やはりお前らのiOS7対応は間違っている
by
今城 善矩
PDF
Potatotips3 hoshi gaki_akira_iwaya
by
Akira Iwaya
PDF
Androidでへっぽこ思考戦車を作ってみた
by
Yusuke Ohmichi
PDF
マルチデバイスに対応するためのAuto layout
by
asakahara
PPT
類似画像検索APIを作ってみた話
by
K Kimura
OpenCVを使ったiQONの画像処理の全容
by
Kazuki Matsumoto
iQONの開発手法 at iQONエンジニアセミナー
by
Imamura Masayuki
Cloud Vsion APIによるGUIの検証自動化
by
Terui Masashi
やはりお前らのiOS7対応は間違っている
by
今城 善矩
Potatotips3 hoshi gaki_akira_iwaya
by
Akira Iwaya
Androidでへっぽこ思考戦車を作ってみた
by
Yusuke Ohmichi
マルチデバイスに対応するためのAuto layout
by
asakahara
類似画像検索APIを作ってみた話
by
K Kimura
What's hot
PDF
インフラエンジニアってなんでしたっけ(仮)
by
Akihiro Kuwano
PDF
第三回北海道ワトソン勉強会 Watson + IoT 丼
by
K Kimura
PDF
RHEL8 on Alibaba Cloud
by
Shinya Mori (@mosuke5)
PDF
20211217 Alibaba Cloudでだってテスト駆動インフラ構築したい
by
Shinya Mori (@mosuke5)
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
PDF
テックブログのすゝめ -アウトプットで知識習得サイクルを回そう-
by
Shinya Mori (@mosuke5)
PPTX
タイムカード打刻チャットボット「ごえもん」誕生話
by
典子 松本
PDF
iOS 7 対応事例 FastCheckin
by
Kosuke Ogawa
PDF
Baa sでお気楽アプリ開発
by
Yusuke Ohmichi
PDF
MyBatis を利用した web application 開発についてのご紹介
by
Tokuhiro Matsuno
PDF
スマホアプリ開発者のためのWeb api開発入門の入門
by
Kenyu Miura
PPTX
Angular js開発事例
by
Shun Takeyama
PPTX
社内LTネタ ReactNative
by
Oguri Toru
PDF
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
by
典子 松本
PDF
Microsoft Flow 改め、Power Automateはじめました。
by
典子 松本
PPTX
iOSでライブラリを提供する際に気をつけたいこと
by
asakahara
PDF
我が家のフロントエンド開発事情
by
Naoki Yamada
PPTX
AWS ソリューションアーキテクト アソシエイト受験レポ
by
かの たん
PPTX
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
by
Takahiro Moteki
PPTX
Jsugプレゼン資料new
by
Wataru Kakizoe
インフラエンジニアってなんでしたっけ(仮)
by
Akihiro Kuwano
第三回北海道ワトソン勉強会 Watson + IoT 丼
by
K Kimura
RHEL8 on Alibaba Cloud
by
Shinya Mori (@mosuke5)
20211217 Alibaba Cloudでだってテスト駆動インフラ構築したい
by
Shinya Mori (@mosuke5)
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
テックブログのすゝめ -アウトプットで知識習得サイクルを回そう-
by
Shinya Mori (@mosuke5)
タイムカード打刻チャットボット「ごえもん」誕生話
by
典子 松本
iOS 7 対応事例 FastCheckin
by
Kosuke Ogawa
Baa sでお気楽アプリ開発
by
Yusuke Ohmichi
MyBatis を利用した web application 開発についてのご紹介
by
Tokuhiro Matsuno
スマホアプリ開発者のためのWeb api開発入門の入門
by
Kenyu Miura
Angular js開発事例
by
Shun Takeyama
社内LTネタ ReactNative
by
Oguri Toru
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
by
典子 松本
Microsoft Flow 改め、Power Automateはじめました。
by
典子 松本
iOSでライブラリを提供する際に気をつけたいこと
by
asakahara
我が家のフロントエンド開発事情
by
Naoki Yamada
AWS ソリューションアーキテクト アソシエイト受験レポ
by
かの たん
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
by
Takahiro Moteki
Jsugプレゼン資料new
by
Wataru Kakizoe
Viewers also liked
PDF
コンピュータビジョンの今を映す-CVPR 2017 速報より- (夏のトップカンファレンス論文読み会)
by
cvpaper. challenge
PDF
ストリーム処理エンジン「Zero」の開発と運用
by
Eiichi Sato
PPTX
Ameba広告の配信制御アーキテクチャを刷新した話 ~オレシカナイトvol.3~
by
Yusuke Komahara
PDF
【Draft】サービス説明資料2017.03.01
by
Kohta Wada
PDF
ICCV 2017 速報
by
cvpaper. challenge
PPTX
NIPS2015読み会: Ladder Networks
by
Eiichi Matsumoto
コンピュータビジョンの今を映す-CVPR 2017 速報より- (夏のトップカンファレンス論文読み会)
by
cvpaper. challenge
ストリーム処理エンジン「Zero」の開発と運用
by
Eiichi Sato
Ameba広告の配信制御アーキテクチャを刷新した話 ~オレシカナイトvol.3~
by
Yusuke Komahara
【Draft】サービス説明資料2017.03.01
by
Kohta Wada
ICCV 2017 速報
by
cvpaper. challenge
NIPS2015読み会: Ladder Networks
by
Eiichi Matsumoto
iQONを支えるクローラーの裏側
1.
iQONを支えるクローラーの裏側 VASILY,Inc. 塩 健弘
2.
塩 健弘 大学時代はロボコンで8bitマイコンを使ったり 原子核物理の研究でFPGAを使った信号処理ボードを作ったり 2015年にVASILYに新卒入社して、クローラーの刷新をしたり VASILY, Inc. software
engineer
3.
日本最大級の ファッションアプリ [特徴] ユーザーがファッションアイテムを組み合わせてコーデを作れる
4.
気に入ったアイテムがあったら、 その場でECサイトに飛んでお買い物できる 提携ECサイト
5.
日本中のECサイトの商品情報をクローリング (価格、写真、在庫 etc.)
6.
クロール対象の ECサイト: 約400サイト 商品数:約700万商品
7.
全体構成 Download Worker Parse Worker Sync Worker ImageProcess Worker Download Worker ImageProcess Worker ・・・ ・・・ ・・・ ・・・ クローリング処理を4つの段階に分けて分散処理 • ページダウンロード • DOM解析 •
マスターテーブルへの同期 • 画像処理 ECサイト Sync Worker Parse Worker
8.
ワーカー間のメッセージパッシング Message Queue (Redis) dequeue JOB Sidekiqを利用した Producer-Consumerパターン WorkerA WorkerB WorkerA WorkerB ・・・ ・・・ enqueue JOB
9.
ページダウンロード Download Worker Download Worker Message Queue ECサイト Sender ・・・ Message Queue 1. enqueue MySQL 2.
dequeue 3. lock DistMutex 4. download 5. save 6. enqueue
10.
Download Worker Download Worker Message Queue ECサイト Sender ・・・ Message Queue 1. enqueue MySQL 2.
dequeue 3. lock DistMutex 4. download 5. save 6. enqueue ページダウンロード
11.
Download Worker Download Worker Message Queue ECサイト Sender ・・・ Message Queue 1. enqueue MySQL 2.
dequeue 3. lock DistMutex 4. download 5. save 6. enqueue ページダウンロード クロール対象URLを決定 ECサイト 商品リストページ 過去にクロールした商品 (in DB)
12.
Download Worker Download Worker Message Queue ECサイト Sender ・・・ Message Queue 1. enqueue MySQL 2.
dequeue 3. lock DistMutex 4. download 5. save 6. enqueue ページダウンロード
13.
Download Worker Download Worker Sidekiq queue ECサイト Sender ・・・ Message Queue 1. enqueue MySQL 2.
dequeue 3. lock DistMutex 4. download 5. save 6. enqueue ページダウンロード スケジューリング 1 request / s という紳士協定 時限付き分散Lock (https://github.com/vasilyjp/redis- dist-mutex) →ワーカーの稼働率向上 [Ref] vasily tech blog Redis::DistMutex 時限付き分散ロックで効率 良くサイトクロールをしよう (http://tech.vasily.jp/crawl-sites-with- redis-dist-mutex/)
14.
Download Worker Download Worker Sidekiq queue ECサイト Sender ・・・ Sidekiq queue 1. enqueue MySQL 2.
dequeue 3. lock DistMutex 4. download 5. save 6. enqueue ページダウンロード
15.
Download Worker Download Worker Sidekiq queue ECサイト Sender ・・・ Sidekiq queue 1. enqueue MySQL 2.
dequeue 3. lock DistMutex 4. download 5. save 6. enqueue ページダウンロード ダウンロード open-uriでは機能不足 ・リダイレクト時の処理 ・POSTリクエスト ・UserAgent → net/httpをベースにした HTTPクライアントを実装
16.
Download Worker Download Worker Sidekiq queue ECサイト Sender ・・・ Sidekiq queue 1. enqueue MySQL 2.
dequeue 3. lock DistMutex 4. download 5. save 6. enqueue ページダウンロード
17.
DOM解析 Parse Worker Parse Worker Message Queue ・・・ Message Queue DynamoDB 1. dequeue 4. save 5.
enqueue DSL (XPATH, RegExp, etc.) rubyコード片 CrawlerGenerator generate 3. include3. include MySQL 2. load
18.
DOM解析 Parse Worker Parse Worker Message Queue ・・・ Message Queue DynamoDB 2. dequeue 3. save 4.
enqueue DSL (XPATH, RegExp, etc.) rubyコード片 CrawlerGenerator generate includeinclude CrawlerGenerator クローラー作成を効率化するための社内ツール 項目抽出のための設定を入稿できる
19.
クローラー大量生産の課題 ECサイトごとに抽出するデータの場所が異なる 15項目 400サイト =
6000項目
20.
CrawlerGenerator クローラー作成を効率化するための社内ツール • 項目抽出のための設定(XPATH, 正規表現,
文字列操作)を入稿可能 • 入稿した項目はその場で正しいかどうかをプレビュー可能 • ツールでは手に負えない時にはrubyコードをマージすることも可能
21.
CrawlerGenerator このツールを使用してクローラーを作ったのは非エンジニア XPATHと正規表現のマニュアルを整備し、誰でもクローラーが作れるように
22.
CrawlerGenerator • Chromeの拡張機能 XPATH
Helperも利用 • XPATHを効率的に抽出 XPATH Helper(https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl)
23.
DOM解析 Parse Worker Parse Worker Message Queue ・・・ Message Queue DynamoDB 4. save 5. enqueue DSL (XPATH,
RegExp, etc.) rubyコード片 CrawlerGenerator generate 3. include3. include dequeueしたジョブ毎に、 別々の設定をincluce MySQL 2. load 1. dequeue
24.
DOM解析 Parse Worker Parse Worker Message Queue ・・・ Message Queue DynamoDB 4. save 5. enqueue DSL (XPATH,
RegExp, etc.) rubyコード片 CrawlerGenerator generate 3. include3. include 解析結果のデータを DynamoDBに保存 MySQL 2. load 1. dequeue
25.
商品カテゴリの自動分類 MeCabを利用した形態素解析 カテゴリーを表現している単語の抽出 iQONのカテゴリーにマッピング ブランド情報と照合して異常を排除 テキスト情報を使用 • 商品名 • 商品説明文 •
パンくずリスト
26.
商品カテゴリの自動分類 MeCabを利用した形態素解析 • 基本的にはIPA辞書と新語辞書(mecab-ipadic-neologd)を使用 • ファッションアイテム名やブランド名が不十分だったので、 ファッション用語数万語を独自に追加 まるでぬいぐるみのような思わず抱きしめたくなるアイテムです。 まるで
ぬいぐるみ の ような 思わ ず 抱きしめ たく なる アイテム です 。
27.
商品カテゴリの自動分類 カテゴリーを表現している単語を抽出 印象的な幾何学柄のジャガードニットプルオーバー。インパクトのあるモード なアイテムですが、モノトーンカラーなので、様々なボトムに合わせやすいです。繊 細なプリーツスカートやギャザースカートなどフェミニンアイテムとも 好相性です。 • カテゴリー判定の判断材料となる単語を自動抽出 • 複数個の単語が検出された場合は文脈を考慮して1つに絞り込む ニットプルオーバー
28.
商品カテゴリの自動分類 iQONのカテゴリーにマッピング セーター ニットプルオーバー ニット 傘 Umbrella レインブーツ レイングッズ 抽出された単語をiQONのカテゴリーに変換
29.
商品カテゴリの自動分類 ブランド情報と照合して異常を排除 ブランド カテゴリーの組み合わせがアリエナイ判定結果を排除 • 過去の人力判定結果から条件付確率
p(カテゴリ¦ブランド)を求める • 扱っているカテゴリーがほぼ1つのブランドの誤判定の抑制に効果的
30.
商品カテゴリの分類 約100カテゴリへの分類で精度97%を達成 ワンピース スカート パンプス
31.
マスターテーブルへの同期 Sync Worker Sync Worker Message Queue ・・・ Message Queue MySQL 1. dequeue 3. save 4.
enqueue if item is new DyamoDB 2. load ParseWorkerがMySQLに対して直接書き込むと MySQLへの負荷が高まるので適度に速度を抑える
32.
画像処理 アイテム単体画像の判定 (モデル着用画像、 マネキン着用画像との区別) 精度97 % 画像の透過処理 (アイテム単体画像のみ)
33.
エラーログの集計 Worker Worker ・・・ ・・・ ECサイトのサイト変更を素早く検知したい →各処理のログを全てBigQueryに保存 & 異常検知 (パース中のエラー、画像処理中のエラー、カテゴリー判定、etc.)
34.
異常検知 BigQuryの内容を集計して自動レポート生成(SpreadSheet) 緊急度が高い異常を検知した時にはslackにアラート 自動集計(daily) アラート
35.
ありがとうございました • クローラーについて聞きたい人お待ちしてます • 興味ある方の入社お待ちしています!
Download