Cortex for Meridian

本頁詳細說明 Google Meridian 的資料準備和雲端自動化程序。Cortex Framework for Meridian 可簡化開放原始碼行銷組合模式分析 (MMM),並整合跨媒體和銷售資料。Cortex Framework 提供預先設定的資料模型,並使用 Colab Enterprise 和 Workflows 等 Google Cloud 服務自動執行 Meridian 開放原始碼模型,簡化這個程序。

Google Cloud Cortex Framework 的主要價值主張之一,是為新一代企業智慧提供資料和人工智慧 (AI) 基礎,以利分析銷售、行銷、訂單履行和庫存管理等主要領域。

行銷專用的 Cortex Framework 提供跨媒體平台的主要成效指標 (KPI) 和指標。這些指標是執行 Google 最新開放原始碼 MMM「Meridian」時,模型前資料準備步驟的重要環節。廣告主、代理商和合作夥伴可以運用 Google Cloud Cortex Framework Data Foundation,加快模型前資料準備程序。

Cortex for Meridian 可有效收集及轉換核心 Cortex Framework 資料來源的資料,簡化前置建模程序,包括:

詳情請參閱 Meridian 說明文件

設定檔

執行筆記本時,系統會從 Cloud Storage configuration 資料夾中的 cortex_meridian_config.json 檔案擷取設定參數。

以下章節將分享 Meridian 執行的不同設定 YAML 檔案範例:

銷售

以銷售量做為 KPI 的設定 YAML 檔案範例:

{
  "cortex_bq_project_id": "PROJECT_ID",
  "cortex_meridian_marketing_data_set_id": "K9_REPORTING",
  "cortex_meridian_marketing_view_name": "CrossMediaSalesInsightsWeeklyAgg",
  "column_mappings": {
      "controls": [],
      "geo": "geo",
      "kpi": "number_of_sales_orders",
      "media": [
          "Tiktok_impression",
          "Meta_impression",
          "YouTube_impression",
          "GoogleAds_impression"
      ],
      "media_spend": [
          "Tiktok_spend",
          "Meta_spend",
          "YouTube_spend",
          "GoogleAds_spend"
      ],
      "population": "population",
      "revenue_per_kpi": "average_revenue_per_sales_order",
      "time": "time"
  },
  "channel_names": [
      "TikTok",
      "Meta",
      "YouTube",
      "GoogleAds"
  ],
  "data_processing": {
      "kpi_type": "{USE_CASE_SPECIFIC}",
      "roi_mu": {USE_CASE_SPECIFIC},
      "roi_sigma": {USE_CASE_SPECIFIC},
      "sample": {
          "prior": {USE_CASE_SPECIFIC},
          "posterior": {
              "n_chains": {USE_CASE_SPECIFIC},
              "n_adapt": {USE_CASE_SPECIFIC},
              "n_burnin": {USE_CASE_SPECIFIC},
              "n_keep": {USE_CASE_SPECIFIC}
          }
      }
  }
}

轉換次數

以轉換做為 KPI 的設定 YAML 檔案範例:

...
    "kpi": "conversions",
    "revenue_per_kpi": "",
...

下表說明 cortex_meridian_config.json 檔案中每個設定參數的值:

