WorkatoとGoogle 自然言語分析を使った業務オペレーションDX

こんにちは、ユーザーエクスペリエンス部の三浦です。

 複数ツールをまたいだ業務の際に手作業でオペレーションをしていませんか?

業務を自動化したいが、エンジニアではないし自分だけで出来ないのではないか、どうやって進めていけばよいのだろうか...といったお悩はありませんか?

 今回のブログでは、非エンジニアの僕が自分の抱えている業務を自動化するまでの道のりを共有させていただき、他の業務に応用する際のコツをお伝えできたらと思っています。

まずは今回の成果

自動化ツールと機械学習ツールを導入することで、改善前の4%程度の工数(130時間/月→5時間/月,1万件/日→100件/日)で業務が対応できようになり、判断基準を明確化することで業務の質も標準化できました。今後の業務オペレーションという領域についての考察としては、全体の90%程度は機械が自動で実行し、人間の役割としては残りの10%程度の領域において、業務の品質をチェックしたり問題を発見して解決策のアイデアを考えたりということがメイン役割になっていくように思います。というのも90%くらいの領域までは単純なパターンの積み重ねで整理できるように見え、一方で残りの10%はどうしても曖昧で複合的な判断が必要だからです。

業務自動化までの道のり

案件概要
  • コインチェックのチャット機能をチャットガイドラインに沿って適切にご利用いただいているかをモニタリングする業務です。
  • 業務オペレーションは、全チャット投稿に対してフィルタリングワードで検索をかけ、1件ずつ確認し、不適切な投稿を検知したらスプレッドシートに転記していくという方法でした。
  • 1日1万件以上の投稿を全件手動で確認していくとても時間がかかる作業でした。
利用ツール

自動化に向けて以下のツールを導入しました。

  • Workato:複数のSaaSをコーディングすることなくつなぐことのできるツール。iPaaSと呼ばれるジャンルのサービス。
  • Google CLoud AutoML Natural LanguageGoogleの自然言語処理サービス。テキストとカテゴリを対にした教師データをアップロードすると簡単に自分専用の機械学習のモデルを構築できる。

また、実装時には情報システム部門に所属するエンジニアにサポートしてもらい、業務側と2人3脚で無事自動化までたどり着くことができました。

自動化へ向けた作業工程
  1. 現状の作業工程を分解。
  2. 分解した工程の一部を作業自動化ツールにやらせた。まずは一番最初のインプットからデータ化。
  3. 一部を自動化できたので、他の部分も自動化し領域を拡大。
  4. 定まった基準で判断をするような工程についてAIを活用。基準を教え込ませて判断を自動化させた。
  5. 業務オペレーションDX
  6. 業務の改善のためにデータを蓄積して分析。よりよい業務ができるように改善の企画を立案。
1. 現状の作業工程を分解

まずは下記のようなイメージで現在行っている作業を分解して図式化してみました。対応範囲が広く情報も多い場合はホワイトボードツールなどを活用することをお勧めします。作業時間や人数。それぞれの作業段階での課題などを記載しどこから取り組むとインパクトが大きいか?どこからならば取り組みやすいかを検討しました。

f:id:miishun:20210803135528p:plain

2.最初のインプットをデータ化

全チャット投稿のデータをスプレッドシートに連携させて1投稿ずつ表形式でモニタリングできるように加工します。下図はWorkatoのRecipeと呼ばれる複数ツールを結合していく画面のイメージです。SlackとWorkatoを連携させる初期設定が結構大変だったのですが、そこだけで1つの記事が書けそうな感じなので今回は割愛します。このRecipeで該当のSlackに新しい投稿があると、スプレッドシートに投稿が自動で追記されるようになりました。

f:id:miishun:20210803135743p:plain

下記がスプレッドシートにアウトプットされた投稿のイメージです。1投稿ずつ格納されるようになりました。こうすることで、投稿数やモニタリングの評価結果をデータ化し易くなりました。ぼんやりしていた作業量が定量的に把握できるようになってきました。

