KARTEでは、店舗購買ユーザーの嗜好をレコメンド結果に反映することができます。ここではレコメンドのロジックに店舗の購買データを追加する方法を紹介します。
はじめる前に
- 事前に店舗購買(POS)データを取り込んでいるのが前提となります。
- 標準のレコメンドが実施できることが前提となりますので、KARTEレコメンド機能の利用についてをご確認の上、タグ設置や商品マスタの準備をしてください。
店舗購買(POS)データの取り込みについて
- 最低限以下のデータを店舗購買(POS)データとして取り込みを行ってください。
- 購入日時
- 会員ID(またはそれに紐付く値)
- 購入商品ID(またはそれに紐付く値)
- 購入商品数量
追加方法
ここでは、店舗購買データを下記データテーブルに連携しているとします。
store_purchase
テーブル- カラム
purchase_date
(購入日時)user_id
(会員ID)item_id
(購入商品ID)quantity
(購入商品数量)
- カラム
また、クエリコレクションの「商品軸での商品レコメンド」というクエリを修正します。
1. WITH句に、下記のviewを追加
, store_purchase AS (
SELECT
purchase_date AS sync_date
, user_id AS visitor_id
, item_id
, quantity
FROM `store_purchase`
)
2. action_log_rawというviewを修正
, action_log_raw AS (
SELECT
'view' action
, sync_date
, visitor_id
, item_id AS item_id
, null as quantity
FROM
view
UNION ALL
SELECT
'purchase' action
, sync_date
, visitor_id
, item_id AS item_id
, quantity
FROM
buy_with_item
-- [追加]ここから
UNION ALL
SELECT
'store_purchase' as action
, sync_date
, visitor_id
, item_id
, quantity
FROM
store_purchase
-- [追加]ここまで
)
3. ratingsというviewを修正
- 閲覧、EC購買、店舗購買の重みづけについては、適切に設定します
, ratings AS (
SELECT
visitor_id
, item_id
, SUM(CASE WHEN action = 'view' THEN 1 ELSE 0 END) AS view_count
, SUM(CASE WHEN action = 'purchase' THEN quantity ELSE 0 END) AS purchase_count
, SUM(CASE WHEN action = 'store_purchase' THEN quantity ELSE 0 END) store_purchase_count -- [追加]
, 0.4 * SUM(CASE WHEN action = 'view' THEN 1 ELSE 0 END) -- [修正]重みづけは適切に設定
+ 0.3 * SUM(CASE WHEN action = 'purchase' THEN quantity ELSE 0 END) -- [修正]重みづけは適切に設定
+ 0.3 * SUM(CASE WHEN action = 'store_purchase' THEN quantity ELSE 0 END) -- [追加]重みづけは適切に設定
AS score
FROM
action_log
GROUP BY
visitor_id, item_id
)