質問がタイトルのようになった経緯を説明します。
iOSアプリ(SNSのような)を作成するため、SwiftとデータベースはFireStoreを使用し開発中です。
現在、FireStoreにデータを保存したり、取得し、TableViewなどに表示するなどの機能は実装しました。
しかし、ここで機械学習を用いて、データの表示順を変更したいと考えました。
※作成された日付順や閲覧数などの順番ではなく、
ユーザーが閲覧した投稿に、類似した投稿を優先的に表示するなど、いわゆるレコメンドやおすすめのような表示をしたいと考えています。
機械学習を導入するため、CoreMLの画像認識などをチュートリアルとして実装してみて気がついたことですが、
imagePickerを利用しデータを取得し→アプリの中にある学習モデルをもとに学習→結果を返す
という流れです。
【本題】
FireStoreの中にあるデータに対しては、どのような流れで、場所はどこでおこなうのが良いのかがわかりません。
【考えたパターン】
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●パターンA
アプリ内にレコメンドするためのモデルを用意しておく
↓
FireStore内のデータをクエリしアプリ内に取得
↓
取得したデータを用意しておいた学習モデルで学習し、新しいデータを作成
↓
学習結果のデータ配列をもとにデータを表示(TableViewなどで)
※機械学習をする場所:アプリ内?
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●パターンB
FireStoreにあるデータを機械学習用のどこか(Tensorflow?BigQuery?)にエクスポート
↓
学習された結果をFireStoreに返す
↓
getDocumentしアプリ内にデータを取得
↓
アプリ内で表示
※このパターンはFireStore特性とgetDocumentのorderByのことを考えると無理ではないかと思っています。
※機械学習をする場所:アプリ外、Firestore外?
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
●パターンC
アプリ側でデータを取得するためのクエリをする
↓
FireStoreがデータを返す前に、FireStore内で返すデータの学習を行う。その結果を返す
↓
アプリ側で表示
※機械学習をする場所:Firestore内?
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
このようなパターンを考えました。
全体図がよくわからない状態です。
どなたかアドバイスや参考になるサイトや資料などご紹介いただけたらと思います。
よろしくお願いします!
あなたの回答
tips
プレビュー