見出し画像

marrishにおける、機械学習の役割と挑戦

はじめに

自己紹介

はじめまして、sigreと申します。
大学でコンピュータサイエンスを専攻し、卒業後にバックエンド開発とAI開発に携わってきました。
現在は、Newbeesで機械学習エンジニアとして働いています。

今回の記事では、Newbeesにおける機械学習エンジニアの役割や日々の仕事を知っていただければと思います。


marrishが提供する価値

Newbeesでは、marrishというマッチングアプリを開発しています。
主にターゲットは再婚活を目的にしたユーザー層になっていて、同じ目的同士のユーザーが気軽に出会える場となっています。

marrishは、誰もが自分に合ったパートナーと出会える場を提供することを目指しています。
マッチングシステムは、どうしても特定の人気ユーザーに「いいね!」やマッチングが集中しやすいですが、marrishはすべてのユーザーがバランスよくマッチングできる仕組みを理想としています。
こうした公平な出会いの場を提供することが、私たちの重要な考え方の一つです。

marrishでは「偏ったマッチング」を避け、なるべく同じレベル感のあるパートナーと出会える場を作りたいと考えています。
お互いにとって相応しい相手と出会えることで、多くの人が幸せを掴むことを願っています。


技術的な挑戦と機会

機械学習の役割

現在、多くの機能はルールベースで実装されており、時間の経過に伴う最適化が十分に行われていません。
機械学習を活用することで、各機能の最適化を図り、ユーザーの満足度を向上させることがゴールです。

そのため、まずは以下の3つに注力することにしました。

最適化のための、3つの取り組み。
・選択肢の最適化。
・マッチングの最適化。
・新規ユーザの支援。
最適化のための、3つの取り組み

課題① 選択肢の最適化

背景

marrishには「さがす」というユーザー検索機能がありますが、現状では多くのプロフィール情報が一度に表示されるため、ユーザーが自分に合った相手を見つける負担があります。
絞り込み検索機能も備わっていますが、最初からユーザーの好みに合った候補が提示されれば、検索の手間が減り、より快適な利用が可能になると考えています。

取り組みの意義

ユーザーの検索負担を軽減し、効率的に自分に合った候補と出会えるよう、機械学習によるレコメンドシステムの導入を検討しています。
単なるプロフィール検索ではなく、ユーザーごとの好みや傾向に応じた候補が表示されることで、検索精度が向上し、ユーザーにとって理想的な候補と出会いやすくなります。marrishの独自のレコメンドシステムを通じて、マッチングの質を高めることが期待されています。


課題② マッチングの最適化

背景

課題①では、検索する側のユーザーデータに基づいておすすめの候補が表示される仕組みを想定しています。
しかし、マッチングの成功率をさらに高めるためには、相手方(検索される側)のデータも考慮することが必要になります。
ユーザーが見つけやすい相手だけでなく、相手側にとっても理想的な候補が表示されれば、双方の興味や意向がマッチしやすくなり、より良い出会いの場が提供できると考えています。

取り組みの意義

双方向のデータを活用したレコメンドアルゴリズムを開発し、ユーザー同士の相性をより深く考慮します。
双方向のデータを用いたレコメンドを導入することで、marrishのマッチング体験を一層向上させ、ユーザーにとって価値のある出会いを提供したいと考えています。
このアプローチにより、単に検索の手間を省くだけでなく、関心や趣味が合いやすい相手を優先してマッチング候補に含め、出会いの質を向上させることを目指します。


課題③ 新規ユーザー支援

背景

marrishでは新規ユーザーに対して、レコメンド機能を提供する際にコールドスタート問題が発生することがすでに分かっています。
通常のバッチ処理によるレコメンドでは、新規ユーザーのデータが蓄積されるまで一定の時間がかかるため、すぐに個別化された推薦が難しく、新規ユーザーが初期段階で最適な出会いに繋がりにくい課題があります。
ユーザーが最初に「いいね!」を送った段階での情報を活用できれば、新規ユーザーの興味や好みに合った相手を素早く提案し、より快適な初期体験を提供することができると考えています。

取り組みの意義

新規ユーザーの行動データをリアルタイムで収集・分析し、コールドスタート問題の影響を最小限に抑えます。
具体的には、新規ユーザーがはじめて「いいね!」を送った際、その相手の属性や行動履歴に基づいて、似たプロフィールを持つユーザーをリアルタイムでおすすめできる仕組みを検討しています。


エンジニアとしての成長

私目線になりますが、感じたことを記載します。
参考にしてもらえますと幸いです。

スキルアップ

機械学習のスキルに加え、AWSのサービスを多く扱うため、クラウドに関する知識も習得できます。
また、ほとんどのプロジェクトが0から1を作り上げる段階から始まるため、具体的な形に落とし込む力が必要です。
この過程で、自然とリーダーシップやオーナーシップの感覚も身につき、自分で考え、行動し、周囲を巻き込む力が鍛えられます。
どちらかというと、もともと持っている強みをさらに磨いていく感覚に近いかもしれません。

また、以下のような多様な業務を経験するため、将来的にはどのような役割にも柔軟に対応できる力が身につきます。

