Author(作者)
作者ページを見ているユーザーに、その作者の作品傾向と相性が良さそうなシナリオを推す枠。まだ Strategy が無い stub 状態。
WARNING
Recommender.Recommend(AuthorRequest) を呼ぶと Registry.Build が Author strategy not implemented yet でエラーを返す。本番呼び出しも Admin Preview も無い。実装に手をつけるときはこの doc も更新する。
0. レコメンドの概要
| 項目 | 内容 |
|---|---|
| 入力 | AuthorRequest{ AuthorID, ViewerID, Common{ K, Candidates?, ExcludeAlreadyPlayed } } |
| 出力 | Response{ Items, ModelVersion, RecommendationID } |
| mobile / web 画面 | 未定 (作者ページで「この作者を気に入りそうな人向けの他作品」枠を想定) |
| 本番経路 | ❌ resolver 未追加 |
| Admin Preview | ❌ adminAuthorScenarios query 未追加 |
| 実装ステータス | AuthorStrategy 未着手。registry.go が not implemented yet を返す |
1. 評価関数の設計 (spec での想定)
spec §3.3 の想定式は author_score(u, s) = topK_mean(score(u, s'), s' ∈ AuthorScenarios, K=5)。
- 作者の作品集合のうち、user との Base Score が上位 K 件 (K=5) の平均を「作者全体への親和性」として使う
- 1 作だけの極端値で引っ張られないように
maxではなくtopK_meanを選ぶ判断は spec §3.3 を参照
今は Strategy.Aggregate 自体が無いのでエラーが返るだけ。
2. 現状の実装ファイル
| 関心 | ファイル |
|---|---|
共通型 (AuthorRequest) | backend/internal/usecase/recommendation/types.go |
| Registry の stub 分岐 | backend/internal/usecase/recommendation/surfaces/registry.go |
| Surface enum | backend/internal/adapters/graph/schema/recommended_scenarios.gql (RecommendationSurface.AUTHOR) |
3. 既知の課題 / 未実装項目
- [ ]
AuthorStrategy.Aggregateを実装する (author_score = topK_mean(K=5)、spec §3.3) - [ ]
AuthorStrategy.PreFilterを実装する (AuthorScenarios で絞り込み) - [ ]
adminAuthorScenariosadmin query を足す - [ ] 作者ページ mobile / web の resolver から呼び出す