.
參數 意義 預設值 說明
cortex_bq_project_id 包含 Cortex Framework 資料集的專案。 {PROJECT_ID} 專案 ID。 Google Cloud
cortex_meridian_marketing_data_set_id 包含 Cortex for Meridian 檢視畫面的 BigQuery 資料集。 config.json 檔案中 k9.datasets.reporting 的設定值。 包含 cortex_meridian_marketing_view_name 檢視區塊的資料集。
cortex_meridian_marketing_view_name BigQuery 檢視畫面,其中包含 Meridian 行銷資料和銷售資料的 Cortex。 "CrossMediaSalesInsightsWeeklyAgg" 包含每週匯總行銷和銷售資料的檢視畫面。
column_mappings.controls 選用:可以包含對目標 KPI 和媒體指標都有因果效應的干擾因素。 [] 如要進一步瞭解控制變數的 Meridian 資料模型,請參閱「控制變數」。
column_mappings.geo 提供地理資訊的資料欄。 "geo" 如要瞭解 Meridian 資料建模的詳細資訊,請參閱「收集及整理資料」。
column_mappings.kpi 模型的目標 KPI。 "number_of_sales_orders" 或「conversions" 」。 如要瞭解 Meridian 資料建模的詳細資訊,請參閱「收集及整理資料」。
column_mappings.media 提供頻道曝光次數的資料欄陣列。 [ "Tiktok_impression",
"Meta_impression",
"YouTube_impression",
"GoogleAds_impression"
]
如要瞭解 Meridian 資料建模的詳細資訊,請參閱「收集及整理資料」。
column_mappings.media_spend 提供管道支出的資料欄。 [ "Tiktok_spend",
"Meta_spend",
"YouTube_spend",
"GoogleAds_spend"
]
如要瞭解 Meridian 資料建模的詳細資訊,請參閱「收集及整理資料」。
column_mappings.population 每個地理區域的人口數。 "population" 如要瞭解 Meridian 資料建模的詳細資訊,請參閱「收集及整理資料」。
column_mappings.revenue_per_kpi 每個 KPI 單位的平均收益。 "average_revenue_per_sales_order""" 如要瞭解 Meridian 資料建模的詳細資訊,請參閱「收集及整理資料」。
column_mappings.time 時間欄 - 一週的開始 (星期一)。 "time" 如要瞭解 Meridian 資料建模的詳細資訊,請參閱「收集及整理資料」。
channel_names 頻道名稱陣列。 [ "TikTok",
"Meta",
"YouTube",
"GoogleAds"
]
頻道和索引使用的名稱應與 column_mappings.mediacolumn_mappings.media_spend 相符。
data_processing.kpi_type KPI 可以是收益,也可以是其他非收益 KPI。即使最終的 KPI 是收益,您也可以使用非收益 KPI 類型。 "{USE_CASE_SPECIFIC}" 如要瞭解 KPI 的 Meridian 資料模型詳細資料,請參閱 KPI
data_processing.roi_mu 各媒體管道的投資報酬率優先分配。roi_mu (用於筆記本中的 ROI_M)。 {USE_CASE_SPECIFIC} 如要瞭解 Meridian 資料處理的詳細資訊,請務必閱讀並瞭解: 設定模型API 參考資料
data_processing.roi_sigma 先前在每個媒體管道的投資報酬率分配 roi_sigma (在筆記本中與 ROI_M 一起使用)。 {USE_CASE_SPECIFIC} 如要瞭解 Meridian 資料處理的詳細資訊,請務必閱讀並瞭解「設定模型」和「API 參考資料」。
data_processing.sample.prior 從先驗分布中抽取的樣本數。 {USE_CASE_SPECIFIC} 如需 Meridian 資料處理詳細資料,請務必詳閱並瞭解:預設先前參數化API 參考資料
data_processing.sample.posterior.n_chains MCMC 鏈結數量。 {USE_CASE_SPECIFIC} 如要瞭解 Meridian 資料處理的詳細資訊,請務必閱讀並瞭解:設定模型API 參考資料
data_processing.sample.posterior.n_adapt 每個鏈結的調整抽樣次數。 {USE_CASE_SPECIFIC} 如要瞭解 Meridian 資料處理的詳細資訊,請務必閱讀並瞭解:設定模型API 參考資料
data_processing.sample.posterior.n_burnin 每個鏈結的螢幕烙印繪製次數。 {USE_CASE_SPECIFIC} 如要瞭解 Meridian 資料處理的詳細資訊,請務必閱讀並瞭解「設定模型」和「API 參考資料」。
data_processing.sample.posterior.n_keep 每個鏈結要保留的繪圖數,用於推論。 {USE_CASE_SPECIFIC} 如要瞭解 Meridian 資料處理的詳細資訊,請務必閱讀並瞭解「設定模型」和「API 參考資料」。

與 Meridian 的相容性

Cortex Framework 資料基礎和 Meridian 是分開發布的。Cortex Framework 的版本資訊會說明各個版本。在 Meridian 的 GitHub 存放區中,您可以查看最新可用的 Meridian 版本。如要瞭解 Meridian 的先決條件和系統建議,請參閱 Meridian 使用手冊

