SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【Developers Boost】セッションレポート (PR)

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

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

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

 「他部署の中で、誰がどの技術に詳しいのかわからない」「これまで話したことのない○○さんは、いったい何に興味を持っているのだろう」――企業では、こうした「コミュニケーションの断絶」が頻繁に起きる。この課題を解決するため、株式会社ドリーム・アーツは「人と人との新たな関係性」を生み出すためのチャット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における文書をチャットの投稿履歴データに置き換えることで、あるキーワードを投稿したことのある人、つまりキーワードについて知っている人を抽出できると考えたのです。この仕組みを用いて、学習済みモデルを作成しました」

次のページ
業務のチャット化が、コミュニケーション履歴の活用を容易にした

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【Developers Boost】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11309 2019/01/16 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング