Skip to content

Collection(コレクション) ​

シナリオコレクション (キュレーション集) を見ているユーザーに、そのコレクションの作品群と相性が良さそうなシナリオを推す枠。まだ Strategy が無い stub 状態。

WARNING

Recommender.Recommend(CollectionRequest) を呼ぶと Registry.Build が Collection strategy not implemented yet でエラーを返す。本番呼び出しも Admin Preview も無い。実装に手をつけるときはこの doc も更新する。

0. レコメンドの概要 ​

項目内容
入力CollectionRequest{ CollectionID, ViewerID, Common{ K, Candidates?, ExcludeAlreadyPlayed } }
出力Response{ Items, ModelVersion, RecommendationID }
mobile / web 画面未定 (コレクション詳細で「このコレクションの他シナリオ」枠を想定)
本番経路❌ resolver 未追加
Admin Preview❌ adminCollectionScenarios query 未追加
実装ステータスCollectionStrategy 未着手。registry.go が not implemented yet を返す

1. 評価関数の設計 (spec での想定) ​

spec §3.3 の想定式は collection_score(u, s) = mean(score(u, s'), s' ∈ CollectionScenarios)。

  • コレクションの作品集合のスコア平均を「コレクション全体への親和性」として使う
  • Author が topK_mean なのに Collection は mean を採るのは、キュレーションされた集合はノイズが少ない前提で、上位 K 件だけを見る必要が薄いから (理由は spec 参照)

今は Strategy.Aggregate 自体が無いのでエラーが返るだけ。

2. 現状の実装ファイル ​

関心ファイル
共通型 (CollectionRequest)backend/internal/usecase/recommendation/types.go
Registry の stub 分岐backend/internal/usecase/recommendation/surfaces/registry.go
Surface enumbackend/internal/adapters/graph/schema/recommended_scenarios.gql (RecommendationSurface.COLLECTION)

3. 既知の課題 / 未実装項目 ​

  • [ ] CollectionStrategy.Aggregate を実装する (collection_score = mean、spec §3.3)
  • [ ] CollectionStrategy.PreFilter を実装する (CollectionScenarios で絞り込み)
  • [ ] adminCollectionScenarios admin query を足す
  • [ ] コレクション詳細ページ mobile / web の resolver から呼び出す