Cortex Framework 資料基礎版本會使用特定版本的 Meridian 進行測試。您可以在 Jupyter 筆記本中找到相容的 Meridian,如下圖所示:

Meridian 版本筆記本

圖 1:Meridian 版本的筆記本。

如要更新至較新的 Meridian 版本,請修改筆記本中的對應行。請注意,您可能需要在筆記本中進行額外的程式碼調整。

資料模型

本節將說明使用實體關係圖 (ERD) 的 CrossMediaSalesInsightsWeeklyAgg 資料模型。

Cortex for Meridian 依賴單一檢視區塊 CrossMediaSalesInsightsWeeklyAgg 運作。這個檢視區塊的資料來源取決於 k9.Meridian.salesDataSourceType 設定,可以是:

  • BYOD (帶入自有資料):自訂資料整合。
  • SAP_SALES:來自 SAP 系統的銷售資料。
  • ORACLE_SALES:Oracle EBS 系統的銷售資料。

以下章節將分享 CrossMediaForMeridian 的實體關係圖:

BYOD

沒有銷售資料的 CortexForMeridian

圖 2CortexForMeridian,但沒有銷售資料。

SAP

CortexForMeridian 與 SAP 銷售資料

圖 3. CortexForMeridian,並使用 SAP 資料。

OracleEBS

Oracle EBS 銷售資料

圖 4. CortexForMeridian Oracle EBS 資料。

下表顯示 Cortex for Meridian 的 CrossMediaSalesInsightsWeeklyAgg 檢視畫面詳細結構定義:

類型 說明
geo String 用於匯總所有其他值的地理區域。
時間 String 用於匯總所有其他值的時間維度。
Tiktok_impression 整數 廣告在 TikTok 上顯示的次數。
Meta_impression 整數 廣告在 Meta 平台上的顯示次數。
YouTube_impression 整數 廣告在 YouTube 上顯示的次數。
GoogleAds_impression 整數 廣告在 Google Ads 中顯示的次數。
Tiktok_spend 浮點數 在 TikTok 廣告上花費的金額。
Meta_spend 浮點數 在 Meta 廣告上花費的金額。
YouTube_spend 浮點數 在 YouTube 廣告上花費的金額。
GoogleAds_spend 浮點數 在 Google Ads 廣告上花費的金額。
target_currency String 所有收益欄使用的目標幣別。
轉換次數 整數 轉換次數。
number_of_sales_orders 整數 來自 Oracle EBS 或 SAP 的銷售訂單數量。
average_revenue_per_sales_order 浮點數 Oracle EBS 或 SAP 的每筆銷售訂單平均收益。
人口 整數 地理區域的人口規模。

部署作業

本頁面將概略說明部署 Cortex Framework for Meridian 的步驟,以便在 Google Cloud 環境中啟用頂尖的 MMM。

如需快速入門範例,請參閱 Meridian 快速入門範例

架構

Cortex for Meridian 會使用 Cortex Framework 進行行銷,並結合跨媒體資料和銷售資料。您可以從 Oracle EBSSAP 或其他來源系統匯入銷售資料。

下圖說明 Cortex for Meridian 的主要元件:

Cortex for Meridian 架構

圖 5. Cortex for Meridian 架構。

Meridian 元件和服務