身につくスキル。
・要件定義:ディレクターとともに要求を具体的な要件に落とし込みます。
・概念実証:要件を実現できるかどうかを検証します。
・API開発:実現の見通しが立った段階で本格的な開発に着手します。多くの場合、APIとしてリリースします。
・システム構築:APIの土台となるシステムを構築します。主にAWSサービスを活用し、時には新しいサービスにも挑戦します。
・運用監視:CloudWatchやダッシュボードを用いてシステムの稼働状況を監視し、問題が発生した際には迅速に対応します。
身につくスキル

キャリアパス

少人数での開発体制のため、広範囲にわたる業務に携わることができ、ジェネラリストとしてのキャリアパスが広がります。

  • 初期
    機械学習エンジニアとしてのスキルを身につけ、技術の幅を広げながらプロジェクトの様々なフェーズに携わります。
    この段階で、技術的な基盤だけでなく、要件定義からリリースまで一貫して対応する力が養われます。

  • 中期
    徐々にプロジェクトのリーダーシップを発揮し、他のメンバーのサポートや、プロジェクト全体の管理に関与します。
    この段階では、技術とビジネスを結びつける役割を担い、プロジェクトの成功に貢献することになると思います。

  • 長期
    将来的には、技術とビジネスの両面でチームをリードする立場や、プロダクトの戦略を立案する役割に進むことが期待されます。
    少人数体制で培った広範なスキルを活かし、事業の成長に直結するポジションで活躍する可能性も広がると思います。


Newbeesで働く魅力

これまでの経験を通じて感じた、Newbeesで働く魅力についてお伝えします。

Newbeesでは、基本的にフルリモートで働くことができます。
フルリモート勤務に不安を感じる人もいるかもしれませんが、Newbeesでは相談しやすい環境が整っていると感じています。
技術的に困ったことがあれば、メンバーとhuddle(Slackの通話機能)を使ってすぐに相談できますし、テクニカルサポートも利用可能です。
また、技術以外の相談があれば人事の方に気軽に相談できるほか、CEOとも直接話せる機会があります。
このように、ここまで相談しやすい環境は他ではあまりないのではないかと思います。

また、仕事には基本的にディレクターが関わるため、一人に任せきりになることはありません。
ディレクターとは随時相談しながら進めるため、ほとんどの業務はディレクターとの連携のもとで行われます。
自分にとってはディレクターと一緒に仕事をするのがはじめての経験で、ディレクターがいると知ったときは非常に驚きました(笑)

さらに、機械学習プロジェクトにおいては、自分から提案していく形が多く、0から1を生み出す手探りの部分も多いです。
しかし、自分が「やりたい」と思ったことに対しては意見が通りやすく、根拠がないまま真っ向から否定されることもありません。
挑戦しやすい環境が整っていることも、Newbeesの魅力だと感じています。


機械学習エンジニアに求められるスキル

Newbeesで機械学習エンジニアとして活躍するためには、以下のようなスキルが求められます。
プロジェクトを成功に導くためには、技術的なスキルだけでなく、コミュニケーションや適応力などのソフトスキルも重要な役割を果たします。
もちろんすべてに精通している必要はありませんが、参考にしてくださると幸いです。

求められるソフトスキル。
・コミュニケーション能力:ディレクターや他のチームメンバーと密に連携し、プロジェクトの進行状況を共有しながら進めるためのコミュニケーションスキルが求められます。
・チームワーク:marrishの開発メンバーと技術的なディスカッションを行いながら、チーム全体で協力してプロジェクトを推進するスキルが求められます。
・問題解決能力:抽象的なアイデアやふわふわとした要求を、具体的な形に落とし込む問題解決能力が求められます。
・適応力:新しい技術やツールが頻繁に導入される環境であるため、変化に柔軟に対応し、迅速に使いこなす適応力が求められます。
求められるソフトスキル

求められるハードスキル。
・機械学習に関する知識:回帰、分類、クラスタリング、ディープラーニングなど、幅広い機械学習手法の理解が必要です。
・データ前処理と分析:データクリーニングや特徴量エンジニアリングなど、モデル構築の前段階でのデータ処理スキルが求められます。
・データベース操作:MySQLやAthenaを使ったデータベースの操作スキルが求められ、大量データの扱いを理解していることが望まれます。
・データパイプラインの構築:推論システムに、データを流し込むためのデータパイプラインを構築するスキルが必要です。
・システムの構築:AWSを活用したシステム構築スキルが求められ、様々なAWSサービスを適切に組み合わせる能力が必要です。
求められるハードスキル

さいごに

機械学習エンジニアとしての仕事は、困難な部分も多いですが、新しい技術や課題に取り組む面白さがあります。
ときには思いがけない問題に直面しつつも、試行錯誤しながら形にしていくプロセスは大きなやりがいとなります。

もし魅力を感じていただけたら、ぜひ一緒にチャレンジしましょう。

Newbeesでは一緒に働く仲間を募集しています

Newbeesはフルリモート&フレックス勤務を導入し、場所にとらわれない自由な仕事のやり方が可能です。詳細は以下をご覧ください。