同時做流失預測又要生成虛擬樣本,用什麼模型最合適?
某電信公司希望建立一個模型來預測顧客是否即將流失,並進一步模擬不同促銷或服務策略下顧客的行為變化,以生成多樣化的虛擬樣本資料進行 A/B 測試與行銷策略評估。若要同時兼顧預測與資料生成的需求,最適合採用下列哪一種方法?
一家電信公司有兩個需求同時要滿足:
需求一:預測哪些顧客快要流失(這是分類預測問題)。需求二:模擬在不同行銷策略下,顧客的行為會怎麼變化,並生成多樣的虛擬樣本,用來做 A/B 測試。
問你:哪種方法能同時滿足「預測」和「資料生成」這兩個需求?
一句話總結
要同時做預測又要生成新的虛擬資料,就必須用生成式模型。VAE(變分自編碼器)和 GAN(生成對抗網路)都具備「理解資料分佈」和「生成新樣本」的能力,是唯一能同時滿足兩個需求的方法。
先感受問題:要預測又要模擬,兩件事差很多
假設「中華電信」資料科學團隊收到這個任務:
任務二:模擬「如果對這群用戶推出限時降費方案」,他們的行為會怎麼變,生成虛擬顧客行為資料,做 A/B 測試、評估行銷 ROI
任務一是標準的分類預測,隨機森林、邏輯迴歸都能做。
任務二就不一樣了。你要「生成」原本不存在的資料,模擬「降費方案 A 下 1,000 個虛擬顧客的行為」和「方案 B 下 1,000 個虛擬顧客的行為」,然後比較哪個方案效果更好。
問題來了:隨機森林和邏輯迴歸只會預測,它們根本不會生成新資料。要生成新樣本,模型必須先學會「顧客資料的底層分佈長什麼樣」,然後才能在不同條件下採樣。這就是生成式模型的任務。
為什麼鑑別式模型只能做一半
傳統鑑別式模型(隨機森林、邏輯迴歸、甚至一般 Transformer 分類器)在「流失預測」上很好用,但面對「資料生成」需求有五個根本限制:
- 不學習資料分佈:鑑別式模型只學 P(Y|X)(給資料,預測標籤),不學 P(X)(資料本身長什麼樣)。沒有學 P(X) 就沒有辦法採樣出新的 X。
- 沒有潛在空間可以操控:VAE 有潛在向量 z,改變 z 就能生成不同特性的顧客。隨機森林沒有這個結構,無法說「給我一個對降費方案敏感的顧客樣本」。
- 無法模擬反事實:要模擬「如果這個顧客沒收到優惠券,他還會流失嗎」這種反事實問題(Counterfactual),需要生成式模型的介入能力,鑑別式模型只能做前向預測。
- 無法控制多樣性:A/B 測試需要多樣化的虛擬樣本,覆蓋各種不同的顧客輪廓。鑑別式模型沒有「生成多樣樣本」的機制,它每次給同一筆輸入只會給同一個輸出。
- 無法做條件生成:要生成「在行銷策略 A 下的顧客行為」,需要條件生成(Conditional Generation)能力。VAE 和 GAN 都能做條件版本(Conditional VAE、Conditional GAN),鑑別式模型結構上做不到。
VAE 和 GAN 怎麼同時做預測和生成
回到「中華電信」的案例。用 VAE 或 GAN 可以這樣設計:
第一步,用 VAE 學習顧客資料的潛在分佈:把每個顧客的特徵(月費、通話時數、投訴次數、合約剩餘月數等)壓縮成潛在向量 z。訓練後,潛在空間的不同區域對應不同類型的顧客。
z 偏右的區域:低通話量、月租型、近期投訴過的高流失風險顧客
第二步,做流失預測:在 VAE 的潛在空間上接一個分類頭,預測「這個潛在向量對應的顧客是否會流失」。預測準確率和純分類器相當。
第三步,做條件生成:要模擬「降費方案 A 下的顧客行為」,就在潛在空間裡加入策略條件,重新採樣生成 1,000 筆虛擬顧客資料,再用流失分類頭預測每筆虛擬資料的流失機率。比較兩個策略下的平均流失率,就完成了 A/B 測試。
GAN 的邏輯類似:生成器學習生成「像真實顧客的虛擬樣本」,鑑別器確保樣本的真實性,最終生成器可以在指定條件下生成多樣的虛擬顧客資料。
這就是選項 C 講的:使用變分自編碼器(VAE)或生成對抗網路(GAN)。
技術版:VAE 和 GAN 的生成機制比較
本題沒有程式碼,但相關技術背景值得知道。
VAE(Variational Autoencoder,變分自編碼器)的生成機制:VAE 訓練兩個神經網路:編碼器(Encoder)把輸入 X 壓成潛在向量 z 的均值 μ 和標準差 σ,解碼器(Decoder)從 z 重建 X。生成新樣本時,從潛在空間採樣一個 z,送進解碼器,就得到一筆新的合成資料。VAE 的潛在空間有連續且有意義的結構(靠近的 z 產生相似的樣本),適合做插值和條件生成。
GAN(Generative Adversarial Network,生成對抗網路)的生成機制:GAN 訓練兩個對抗的神經網路:生成器(Generator)G 和鑑別器(Discriminator)D。G 吃隨機雜訊 z,生成假資料;D 判斷資料是真實的還是 G 生成的。兩者互相對抗訓練,最終 G 能生成以假亂真的資料。GAN 生成的樣本通常比 VAE 更「清晰」,但訓練不穩定。
條件生成(Conditional Generation):把條件資訊(如行銷策略類型、折扣力道)也餵給生成器,就能控制生成出「符合特定條件」的虛擬樣本。Conditional VAE(CVAE)和 Conditional GAN(CGAN)都是標準做法,廣泛用於合成資料生成、反事實推理、和場景模擬。
合成資料在 A/B 測試的應用限制:VAE 和 GAN 生成的虛擬資料品質取決於訓練資料的品質和多樣性。如果訓練資料有偏(例如只有過去兩年的資料,沒有特殊事件期間的資料),生成的虛擬樣本也會有偏。合成資料的 A/B 測試結論,通常只能做「方向性參考」,實際決策還需要搭配真實受控實驗。
為什麼其他選項是錯的
A使用傳統隨機森林(Random Forest)
用隨機森林(Random Forest)做流失預測,它是效果不錯的集成學習分類器。
隨機森林只能做分類預測,完全沒有「生成新資料」的能力。它學的是決策邊界,不是資料分佈。要用隨機森林「生成虛擬顧客行為資料」是做不到的。題目明確要求同時兼顧預測與資料生成,隨機森林只滿足一半需求。
知道隨機森林在流失預測(Churn Prediction)領域是常用選擇的考生,沒注意到題目同時要求「資料生成」。看到「預測」就直接選最熟悉的預測模型。
B使用邏輯迴歸(Logistic Regression)模型
邏輯迴歸是最基礎的二元分類模型,預測「流失 / 不流失」的機率。
和隨機森林同樣的問題:邏輯迴歸是純鑑別式模型,只學決策邊界,不能生成新資料。它學的是「什麼特徵組合對應高流失機率」,不是「顧客資料的底層分佈」。沒有辦法從邏輯迴歸採樣出新的虛擬顧客行為。
認為「邏輯迴歸穩定簡單,流失預測夠用」的考生。邏輯迴歸確實穩定,但「夠用」只針對預測任務,題目還有資料生成的需求,這是邏輯迴歸結構上辦不到的事。
D使用強化學習代理(Reinforcement Learning Agent)
強化學習(Reinforcement Learning)讓代理在環境中不斷嘗試行動,依據獎勵信號學習最佳策略。
強化學習適合解決「序列決策」問題,例如「在每個時間點決定要不要給優惠券以最大化長期留客率」。但題目要的不是學習決策策略,而是「生成多樣化虛擬樣本資料」和「預測流失機率」。強化學習既不是分類模型,也不是生成式模型,這個場景用錯了工具。
看到「模擬不同策略下顧客的行為變化」就聯想到強化學習的「策略」(Policy)的考生。強化學習的「策略」是指「代理在每個狀態下採取哪個行動」,和行銷策略模擬的「生成虛擬資料」是兩回事。
同個考點下次怎麼變形
VAE 和 GAN 生成的資料,品質怎麼評估?
看起來像真的就算好?
有幾個常用指標。Fidelity(逼真度):生成樣本的統計特性(均值、標準差、特徵相關性)和真實資料是否接近。Diversity(多樣性):生成的樣本有沒有覆蓋真實分佈的各種模式,而不是集中生成某幾種典型樣本。Utility(有用性):用生成資料訓練的下游模型,在真實資料上的表現是否和用真實資料訓練的模型相當(Train on Synthetic, Test on Real,TSTR)。三個面向缺一不可。
VAE 生成的樣本有時候「模糊」,GAN 生成的更「清晰」,為什麼?
兩個都是生成式模型,應該差不多?
VAE 的訓練目標是重建誤差加 KL 散度,最佳化的是「平均地」重建所有樣本,容易生成出「各個樣本的平均」,表現為模糊或過度平滑。GAN 的訓練目標是讓鑑別器分不出真假,生成器會學習生成「最像真實資料」的樣本,結果通常更銳利。但 GAN 有訓練不穩定(Mode Collapse)的風險,VAE 訓練更穩定但多樣性略遜。
合成資料能完全取代真實資料,用在模型訓練嗎?
合成資料可以無限生成,用來擴增訓練集應該很好?
不能完全取代,但可以補充。合成資料的品質上限受制於真實訓練資料的多樣性和品質。如果用合成資料訓練的模型在真實資料上測試,效果通常比純真實資料訓練的模型略差。最佳策略是「真實資料 + 合成資料混合訓練」,用合成資料填補真實資料稀缺的類別或場景(例如罕見的詐欺模式)。完全替代是天花板問題,目前業界還沒有解法。
醫療臨床試驗資料稀缺,VAE 和 GAN 有被使用嗎?
醫療資料有隱私問題,應該不能用生成的假資料?
反而是最積極的應用場景之一。合成病患資料(Synthetic Patient Data)在醫療研究中越來越普遍,理由是:真實病患資料受 HIPAA 或個資法保護,難以共享;合成資料不包含真實個人資訊,可以公開共享給研究人員。VAE 和 GAN 生成的合成 EHR(電子病歷)資料已被用於訓練罕見疾病分類器、藥物療效預測模型等。評估時通常加入差分隱私(Differential Privacy)保護。
用合成資料做 A/B 測試,結論可信嗎?怎麼知道可信程度?
虛擬樣本跑出來的 A/B 結論,跟真實市場一樣嗎?
可信程度取決於合成資料的 Utility。標準驗證方法叫 TSTR(Train on Synthetic, Test on Real):用合成資料訓練策略模型,在真實資料上測效果;與 TRTR(Train on Real, Test on Real)的效果差距越小,合成資料越可信。另一個方法是先在小規模真實受控實驗驗證合成模擬的方向是否一致,確認後才用合成資料大規模模擬。合成 A/B 的主要價值在「篩選方向」,真實部署前仍建議做小規模真實實驗確認。
想再往下看,這 5 個
- 生成對抗網路(Generative Adversarial Network)由生成器與鑑別器對抗訓練,能生成高品質合成資料;搭配 VAE 是同時滿足預測與資料生成兩需求的主流方案。
- 變分自編碼器(Variational Autoencoder)具潛在空間結構,可控制生成樣本特性;透過操控潛在向量,能模擬不同行銷策略下的顧客行為變化。
- 合成數據(Synthetic Data)生成式模型產出的人工資料,統計特性接近真實資料;A/B 測試用合成樣本能在不暴露真實用戶資料的情況下評估策略效果。
- A/B測試(A/B Testing)隨機對照實驗,比較不同策略的效果;本題需要多樣化虛擬樣本支撐 A/B 測試,正是需要生成式模型的關鍵原因。
- 因果推論(Causal Inference)分析干預行動(如給優惠券)與結果之間的因果關係;生成式模型支援反事實推理,是因果分析在商業場景的重要延伸。