部署 Cortex Framework Data Foundation 時 (請參閱部署作業必要條件),您可以在 config.json 檔案中將 deployMeridian 設為 true,為 Meridian 啟用 Cortex。這個選項會啟動額外的 Cloud Build 管道,安裝 Meridian 必要的下列元件和服務:

  • BigQuery 檢視區塊:系統會在名為 CrossMediaSalesInsightsWeeklyAgg 的 K9 報表資料集中建立檢視區塊。這樣一來,您就能從 Cortex Framework 查詢行銷資料和銷售資料。檢視畫面和基礎來源的實際實作方式,取決於您在部署期間選取的銷售資料來源。

  • Cloud Storage bucket:bucket 包含 Cortex 執行 Meridian 時需要的所有構件,以及在下列資料夾中產生的構件:PROJECT_ID-cortex-meridian

    • configuration:定義 Cortex for Meridian 的設定和參數。Colab Enterprise 筆記本會在執行筆記本時使用這項服務。
    • csv:執行 Meridian 後輸出的原始資料會儲存為 CSV 檔案。
    • models:執行 Meridian 後產生的模型會儲存在這裡。
    • notebook-run-logs:每次執行作業的筆記本副本和記錄都會儲存於此。
    • notebooks:內含主要筆記本,其中包含執行 Meridian 適用的 Cortex 的程式碼和邏輯。這個筆記本可進一步自訂,以支援您的特定需求和規定。
    • reporting:這是儲存 Meridian 執行作業報表的資料夾。此外,還包含 HTML 範本,可產生總覽報表,並提供 Meridian 報表輸出內容的連結。
  • Colab Enterprise: Colab Enterprise 是 Google Cloud 上的代管服務,提供安全協作環境,可使用 Jupyter 筆記本執行資料科學和機器學習工作流程。這項服務提供代管基礎架構、企業級安全控制選項,以及與其他 Google Cloud 服務的整合功能,因此適合處理機密資料並需要嚴密管理機制的團隊。用於執行 Jupyter 筆記本的代管環境。

Cortex for Meridian 會使用 Colab Enterprise 定義執行階段範本,並搭配必要基礎架構,自動執行 Meridian。

Colab Enterprise 執行階段範本

圖 6. Colab Enterprise 中的 Meridian 執行階段範本。

使用工作流程觸發端對端管道時,系統會建立執行作業。這會使用最新設定,從 Cloud Storage 執行目前 Jupyter 筆記本的副本。

執行作業

圖 7. 在 Colab Enterprise 中執行 Meridian。
  • 工作流程:名為 cortex-meridian-execute-notebookCloud Workflow 會自動調度管理整個 Cortex for Meridian 管道的執行作業。工作流程會呼叫 Colab Enterprise API,根據執行階段範本建立執行階段,並使用目前的設定執行筆記本,最後將所有結果儲存至 Cloud Storage。

    workflows.png

    圖 8. Meridian 的工作流程。

    工作流程有兩種選用設定:

    1. 您可以提供新的 Cortex for Meridian JSON 設定,做為工作流程的輸入內容。如果這麼做,流程會備份舊設定,並根據您的輸入內容更新設定。詳情請參閱 REPLACE。

    提供新的 Cortex for Meridian JSON 設定,做為工作流程的輸入內容

    圖 9. 修改及執行新輸入 JSON 的範例。
    1. 您可以在 pre_notebook_execution 步驟中啟動任何需要自動執行的額外工作,然後再執行筆記本。例如,從 Google Cloud Cortex Framework 以外的來源載入資料。
  • 服務帳戶:部署期間必須提供專屬服務帳戶。這是為了在 Colab Enterprise 中執行工作流程和筆記本。

Meridian 的其他部署作業參數

config.json 檔案會設定使用 Cortex Framework 執行 Meridian 時所需的設定。這個檔案包含 Cortex for Meridian 的下列參數:

   "k9": {
...
        "deployMeridian": false,
...

    "Meridian":{
            "salesDataSourceType": "",
            "salesDatasetID":"",
            "deploymentType": "",
            "defaultNotebookFile":"meridian_cortex_marketing.ipynb",
            "defaultConfigFile":"cortex_meridian_config.json",
            "gcsBucketNameSuffix": "cortex-meridian",
            "workflow": {
                "template": "create_notebook_execution_run.yaml",
                "name": "cortex-meridian-execute-notebook",
                "region": "us-central1"
            },
            "runnerServiceAccount": "cortex-meridian-colab-runner",
            "colabEnterprise": {
                "region": "us-central1",
                "runtimeTemplateName": "cortex-meridian-template",
                "runtimeMachine_type": "n1-highmem-32",
                "runtimeAcceleratorCoreCount": 1,
                "runtimeAcceleratorType": "NVIDIA_TESLA_T4",
                "executionName": "cortex-meridian-execution",
                "notebookRunLogsFolder": "notebook-run-logs"
            }
        }
}

下表說明每個 Meridian 參數的值和說明:

