CrowdWorksにおける機械学習活用 取り組み2018/01/27株式会社クラウドワークスCTO 弓山彬
View Slide
自己紹介● 弓山 彬 (ゆみやま あきら)● 株式会社クラウドワークス 執行役員 CTO● 経歴○ 2011年4月 インターネットイニシアティブ入社○ 2015年4月 クラウドワークス入社○ 2016年7月 クラウドワークス CTO就任● 業務○ マネジメントしないCTO○ 最近:データ分析基盤 構築、新サービス アーキテクチャレビュー、機械学習活用プロジェクト 推進、技術方針・戦略 策定、 ...
CrowdWorksについて
サービス 成長(ユーザ数)クラウドワークスについて
サービス 成長(仕事 投稿数)ユーザ数 増加に伴って、仕事 依頼数も堅調に推移クラウドワークスについて
サービス 抱える課題
悪質案件
ユーザによる不適切投稿(スパム投稿) 増加● CGM (ユーザ投稿型メディア) に共通する課題● 不適切な投稿が増えることによって○ 目的 仕事を見つけづらくなる○ サービス品質 低下● 不適切な投稿(仕事募集) 例:○ サービス 意図に反する投稿(アフィリエイト、情報商材、等)○ 外部サービス 規約に反する投稿(ランキング操作、不正な評価 依頼、等)○ 成功報酬、雇用を前提とした募集など、サービス 利用規約を把握せぬまま投稿するケースクラウドソーシング・サービス 抱える課題
ユーザによる不適切投稿(スパム投稿) 増加クラウドソーシング・サービス 抱える課題利用者が増えてメディア媒体として 価値があがる悪質案件 急増が課題になっていたスパムに狙われやすくなる
悪質案件に対する取り組み
悪質案件に対する従来 取り組み悪質案件に対する取り組みユーザからフィードバック● 「違反報告」によるフィードバック収集悪質案件 検出● 「禁止ワード」チェック(正規表現)● 機械学習 活用
ユーザフィードバック 収集を増やす悪質案件に対する取り組み
ユーザフィードバック 収集を増やす悪質案件に対する取り組み● シンプルな選択肢で回答しやすい● スマホアプリ、Webページともに実装(導線を増やした)● 多く フィードバックが集まり、検索・違反検出 改善に繋がった
悪質案件に対する従来 取り組み悪質案件に対する取り組みユーザからフィードバック● 「違反報告」によるフィードバック収集悪質案件 検出● 機械学習 活用● 「禁止ワード」チェック (正規表現)
「禁止ワード」による違反案件 検出● 違反案件 文面に頻出するキーワードを列挙○ HTMLタグ除去、Unicode正規化 後、正規表現で一致判定○ いずれか 「禁止ワード」が含まれる場合に事務局チェック 対象とする違反案件に対する取り組み事務局 目視チェック後、違反であれ 掲載停止や利用制限といった対応を実施☞ 自動処理が可能な精度に至っていなかった
機械学習 活用● 教師データが存在する○ ⇒ 過去 ユーザサポートチーム 判断結果が残っている● 人によって判断基準 ブレにくい○ ⇒ 「あなたにおすすめ」 人それぞれ 好みへ 依存度が高い○ ⇒ 「よくない」「あやしい」 人による判断 ブレが少ない● 判定基準が明確である○ ⇒ 「利用規約」「ガイドライン」として基準が言語化されている○ ⇒ 迷った時 最終判断できる人が社内にいる(ユーザサポートチーム)悪質案件 検出
試行錯誤するも..● word2vec● doce2vec● SVM● LSTM● …● 全てOKか、全てNGに...悪質案件 検出 - 機械学習 活用
ベイジアンフィルタによる違反案件 検出
違反案件 検出処理 流れ違反案件検出 高精度化に向けた取り組み前処理 ● 必要なデータセット 抽出● HTMLタグ 除去、Unicode (NFKC)正規化検出処理● 形態素解析にMeCabを利用○ mecab-ipadic-NEologd を辞書として利用○ 抽出対象 名詞、動詞、形容詞、形容動詞、副詞○ 装飾用記号列など 除外した○ 活用するも について 基本形 (base form)を用いた● ベイジアンフィルタで判定後処理 ● サービス本体と 連携● 事務局による目視チェック結果 フィードバック
ベイジアンフィルタによる検出違反案件検出 高精度化に向けた取り組み違反案件 非違反案件違反判定 807 77非違反判定 193 923適合率 再現率 F値0.913 0.807 0.857ベイジアンフィルタ 性能評価違反案件 非違反案件違反判定 326 100非違反判定 674 900適合率 再現率 F値0.765 0.326 0.457禁止ワードチェック 性能評価● 適合率、再現率ともに改善した● 複数 語 出現傾向をもとに判定することで誤判定を減らせた● 従来検知できなかった種類 違反案件も大部分を検知できた
ベイジアンフィルタによる検出をサービスに適用する違反案件検出 高精度化に向けた取り組み● 従来手法に比べて、適合率が大きく改善(76%→91%)したこと☞ 自動非公開処理が現実味を帯びてきた○ 違反で無いも を非公開にしてしまうケース ゼロに できない○ そ 対応コストが許容可能な範囲に収まる程度に性能改善できた手法 適合率 再現率 F値正規表現 0.765 0.326 0.457ベイジアンフィルタ 0.913 0.807 0.857
ベイジアンフィルタ サービス環境へ 組み込み違反案件検出 高精度化に向けた取り組みサービス提供用DB機械学習用DB必要なデータ み取得・同期する判定結果を HTTP JSON API で連携する機械学習用EC2インスタンスRails App Serverサービス環境
ベイジアンフィルタ サービス本体と 連携違反案件検出 高精度化に向けた取り組み学習フェーズ(1回/day)● 1日1回、N日前〜N+60日前 60日分 仕事依頼データを対象に学習させる (N=3〜7)● 違反案件 傾向変化に追従させるため● 直近数日分 目視チェック未完了 場合があるため除外判定フェーズ(1-2回/hour)● 新着 案件に対して判定処理を実施● 違反と判定されたも HTTP JSON API 経由でサービス本体に連携し掲載停止処理を実施
ベイジアンフィルタを組み込んでみて (まとめ)● 今回 取り組みによって、初めて「禁止ワード」チェック(正規表現) 性能を定量的に評価した○ 従来 感覚値で会話していたも が、定量的に評価し、改善・予測できるようになった● 人力 対応コストを大幅に削減できた○ 目視で 巡回を大幅に減らすことができた○ 人力チェック 結果を次回ベイジアンフィルタ 学習にフィードバックすることで、追加コスト無く継続的に性能を維持できるようになった○ アーキテクチャ 工夫により、新たな取り組み 成果を速やかにサービス適用できた違反案件検出 高精度化に向けた取り組み
振り返りとこれから
「ど ような課題を解決したい か」をしっかりと定義することが重要
これまで:守り悪質案件 検出RPA(自動化)による工数削減
これまで:守り悪質案件 検出RPA(自動化)による工数削減これから:攻めサービス価値を大きくする
良い “仕事上 出会い” を創っていきたい
マッチング 改善● いい仕事と、いいクラウドワーカーが出会い環境を作りたい○ いい仕事、いいクラウドワーカー 特徴 、状況(コンテキスト)によって違う○ いいエンジニアが、いいデザイナーと 限らない● 今よりも、もっと良い出会いが起こりやすく● クラウドワーカー スキルアップ、ステップアップ 支援
ユーザに届ける”価値”を最大化するために、何が必要か?
ユーザに価値を届ける”価値”を最大化するために● ユーザ視点で課題を捉え、プロダクトが届けるべき”価値”を整理する● プロダクトオーナー、UXデザイナーを中心に、メンバー全員で議論する● “価値”を届けるために、機械学習が生きる場面があれ 、活用していく● プロダクトオーナー(PO)、エンジニア、UXデザイナー、混成チームで”ユーザー 課題”に向き合い続ける
http://designer.crowdworks.co.jp/entry/customer-journey-map-uxdesignhttp://designer.crowdworks.co.jp/entry/three-conscious-things
https://qiita.com/yo-iida/items/053f7613a68e086a01a4
We're Hiring● インターネットを通じた “仕事” マッチングをより良くしていきたい● ユーザ 課題に向き合いながら、サービスを成長させていきたい方● プロダクトオーナー、デザイナー、エンジニア 混成チームで働きたい方https://crowdworks.doorkeeper.jp/events/699112月21日(水) 19:30〜弊社オフィス(恵比寿ガーデンプレイス)にてミートアップ開催