【GIG勉強会Vol.44/ LT32】「Twilio×React hooksでオンライン面談機能を作ったときの話」「自然言語処理とグラフ理論で推薦アルゴリズムを作る」を開催しました!|東京のWEB制作会社・ホームページ制作会社|株式会社GIG

【GIG勉強会Vol.44/ LT32】「Twilio×React hooksでオンライン面談機能を作ったときの話」「自然言語処理とグラフ理論で推薦アルゴリズムを作る」を開催しました!

2020-10-30ニュース

こんにちは!広報インターンの ich です。

GIGでは、毎月、様々なテーマで勉強会を開催しています。

コロナウイルス感染拡大抑止のため、2020年4月からはZoomを使用してのオンライン開催となりましたが、変わらず多くのメンバーが参加し、ノウハウ共有を行っています。

先日開催された社内勉強会では、GIGエンジニアの一ノ瀬さんと坂本さんが登壇し、自身で作成した機能やサービスについてのノウハウや知識を共有してくれました!


前半テーマ:「Twilio×React hooksでオンライン面談機能を作ったときの話」

一ノ瀬 雄太(いちのせ ゆうた):東京理科大学情報工学部にてコンピューターサイエンスを学ぶ。卒業後、2020年4月に新卒としてGIGにジョインし、ジョブ型雇用支援サービス『Workship』のフロントエンド開発を担当し、サービス改善や新規機能リリースに貢献している。

一ノ瀬さんは、Google MeetやZoomなどのアプリを使わなくても、Workship上でオンライン面談ができる機能を開発。今回の勉強会では面談機能やその開発方法を解説してくれました。

オンライン面談画面を導入できれば、ユーザーがWorkship上で面談をする際、わざわざアプリをダウンロードしたり、別の媒体へのアカウント登録の必要がないため、より面談をスムーズに行うことが出来ます。

また、ユーザーの気持ちを考えた結果、いきなり入室するのではなく、待機するためのロビー画面を設置したほうがいいのではないか、といくつかの機能をプラスしていました。

オンライン面談でつかえる3つの機能

  1. ロビー画面の設定
    ・ルームに入室する前に自分の姿を確認できる
    ・入室時のカメラや設定をいじることができる

  2. カメラのOn,Off機能、ミュートのOn,Off機能
    ・ボタンひとつでカメラやミュートの切り替えが可能に

  3. スピーカービュー機能
    ・話している人が一番大きく見える機能
    ・誰が話しているのかがわかりやすくなり、複数人でのMTGや面談に対応

コードの記述量を節約するための「React Hooks」やビデオチャットを開発するための支援ツール「Twilio」、プラウザなどで高速なデータ通信を実現する「WecRTC」といったツールを使用し、機能をつくりあげる過程を丁寧に説明してくれました。

一ノ瀬さんは、オンライン面談機能を開発するのに、およそ3週間の時間を費やしたそう…!3週間という期間に対し「意外とかかってしまった」と話していました。

今後は画面共有機能や、面談の経過時間や残り時間が表示されるような機能も付け足したいとのことでした。

後半テーマ:「自然言語処理とグラフ理論で推薦アルゴリズムを作る」

坂本 昂輝(さかもと こうき):バックエンドエンジニア。大阪大学大学院情報科学研究科修士課程修了。学生時代は脳科学に関連するネットワーク研究を行う。2018年8月にGIGに入社し、バックエンドエンジニアとしてSaaS事業部に所属。その後、SkillShare事業部へ移り、機械学習およびデータ分析に従事している。

坂本さんは、アルゴリズムの作り方の一部を共有してみなさんに昇華してもらいたいという思いの元、独自のアルゴリズムの作り方を紹介してくれました。

リアルタイムに変化するレコメンドをつくる

これまで使用していた「レコメンドアルゴリズム ver.2」の問題点と解決方針を提示しながら、あらかじめ推薦ネットワークを構築しておき、その上を歩くように検索すると計算量を抑えながら適切な推薦を行えるのでは?ということを思いついた坂本さん。

実際に利用者の目線に立ち、グラフ理論などを用いながら、最終形をイメージしていきます。

また、その際に必要なのが「必須要件」と「理想」。要件を整理し、必須要件を満たす見込みのある枠組み(グラフ理論)を決定する、その枠組の中でどうすれば理想を叶えられるかを考察することが大事だと話してくれました。

これらを元にネットワークを作成したところ、色分けされた領域に、ある程度属性の近いひとたちを集めることは可能であるという仮設にたどり着きました。続いて、この仮設をどう実現していくかへと話は進みます。

より良い推薦を実現するために

  1. 推薦するに値しないものは推薦しない
    ・推薦ネットワーク以前に、最低条件バリアを設置
    ・そうすることで推薦するに値しない人を排除する仕組み

  2. ユーザー行動によってレコメンドをどう最適化していくか
    ・リンクを構築することで、ユーザーが新しい領域へアクセスできるようにする
    ・リンクが多くなるほど最短路を求めるための計算量が増加してしまうので、夜中にバッチを回し、あまり使用されていないリンクを消去し本当に重要なリンクのみを残す

今後の課題について「推薦ネットワークに4000人ほどのフリーランスが存在しており、一見しただけでは絶対に把握できない。そのため、グラフの可視化ツール等を使用して問題点を発見し、絶えず改善していく必要がある」と坂本さんは考えています。

Q&A

勉強会の後半はQ&Aタイム。視聴している他のメンバーは、チャットで自由に質問ができます。

「サービスを作成するまでにどのくらい時間がかかった?」「通信速度はほかツールに比べるとどのくらい?」など、多くの質問が飛び交っていました。

Q:他のオンライン面談ツールと比較して、通信速度はどのくらいですか??

一ノ瀬さん:他のツールのものをデモ的につくっていないいので分かりかねますが、速度は他のサービスとほぼ変わらないはずです。安定性などはアゴラなどのサーバーを分散しているネットワークのほうが、一度に並行して何人も面談する際などは安定するのかなと。今後また調査、検証していきたいです。

GIGには、社員同士でノウハウを教え合う文化が根付いています。コロナ禍をうけ、勉強会にオンラインで参加できるように仕組み化したことで、より一層、知識の共有がしやすくなりました。

この先、会社が大きくなってもスキル高め合うを文化が続いていくよう、切磋琢磨し合える組織を目指してまいります。


GIGではgood is goodなチームを築ける仲間を募集しています!

現在、GIGでは「一緒に学びながら成長していきたい!」と意欲のある仲間を募集しています。 詳しく話を聞いてみたい方はコチラからどうぞ!

ich

93,生まれ/鳥取県出身/旅するフリーランス&元アドレスホッパー。GIGの広報インターン。自身でも編集やライター業などを行う。東京のおしゃれなカフェでパソコンをカタカタ打つときに幸せを感じるとのこと。人生で一番好きなものは「はちみつ味の梅干し」