參數 意義 預設值 說明
k9.deployMeridian 是否要部署 Meridian。 false 選擇是否要部署 Cortex for Meridian,做為資料基礎部署作業的一部分。
k9.Meridian.salesDataSourceType 銷售資料的來源。 - 選擇 BYODSAPOracleEBS
k9.Meridian.salesDatasetID 銷售資料集的 ID。 - 銷售資料集的 ID。視相關 Cortex 資料基礎設定而異。
k9.Meridian.deploymentType 定義部署作業是全新部署還是遞增部署。 - 請選擇介於 initialincremental 之間的值。
k9.Meridian.defaultNotebookFile Jupyter 筆記本檔案。 meridian_cortex_marketing.ipynb 位於 Cloud Storage notebooks 資料夾中的筆記本檔案名稱。
k9.Meridian.defaultConfigFile 用於執行筆記本的設定檔。 cortex_meridian_config.json 其中包含執行筆記本時使用的 Cortex for Meridian 設定。 必須位於 Cloud Storage 的 configuration 資料夾中。
k9.Meridian.gcsBucketNameSuffix Meridian Cloud Storage bucket 的 Cortex 後置字串。 cortex-meridian 值區的完整名稱預設為 {PROJECT_ID}-cortex-meridian。
k9.Meridian.workflow.template 工作流程的範本。 create_notebook_execution_run.yaml 用於建立工作流程的範本。這個工作流程用於啟動筆記本執行作業。
k9.Meridian.workflow.name 工作流程名稱。 cortex-meridian-execute-notebook 工作流程在 Google Cloud 入口網站中顯示的名稱。
k9.Meridian.workflow.region 工作流程的部署區域。 us-central1 工作流程的部署區域。通常會與部署作業的其餘部分相同。
k9.Meridian.runnerServiceAccount Cortex for Meridian 的服務帳戶名稱。 cortex-meridian-colab-runner 用於執行工作流程和 Colab Enterprise 執行的服務帳戶名稱。
k9.Meridian.colabEnterprise.region Colab Enterprise 執行的部署區域。 us-central1 Colab Enterprise 執行的部署區域。通常會與部署作業的其餘部分相同。
k9.Meridian.colabEnterprise.runtimeTemplateName 企業版 Colab 執行階段範本名稱。 cortex-meridian-template 企業版 Colab 執行階段範本名稱。
k9.Meridian.colabEnterprise.runtimeMachine_type 企業版 Colab 筆記本執行階段的機器類型。 n1-highmem-32 企業版 Colab 筆記本執行階段的機器類型。
k9.Meridian.colabEnterprise.runtimeAcceleratorCoreCount 核心數。 1 企業版 Colab 筆記本執行階段的 GPU 加速器核心數。
k9.Meridian.colabEnterprise.runtimeAcceleratorType 企業版 Colab 筆記本執行階段的加速器類型。 NVIDIA_TESLA_T4 GPU 類型。
k9.Meridian.colabEnterprise.executionName 企業版 Colab 筆記本執行階段的執行作業名稱。 cortex-meridian-execution 這個名稱會顯示在 Colab Enterprise - Executions 的網頁介面中。
k9.Meridian.colabEnterprise.notebookRunLogsFolder 執行階段執行的資料夾名稱。 notebook-run-logs 執行 Colab 筆記本時,系統會將記錄和筆記本的執行副本儲存在這裡。

工作流程

工作流程是啟動 Cortex for Meridian 執行的主要介面。系統會部署名為「cortex-meridian-execute-notebook」的預設工作流程,做為 Meridian 的 Cortex 一環。

筆記本執行作業

如要開始執行新的 Cortex for Meridian,請按照下列步驟操作:

  1. 前往 Workflows 中的 cortex-meridian-execute-notebook 筆記本。
  2. 按一下「執行」即可開始新的執行作業。
  3. 首次執行時,請將輸入欄位留空,使用儲存在 Cloud Storage cortex_meridian_config.json 設定檔中的預設設定。
  4. 再次點選「執行」以繼續操作。
  5. 經過短暫延遲後,畫面會顯示工作流程執行狀態:

    執行作業詳細資料

    圖 10. 執行作業詳細資料範例。
  6. 在 Colab Enterprise 中追蹤筆記本執行進度。

工作流程步驟

cortex-meridian-execute-notebook 工作流程包含下列步驟:

