- 業務コンサルティング
- コーポレートスタッフ
- エンジニア
- Other occupations (3)
- Development
- Business
- Other
こんにちは!人事の髙橋です。
8月5日~9日の5日間、第1回エンジニアインターンを開催しました!!
(早いもので今年で3年目を迎えました。はやいはやい。去年はこんな感じでした)
ありがたいことに予想をはるかに超える多くの学生さんからの応募があつまり、選考でメンバーを厳選させていただきました!全国津々浦々から選ばれし9名でスタートした今回のインターン。テーマはズバリ、
『NLP(自然言語処理)で、働く人の「 協創 」を実現するサービスを開発しよう!』
「 協創 」とは、ドリーム・アーツが大切にしている考え方のひとつです。
外部環境が激しく変化する世の中で、企業が成長していくためには、働く人同士が心を合わせ意識を共有し、ともに新たな価値を生み出すこと =「 協創 」が欠かせません。
そこで、ドリーム・アーツのビジネスチャットアプリ「 知話輪 」とNLP(自然言語処理)・機械学習を掛け合わせ、企業で働く人たちの「 協創 」を実現し世の中を変革すべく、新たなサービスを創り出そう!というのが今回のテーマ。
実際の企業のコミュニケーションにおける非構造化データをNLP・機械学習を用いて解析し、働く人の「協創」を手助けするような新サービスを開発して知話輪のチャットbotという形でアウトプットします。
何をつくるのかテーマ設定から、スケジュール・実装・発表までのすべてを各チームにお任せ。各チーム2人のメンターがサポートにまわり、学校ではなかなか経験できないチーム開発の流れをリアルに体験してもらいました。
スケジュールはこんな感じ。開発そのものは実質3.5日、ぎゅっと詰まった1週間です。
1日目夕方~:アイディアソン
2日目朝:各チーム目標発表
3日目夕方:中間レビュー
4日目:デモ発表に向けてひたすら開発
5日目:成果発表!
最終日の成果発表会で、社員を前にデモ&発表をするというゴールを目指し駆け抜けた3チーム。
それぞれどんな結果になったのでしょう?サクッとご紹介します!
★★★チーム「サモエド」
プロジェクト組成bot
「お客さまはA社で、Java開発に詳しいメンバー4人でチームを作って」など条件を入力すると、チャットデータ・過去の週報・営業レポートの情報から、それに詳しいエンジニアと営業のメンバーをピックアップ。希望に合ったプロジェクトメンバーの提案をしてくれるというスグレものができました。
アイディアソンでは、
- 知りたいことを尋ねると、過去の会話を教えてくれるbot
- 直近の重要なメッセージを知らせてくれるbot
なども挙げられていましたが、複数のデータソースが扱える点やマッチング要素、botとしての工夫がいくらでもできそう・・・などの点から、プロジェクトメンバーを提案するbotに決定。どのチームよりも多くのデータソースを活用していたのが、このサモエドチームでした。
はじめに着手したのは、技術的なキーワードからそれに詳しい社員を推薦する部分です。集めてきたテキストデータを社員単位に分け、LDAを用いてトピック分析を行ったのですが、なかなか思うような結果が得られず・・・。そこで、Doc2Vecを用いて社員をベクトル分散表現にするよう方針転換。こちらは、上手くいったようです!
コマンド形式ではなく自然言語により近い入力に対応したり、メンバー構成を複数考えて提案してくれる機能を追加するなど工夫をちりばめ、「協創」を加速させるbotを仕上げてくれました。
データの前処理や形態素解析に時間をとられ苦戦しつつも、それぞれの役割に注力し進捗を都度共有しながら進めることで、スムーズなチーム開発ができたようです。
★★★チーム「いみんぐゎ」
※いみんぐゎ・・・沖縄方言で「夢」を意味する「いみ」と「犬」を意味する「いんぐゎ」から
表彰bot「Chiwaward」
「協創」のベースとなる、雰囲気の良い組織づくりに着目したこちらのチーム。
「ポジティブ発言ランキング」「ありがとうを言った数ランキング」「食事に気を遣った数ランキング」「リアクションもらえる率診断」という4つの指標から、組織の雰囲気づくりやメンバー同士の信頼関係構築に貢献した人を表彰してくれるbotを考えました。
アイディアソンで出てきた案の数は3チームの中でダントツ。
- 相手の機嫌の良さを判断して、こっそり教えてくれるbot
- 知らない専門用語をこっそり教えてくれるbot
などさまざま出てきたなかから、表彰botに決めました。4つの指標を求めるために、基本的には知話輪のグループに投稿された会話データを使用したいみんぐゎチーム。特に苦労したのは「ありがとうを言った数ランキング」と「リアクションもらえる率診断」の実装だったそう。
「ありがとうを言った数ランキング」を求める際ぶちあたったのが、日本語特有の「表記ゆれ問題」。これを解決するために、当初は会話データを一度英語に翻訳し「thanks」の回数をカウントする方法を取ろうとしましたが、API制限と時間の都合で断念・・・。感謝を述べる単語のパターンマッチングでランキングを求める方法に変えました。
「リアクションもらえる率診断」では、発言とそれに対するリアクションの有無を1件のデータとして、4万件のデータをLSTMで学習させました。この時、過学習を起こさないようなデータの選択や、ファインチューニングによる推定精度の向上のための実装にとても苦労していたようです。
前週からの伸び率評価など、まだまだやりたいことはあったものの時間の都合で泣く泣く断念。リソースが限られた中で価値を最大化するためのタスクの可視化や取捨選択、そしてタイムマネジメントの重要性も学べたようです。
★★★チーム「ボストンテリア」
川柳bot
知話輪に投稿された文章を要約し、ポイントをおさえた川柳をつくってくれる!という遊び心あふれるbotを考案。要約することで会話の効率を上げ、ほとんどが定型文と仕事上のやりとりで埋まるチャットにエンターテイメント要素を入れることで「協創」しやすい状況をつくってしまおう!というわけです。
システムの概要はこの通り。
- 知話輪からの「575」という投稿で発火。
- 直前のコメントを要約。重要度の高い単語を抽出します。
- 要約された単語列から川柳を生成。
アイデアソンで川柳botを作ろうと決めてから、システムの概要を決め役割分担するまでの流れが非常にスピーディだったこのチーム。要約部分は早々に、動くものを実装し精度を向上させる部分に時間を割いていました。LexRankやEmbedRank、TextRankなど色々なアルゴリズムで試していたようです。
川柳生成部分はSeq2Seqモデルを用いて5,7,5の単語列を出力します。メンバーの専攻や得意分野がバラバラであるメリットを生かし、分からないところやさらなる改良案を3人で相談しあって良いチームワークを発揮していました!
デモをしてみると、むむっ、、まだ意味を成す川柳にはなっていない様子。。精度向上に時間を割いたものの、さすがにこの短期間ではハードルが高かったよう。メンバーも「要約と川柳生成の2段階だったので少し無理があった」と話していましたが、限られた時間で成果物を出すことの難しさや大切さを体験することができたのではないのでしょうか。
発想がおもしろいこのbot、ぜひ実現してほしいと(勝手ながら)期待しています😊
発表を聴きに来た社員も超楽しそう。40人(+TV会議でつないだ他拠点メンバー)のギャラリーを前にしても動じない、堂々たる発表でした。スバラシイ!
第2回インターンは来週開催です★続報をお楽しみに!