Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

機械学習 × グラフデータベース × チャットで「組織内のカベ」を取り払え!【Developers Boost】

【A-10】カベを壊せ!「機械学習」×「グラフデータベース」×「チャット」で繋ぐヒューマンリレーションシップ!!

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/01/16 11:00

 「他部署の中で、誰がどの技術に詳しいのかわからない」「これまで話したことのない○○さんは、いったい何に興味を持っているのだろう」――企業では、こうした「コミュニケーションの断絶」が頻繁に起きる。この課題を解決するため、株式会社ドリーム・アーツは「人と人との新たな関係性」を生み出すためのチャットBOTを開発。同社の一ノ瀬翔吾氏が、翔泳社主催の若手エンジニア向けカンファレンス「Developers Boost(デブスト)~U30エンジニアの登竜門~」で、チャットBOT実現までの道のりと、そのカギとなった3つの要素を語った。

目次
株式会社ドリーム・アーツ プロダクトデザイン本部 hibikiグループ MMT制作委員会(Mastodon Meetup at Tokyo) 一ノ瀬翔吾氏
株式会社ドリーム・アーツ プロダクトデザイン本部 hibikiグループ MMT制作委員会(Mastodon Meetup at Tokyo)
一ノ瀬翔吾氏

「特定のキーワードについて知っている人」を投稿履歴から抽出

 ドリーム・アーツ社が開発したチャットBOTは、チャットサービス「知話輪(Chiwawa)」上で動作する。

 その仕様はこうだ。例えば、「Vue.jsについて知りたい」と思った場合、チャットBOTに対して「Vue.jsに詳しい人を教えて」とメッセージを送る。すると、チャットBOTが「Vue.jsに詳しそうな人」かつ「メッセージ投稿者が過去にあまり関わったことのない人」をレコメンデーションしてくれるのだ。

チャットBOT実現のために使用された技術。
チャットBOT実現のために使用された技術。

 「チャットBOTで使われている技術は6種類です。『知話輪』のアプリケーション、グラフデータベースのAzure Cosmos DB、Pythonスクリプト、機械学習で作成した学習済みモデル、知話輪のサーバー、Flaskサーバーとなっています」

 チャットBOTの動作は2つのステップから構成されている。1つ目のステップでは、データを投入して学習済みモデルを作る。2つ目のステップでは、そのモデルをベースにユーザーのレコメンデーションを行っている。

 まずは1つ目の、データを投入して学習済みモデルを作るステップについて解説したい。本アーキテクチャでは、グラフデータベースのAzure Cosmos DBにチャットの投稿履歴データを格納する。グラフデータベースとは、リレーションシップの格納とナビゲートを目的として構築されたデータベースである。Azure Cosmos DB以外にも、Neo4jやOrientDB、Amazon Neptuneなどがよく用いられる。

 このデータベースに対し、メッセージ投稿者が持つ『関係性』の情報を投入していく。格納されるのは、ユーザーや所属するグループ、投稿されたメッセージ、タグ、リアクションなどである。

 次に、機械学習によってデータの学習を行う。ベースの技術として用いられているのは、Doc2VecやWord2Vecといった機械学習の手法だ。

 Doc2Vecは、文書をベクトルとして扱い他文書のベクトルとの比較を行うことで、似た文書を分類・取得できる仕組みだ。その内部で用いられているのがWord2Vecである。Word2Vecでは単語をベクトルとして扱う。ニューラルネットワークを用いて機械学習を行い、ある単語の周辺に別の単語が出る確率を学習させている。

 「このプロジェクトでは、Doc2Vecを応用してUser2Vecという手法を生み出しました。Doc2Vecにおける文書をチャットの投稿履歴データに置き換えることで、あるキーワードを投稿したことのある人、つまりキーワードについて知っている人を抽出できると考えたのです。この仕組みを用いて、学習済みモデルを作成しました」


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:【Developers Boost】セッションレポート
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5