f:id:miishun:20210713161342p:plain

3.自動化の領域を拡大

 モニタリング作業する画面がスプレッドシートに移ったことで、ok,ng,watch(要注意)の分類作業がだいぶ楽になってきました。要注意の投稿だけを抽出して最終アウトプットのスプレッドシートを作るのも、スプレッドシート間のコピーなので容易にできます。ここから更に自動化の範囲を拡大していくために、今度は分類作業自体を自動化できないでしょうか??

4.機械学習の導入

スプレッドシート上で管理するようになったことで投稿コンテンツと評価結果がセットになったデータが蓄積されてきたので、これを教師データとしていい感じの分類器を作ることはできないか??ということで、Google Cloudの AutoML Natural Languageを使ってこの業務専用のモデルを作ってみました。データをアップロードして学習を待つのみなので誰でも出来る...一般的な業務レベルであればゼロから作らなくてもこういうツールを使えばすぐにAIを活用できるんだ...恐るべしGoogleよ!という感じで1日くらい学習させて完了です。実際に精度を確かめるためにUI上でテストしてみましたが、十分活用できるものでした。

5.業務オペレーションDX

Workatoでは標準でAutoML Natural Languageを利用する準備がありませんでしたが、有用性をエンジニアに伝えたところその日の夜にはWorkatoのコネクタを作ってくれました。準備が整ったのでいざ実装。

下図のようにRecipeの中にAutoML Natural Languageの評価を組み込めるようになりました。

これでok,ng,watchの判定は自動で行われるようになったのでまた一つ楽になりました。

ここから業務の在り方をトランスフォームさせていきます。相場操縦、公序良俗に反する発言など複数の検閲基準のモデルを直列でかませることによりOKと評価される精度が向上してきたので、ng,watchのみをスプレッドシートに出力し、人間の業務としては絞られた投稿をチェックして微妙な塩梅を判断します。

これで作業の絶対量を大幅に削減(1万件/日→100件/日)させることができました。DX!

ついでに、分析した結果をTreasure Dataにデータを蓄積していき後々に統計的な分析をできるような準備もしておきます。

f:id:miishun:20210713163737p:plain

6.データ分析と業務改善の企画立案

データが蓄積されていくと、どういう日に投稿数が多いのか?月間で何人が投稿してくれているのか? ng,watchは増加傾向なのか?減少傾向なのか?ユーザーとクロスして分析するとどういう傾向がみえるのか?ok,ng,watchの判断基準は適切か?など業務を改善するためのヒントになる分析ができます。課題を見つけてさらに業務を改善する企画を考えてみましょう。

まとめ

今回の自動化の一連の流れを経て、ローコード、ノーコードツールってコードを触らないだけで、考え方としてはプログラミング脳がないと使いこなせないのだなと気づきました。プログラミング脳を得るために自分が変化していくのはなかなかストレスがかりますが、一定の成果が出てくるともっとプログラミングを学んでみたいに変わっていきます。非エンジニアとプログラミングの橋渡し役として、ローコード、ノーコードツールってすごく役に立つ存在だなと思いました。

 ストレスはかかったものの、漠然と自動化・効率化できそうと感じていた業務がどうプログラミングされていくのかを知れたことで、これまではエンジニアに完全にお願いしていた内容が頭の中で具体化され、コミュニケーションがスムーズにできそうな気がしています。

また、今回のような業務であれば業務オペレーション部門が主体となって改善できるようになったり、他にも自動化ができそうな業務に気づくことができたりと、自部署のパワーアップに期待できそうです。

後日談

その後全社的にこの活動を組織的に推進していこうという気運が高まり、プロジェクトチームが立ち上がり、現在業務ハックエンジニア(インターン)のポジションを募集しています。

当社で一緒に業務オペレーションを自動化していきたい!そんな方がもしいらっしゃいましたら是非ご応募お待ちしています。