体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

CODE.SCOREと産総研が「スキル測定」の試験時間短縮に機械学習の非負行列分解を採用

CODE.SCOREの試験時間短縮に機械学習のテクノロジーを応用

兼村厚範氏は産総研の研究者だが、ご本人曰く「科学者(Scientist)というより、工学者(Engineer)」だ。

興味を持っている分野は、ヒトから得られたデータの解析、ヒトの情報処理。ヒトとカタカナで表記をしているのは、ヒトを生物の1つとみているため。つまり生物学で人間は「ヒト」と表されるということだ。

一方、「CODE.SCORE」の開発に携わっているチームでは、受検者の負担を減らしたいという企業からの要望を受け、より少ない問題数で分析精度が下がらないようなテストの仕組みを模索していた。

CODE.SCOREは、エンジニアの実務スキルを可視化するサービスとして、2015年4月にローンチした。Webアプリケーション開発(Java)試験や、組み込みソフトウェア開発(C/C++)試験、スマホアプリ開発(iOS)試験、インフラ(LAMP)試験、ITアーキテクトサービス・マネジメント試験など11種類の試験を用意(2016年1月時点)。

CODE.SCOREが提供する試験の大きな特長の一つとして、開発の現場で必要とされるスキルをまるっと計測する試験構成となっていることが挙げられる。

例えば、Javaを使ったWebアプリケーション開発の現場では、Javaのプログラミング能力の他に、設計力やプロジェクトマネジメント力といったことも必要である。この試験構成の特長から、幅広く能力を問うていることから、問題数を削減することが難しい。

では、60問すべての問題を解いてもらう必要がある試験に対して、いかにして試験時間短縮の課題に取り組んだのか。

「60問の問題を例えば半分の30問にしたとしても、うまい方法を使うことで、60問すべてに答えたときよりは少し精度は劣るものの、それなりに高い精度で残りの30問を正解・不正解を予測することができれば、試験時間の短縮につながります。この発想から私の専門の1つである機械学習が使えるのではないかという話になったんです」と、兼村氏は語る。

こうしてリクルートキャリアとの共同研究が始まったという。

行列分解は因数分解のようなもの

ではどんな機械学習のテクノロジーを使ったのか。それが行列分解である。

行列分解とはある行列U(大きさI × J)を2つの行列W(大きさI × K)、H(大きさK × J)の積に分解する(U=WH)というもので、「行列因子分解や行列因子化とも言われている。因数分解のようなもの」と兼村氏は説明する。

例えば、10=5・2、最近の年月日で面白い数字は20151121=674と因数分解できるというようなことだ。整数の10は5と2から構成されており、整数20151121は674が4つ含まれていると解釈できる。

同様に、行列Uを2つの行列WとHに分解するということは、Hで表される成分とWで表される重みの2つの要素から構成されているとみなすということだ(HやWの詳しい意味については後述)。

因子化は隠れた構造を推定するのに使われる。例えばトピックモデルや独立成分分析、スパース辞書学習などである。またデータの構成要素としてどんな成分がどれだけ入っているかを推定し、可視化することもできる。

1 2 3 4 5次のページ
CodeIQ MAGAZINEの記事一覧をみる
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。
GetNews girl / GetNews boy

オスカー2018年晴れ着撮影会