モデルで推薦アイテム算出
推薦モデル構築で作ったモデルを使って、実際に推薦するアイテムを出します。
入出力
| ポート | 内容 |
|---|---|
| 推薦モデル | モデル |
| 入力データ | データ |
| 出力データ | データ |
入力が 2 つあります。 推薦モデル 側に推薦モデル構築の 1 つ目の出力をつなぎます。
Spark エンジンでは動きません。
入力の行も列も残りません。 出力は、推薦したアイテムを 1 行ずつ並べた別の表です。
出力の形
| 列名 | 内容 |
|---|---|
| モデルのキー列と同じ名前の列 | 推薦する相手 |
| モデルのアイテム列と同じ名前の列 | 推薦するアイテム |
レコメンドスコア | 勧める強さ。大きいほど優先 |
1 人(1 キー)につき 10 件まで出ます。件数は変えられません。もっと少なくしたいときは、このノードのあとで絞ります。
入力データにあったほかの列は残りません。 顧客の属性などを一緒に見たいときは、キー列を指定する結合で戻してください。
設定項目
設定項目はありません。 モデルを作ったときの設定(キー列・アイテム列・評価済みを含めるか)がそのまま使われます。
推薦する相手の絞り込みは、このノードの前で行います。
入力データに要るもの
モデルを作ったときと同じ名前のキー列が必要です。 アイテム列はなくても動きます。入力データのキー列に並んだ値について推薦が出ます。
モデルを作ったときになかったキーの値は扱えません。 新しい顧客にも出したいなら、その顧客も含めてモデルを作り直してください。
エラーと対処
学習時にない値が含まれる
入力データのキー列に、モデルを作ったときになかった値があると出ます。
列:
{{name}}に学習時には存在しない値が含まれています。アイテム算出対象データも含めて推薦モデルを構築してください。
直し方 — アイテム算出対象のデータも含めて推薦モデル構築をやり直します。新しい顧客だけを外したいなら、条件で行をフィルタで先に落とします。
入力データに列がない
モデルのキー列と同じ名前の列が、入力データにないときに出ます。
入力データに列:
{{name}}が存在しません。
直し方 — モデルを作ったときと同じ列名のデータをつなぎます。列名が違うなら列名の変更で合わせます。
よく使う例
1. 全顧客への推薦を出す
顧客ごとのおすすめ一覧が欲しいとき。
入力(モデルと、キー列を持つデータ)
| 顧客ID |
|---|
| C001 |
| C002 |
設定 — 設定項目はありません。推薦モデル構築の モデル をつなぐだけです。
出力 — 顧客ID / 商品ID / レコメンドスコア の 3 列。1 顧客につき最大 10 行なので、2 顧客なら最大 20 行になります。
2. 特定の顧客だけに出す
キャンペーン対象の顧客にだけ出したいとき。
入力 — 例 1 と同じ
設定 — 条件で行をフィルタで対象の顧客に絞ってから、このノードの 入力データ につなぎます。
出力 — 絞った顧客の分だけ出ます。モデルを作り直す必要はありません。
3. 上位 3 件だけ残す
1 人につき 3 件だけ出したいとき。
入力 — 例 1 の出力
設定 — 先頭/末尾からn行選択で、方向を選択 先頭から、選択する行数を入力 3、「特定の列で並べ替えてから処理する」を on にして並べ替えに レコメンドスコア の 降順、「グループごとに処理する」に 顧客ID を指定します。
出力 — 1 顧客 3 行になります。
4. 顧客の属性と並べて見る
おすすめ一覧に顧客名や地域も付けたいとき。
入力 — 例 1 の出力と、顧客マスタ
設定 — キー列を指定する結合で 顧客ID をキーにつなぎます。
出力 — 推薦結果に顧客の属性が付きます。
5. 定期実行する
毎週おすすめを更新したいとき。
入力 — 例 1 と同じ
設定 — モデルを作るワークフローと推薦を出すワークフローを分け、推薦側だけをスケジュールの新規作成に沿って登録します。
出力 — モデルを作り直さずに、毎週の対象顧客に対する推薦が更新されます。新しい顧客が増えたらモデルも作り直してください。