LinkedInが今日、同社の内部ツールFeatureFuをオープンソースにする、と発表した。このツールキットはデベロッパが、統計的モデルや意思決定エンジンを作る際に必要となる機械学習モジュールの構築に利用される。
そのねらいは、サービスのさまざまな機能を作るための、いわば”機能工学(feature engineering)”まわりの知識や技術を、同社の外部のデベロッパが利用できるようにすることだ。機械学習をベースとする機能工学とは、身の回りのさまざまな現象に関する詳細な知識を利用して、機械学習のモデルを構築することだ。
LinkedInによると、同社の関係提案機能のような大規模なリコメンデーションシステムの多くが、少なくとも二つのチームによって管理されている。ひとつはオフラインのモデリングを担当する部分、もうひとつはオンラインの機能提供/モデル評価を担当する部分だ。このことから生ずるさまざまな問題を、FeatureFuは解決しようとする。
LinkedInのシニアソフトウェアエンジニアBing Zhaoは次のように述べる: “大規模なリコメンデーションシステムは、安定性を欠く脆弱なシステムが多い。FeatureFuを使えばそういうシステムの上でもクリエイティブでアジャイルな開発ができ、新しい機能の実装にこれまでのように数週間〜数か月もかからない”。
これまでのやり方では、機能の作り方をすこし変えただけで、ほかのチームに大量の仕事が発生したり、ほかの機能やモデリングの実験が困難になったりした。
FeatureFuは、Exprと呼ばれる小さなJavaのライブラリを使用する。それを利用すると、デベロッパは既存の機能集合に手を加えることなく機能の変更や新規実装ができるようになる。Zhaoはこのシステムの利点を、“オンラインの機能生成フレームワークへ一度デプロイしたら、その後のさまざまな派生的機能も、機能本体のコード変更を必要とせずに、簡単に実装できるようになる”、と説明する。
ではなぜ、LinkedInはこのツールをオープンソースにすると決めたのか? それはZhaoによると、“会社であるソフトウェアが必要になったら、まず既存のオープンソースのプロジェクトに使えるものがないか、探す。それがなければ、自分たちで作る。企業やプロダクトの重要な差別化要因となるソフトウェア以外は、オープンソースにした方が多くの人たちの利益になる”。
Zhaoは、FeatureFuが今後あちこちで採用されることを期待している。“FeatureFuは多くの機械学習システムのための共通技術になりうる。これを使うと機能制作の工程がよりアジャイルになり、しかもアジャイルは、機械学習アプリケーションが成功するための重要な鍵のひとつだ。だからわれわれは、自分たちの作品を業界と共有したい”。