【GIG勉強会Vol.25】「Workshipにおけるレコメンドエンジン実装」と「坂本流の改善案」|東京のWEBサイト制作会社「株式会社GIG」

【GIG勉強会Vol.25】「Workshipにおけるレコメンドエンジン実装」と「坂本流の改善案」

【GIG勉強会Vol.25】「Workshipにおけるレコメンドエンジン実装」と「坂本流の改善案」
News

こんにちは!2019年2月からGIGにインターンとして入社したナガリナです。3月に入り、だんだんと暖かくなってきた気がします。春の訪れが待ち遠しい、今日この頃です。

さて、25回目の勉強会のテーマは「Workshipにおけるレコメンドエンジン実装」についてバックエンドエンジニアの2人が実装方法と改良案をそれぞれ語ってくれました!

 

 

Workshipとは?

https://goworkship.com/

Workshipはデジタル業界で活躍する人とプロジェクトをマッチングするスキルシェアサービスです。レコメンドエンジンとはWorkship内において、オススメの求人を自動で紹介してくれる機能です。

 

 

前半は現行のレコメンドエンジンの解説です!

最初の登壇者はバックエンドエンジニアの石倉彰悟さん。Workshipのレコメンドエンジンを担当しています。

石倉 彰悟(いしくら しょうご):バックエンドエンジニア。ITビジネスの専門学校を卒業後、深い知識を持ったエンジニアを目指して2012年に上京。バックエンドエンジニアとして常駐先でのシステム開発やサイト制作をおこなう。2018年7月にGIGにジョイン。

 

当日使用したスライドはこちらです。

LT13(前半)Workshipにおけるレコメンドエンジン実装 from GIG inc.

 

 

まずは実装方法を紹介

まずは具体的な実装方法について紹介してくれました。レコメンド方式を検討する中で複数の実装方式が検討されました。

 

 「協調フィルタリング方式」の話

今回石倉さんが導入したのは、「協調フィルタリング」という方式。こちらについて詳しく説明してくれました。

1. ターゲットのユーザと似ているユーザを見つける(類似度計算、相関分析)

確率に置き換えていきます。

 

2. 似ているユーザを基に、よく見られている求人などを計算し、そのユーザにレコメンドする求人を決める

しかし、この方法ではユーザが増えれば増えるほど、計算量が乗数で増えていくという問題が。
そこで、全ユーザ分見なくていいようにINDEXを用意するという方法で解決しました。

今まで見えていなかった、裏側の話が聞けて大変興味深かったです。普段何気なく使っている求人サイトも、苦労して作っているんだろうなぁ…と感慨深かったです。

 

 

後半はレコメンドエンジンに対する改善案のお話

今度の登壇者はバックエンドエンジニアの坂本昂輝さん。Workshipのレコメンド精度をあげる手段を紹介してくれました。

坂本 昂輝(さかもとこうき):バックエンドエンジニア。学生時代は脳科学に関連するネットワーク研究を行いつつ、深層学習を用いた音声認識システムの研究開発を行う。2018年10月にGIGに入社し、バックエンドエンジニアとしてSaaS事業部に所属。 受託開発の根幹となるシステムを改善し、生産性向上に貢献している。

当日使用したスライドはこちらです。

LT13(後半)Workshipにおけるレコメンドエンジン実装 from GIG inc.

 

改善案1:「0 or 1 ではなく、0, xに置き換える」

 
一つ目の改良案は値を 0 or 1 の2値ではなく、複数の離散値か範囲のある連続値にすることです。

このように空間を広げてあげることで、相関係数が有無を線引きをしやすくします。

 

改善案2:ReLU による新たな特徴ベクトルの獲得

 
二つ目の改良案はReLUを通し、新たな特徴ベクトルを獲得することです。元々の入力値を機械が整形し、謎だけど良い感じの特徴ベクトルが獲得できます。「下の図のように抽象化し、機械にとってわかりやすい表現でマッチングの精度を上げるべき!」と坂本さん。

 

改善案3: 大量のデータを候補生成とランキングに分割

 
大量のデータ全てに対し、全特徴量を用いて計算を行うことは時間的に困難です。そこで坂本さんは2つの解決方法を考案してくれました。

1. 候補生成
全データに対して、少ない特徴量を用いてそこそこの精度で選出します。

2. ランキング
選ばれしデータに対して、多くの重要な特徴量を用いて高い精度で順位づけます。

そして、手持ちの特徴量のどれを用いるか選択したり、新たな特徴量を生成することによって、可能なかぎり最適な特徴ベクトルを構築します。

 

改善案4: A/B テストで試行錯誤

 
そして最後はA/Bテストで試行錯誤することです。戦略の良さは実行し統計をとらないとわからないことが多いです。コストが莫大でない限りはとりあえずやってみましょう!と坂本さん。また実行フェーズでは判断基準として、適切な指標を用いることが重要だそうです。

 

 

勉強会の後は恒例の食事会!

勉強会のあとは参加者で食事を囲むのがGIG流。私は今回初参加なので楽しみにしていました。

今回のメニューは「オフィスの移転に伴い「めでたい!」ということで「鯛」料理。

移転パーティも兼ねていたため豪華でした。

 

今まで複数の会社でインターンに参加してきましたが、勉強会からの食事会という流れを作ることにより、社員同士の距離感が近くなったり、勉強会で疑問に思ったことをすぐに聞ける環境を作ることができたり・・・と素晴らしい環境だと感じました。そしてお料理もとっても美味しかったです!

 

 

GIGでは一緒に学べる仲間を募集しています!

現在GIGでは「一緒に学びながら成長していきたい!」と意欲のある仲間を募集しています。

話を聞いてみたい方はコチラからどうぞ!

GIGblog編集部

株式会社GIGの社員によって構成される編集部。GIG社員のインタビューや、GIGで行われたイベントのレポート、その他GIGにかかわるさまざまな情報をお届けします。

RELATED ARTICLES