卒業研究の現在地

お久しぶりです。

B4の魚田真之介です。

僕は現在、卒業研究で「抽象的なイメージで会話できるオンラインコミュニケーションツールの開発」を進めています。

中間報告会も(夏休み前に)終え、一旦、今回はこれまでやってきたことと、これからやっていくことをまとめてみます。

やってきたこと

  • 課題設定
  • コンセプト設計
  • 使いたい技術
  • 技術選定・コーディング
  • 開発段階のWebアプリケーション

課題設定

個人的な動機として、SNSを使う上でのストレスがありました。僕は普段SNSをよく使うのですが、何気なく見ているときでも、ふとしたつぶやきをみて一喜一憂したり、知らず知らずのうちにストレスが溜まっているなと感じることがありました。また、SNSでの炎上や行き違い、フェイクニュースの影響が広範囲に広がっているのを見かけることが増えてきました。

これらは、コミュニケーションの媒介が原則テキストで統一されていること、そして、SNSのタイムライン上には玉石混交状態のつぶやきが同じように表示、並べられていることが原因だと仮定しました。また、テキストを構成するのは言葉です。これは辞書的な意味がある一方、多様な解釈が許容されています。つまり、同じテキストでも、人によって想起される情景や解釈が変わるわけです。そうすると、補助情報がない状態でテキストのみでコミュニケーションを行おうとしているのもSNS上でのコミュニケーション不全の原因の1つといえます。以上の問題を少しでも解消するために、課題を「やり取りする媒介をテキストから置き換えたコミュニケーションアプリを作る」と設定しました。

Webアプリケーションのコンセプト設計

Webアプリケーションの方向性を決めるためのざっくりとしたコンセプトを決めてました。 課題設定から 1. 言葉を別のものに置き換える 2. ぱっと見で解釈しにくい 3. 読むと鑑賞の両立 以上の3つの特徴を持つコミュニケーションアプリケーションを解決策としました。具体的には、言葉を視覚的な3DCGオブジェクトに置き換え、解釈しにくい抽象的な表現を用い、平面的なタイムラインを疑似3次元的なものにするという方針を立てました。

技術選定・コーディング

今回のコミュニケーションアプリは多くの人を対象として、Web上で動作するものとしました。使用する技術は、フロントエンドにNext.js、イメージオブジェクト生成の部分にThree.js+Shader、バックエンドにDjango、データベースにはPostgreSQLです。

但し、ユーザーが1からオブジェクトを描くのは、発信のハードルが高いものになってしまいます。そのハードルを低くするために、今回のアプリでは、SNSのインタフェースを再利用し、入力は言葉で行うようにしました。では、イメージオブジェクトの生成はどうするのかというと、文章を分析してくれるモデル(BERTのsentimentなど)を利用することで入力された言葉をパラメーター化し、それを用いて、Three.js+Shaderでイメージオブジェクトを生成するようにしています。

開発段階のWebアプリケーション

現段階でのインタフェース

このアプリは中央のキャンバスと、右側にあるテキストボックスとテキストのパラメーターデータを表示する掲示板で構成されます。

このアプリの使い方は、右上のテキストボックスに言葉を入力し、投稿ボタンを押して、オブジェクトをキャンバス上に投稿するというものです。テキストボックスの下には、入力したテキストとともに、パラメーターが表示され、どのようにオブジェクトが出力されたのかを確認することができるようになっています。

オブジェクトの設定は、モデルが出力してくれる感情の分類(嬉しさ、怒り、信頼)によってオブジェクトの形状を、文字数によってオブジェクトの大きさ、ポジティブさの分類(ポジティブ、ネガティブ、ニュートラル)によって、色を決定しています。中央のキャンバスはアクセスしているユーザーで共有されるようになっています。

これからやること

  • まずは、オブジェクトに選択することで、自他のオブジェクトの元のメッセージとパラメーターを取得できるようにすることです。これは、ユーザーの熟練度に関係する要素で、ユーザーがオブジェクトをつかったコミュニケーション方法を学習するという仮説に基づいています。初期ユーザーは、アプリを使って、オブジェクトを鑑賞できる一方で、相手が何を伝えたいのかがわかりません。オブジェクトを選択し、元のメッセージを読むことで、「このオブジェクトはこういうことを言っているだ。」という体験をすることになります。この体験が繰り返され、経験が積むことでオブジェクトだけで、”ある程度”言いたいことが分かる、例えば、丸をみたら、「嬉しいことがあったんだな。」と解釈できるようになると考えています。

  • 次に、テストとデプロイです。アプリとして開発する以上、それが正しく動作するのか、そしてサーバー上に配置し、公開することが必要です。この部分は僕が疎いところでもあるので、ここからの最大の壁はテストとデプロイになると考えています。

終わりに

後2~3か月で完成させられるのでしょうか。もし完成した暁には、皆様にも利用して頂けるようにお知らせできればと思います。

引き続きよろしくお願いいたします。