步驟 子步驟 說明
init - 初始化參數。
checkInputForConfig - 檢查是否已提供新的設定 JSON 做為工作流程輸入內容。
logBackupConfigFileName 記錄備份設定檔名。
backupConfigFile 在 Cloud Storage 中備份設定檔。
logBackupResult 記錄呼叫 Cloud Storage API 的結果。
updateGCSConfigFile 使用新值更新 Cloud Storage 中的設定檔。
pre_notebook_execution - 這個步驟預設為空白。您可以自訂這項設定。 例如載入資料,或在執行筆記本前進行其他相關步驟。詳情請參閱「工作流程總覽」和「工作流程連接器」。
create_notebook_execution_run - 建立 Colab Enterprise 筆記本執行作業 (透過 Cloud Build 中的殼層指令碼)。
notebook_execution_run_started - 輸出完成結果。

自訂 Meridian 執行工作流程

您可以在「工作流程」輸入欄位中提供自己的設定 JSON 檔案,自訂 Meridian 執行作業:

  1. 在輸入欄位中輸入修改後設定的完整 JSON。
  2. 工作流程隨後會:
    1. 將 Cloud Storage 中現有的 cortex_meridian_config.json 檔案替換為提供的 JSON。
    2. Cloud Storage/configuration 目錄中備份原始設定檔。
    3. 備份檔案名稱的格式為 cortex_meridian_config_workflow_backup_workflow_execution_id.json,其中 workflow_execution_id 是目前工作流程執行的專屬 ID (例如 cortex_meridian_config_workflow_backup_3e3a5290-fac0-4d51-be5a-19b55b2545de.json)。

Jupyter 筆記本總覽

Python 筆記本 meridian_cortex_marketing.ipynb 會處理將輸入資料載入並執行 Meridian 模型的核心功能,該筆記本位於 Cloud Storage bucket 的 notebooks 資料夾中。

筆記本的執行流程包含下列步驟:

  1. 安裝必要套件 (包括 Meridian),並匯入必要程式庫。
  2. 載入與 Cloud Storage 和 BigQuery 互動的輔助函式。
  3. 從 Cloud Storage 的 configuration/cortex_meridian_config.json 檔案擷取執行設定
  4. 從 BigQuery 內的 Cortex Framework 資料基礎檢視畫面載入 Cortex Framework 資料。
  5. 設定 Meridian 模型規格,並將行銷和銷售的 Cortex Framework Data Foundation 資料模型對應至 Meridian 模型輸入結構定義。
  6. 執行 Meridian 抽樣,並產生摘要報表,儲存至 Cloud Storage (/reporting)。
  7. 針對預設情境執行預算最佳化工具,並將摘要報表輸出至 Cloud Storage (/reporting)。
  8. 將模型儲存至 Cloud Storage (/models)。
  9. 將 CSV 結果儲存至 Cloud Storage (/csv)。
  10. 產生總覽報表並儲存至 Cloud Storage (/reporting)。

匯入筆記本,手動執行及編輯

如要自訂或手動執行筆記本,請從 Cloud Storage 匯入:

  1. 前往 Colab Enterprise。
  2. 按一下「我的筆記本」
  3. 按一下「匯入」
  4. 選取「Cloud Storage」做為匯入來源,然後從 Cloud Storage 選取筆記本。
  5. 按一下「匯入」
  6. 筆記本隨即載入並開啟。

筆記本執行結果

如要查看筆記本執行結果,請開啟筆記本的完整副本,其中包含所有儲存格輸出內容:

  1. 前往 Colab Enterprise 的「執行」
  2. 從下拉式選單中選取相關區域。
  3. 在要查看結果的筆記本執行作業旁邊,按一下「查看結果」
  4. Colab Enterprise 會在新分頁中開啟筆記本的執行結果。
  5. 如要查看結果,請點選新分頁。

執行階段範本

Google Cloud Colab Enterprise 會使用執行階段範本定義預先設定的執行環境。Cortex for Meridian 部署作業包含預先定義的執行階段範本,適用於執行 Meridian 筆記本。系統會自動使用這個範本,為筆記本執行作業建立執行階段環境。

執行階段範本

圖 11. 執行階段範本。

如有需要,您可以手動建立其他執行階段範本