【數位金融底層技術 03】即時風控與詐欺偵測:Redis + AI 在台灣銀行的實戰藍圖

REAL-TIME FRAUD PREVENTION

當詐欺變成 毫秒級戰爭

金融風控不再是日終分析,而是在交易發生的瞬間完成判斷與攔阻。

2025 年,風險發生速度比想像更快

台灣金融詐欺金額突破 80 億元,其中超過 60% 發生在帳戶被盜用後 30 分鐘內。

有受害者描述: 09:00 收到門號異常簡訊 09:15 銀行 App 無法登入 09:30 帳戶已被轉空 整個過程不到半小時。

過去依靠日終批次分析與人工追查的模式,已難以追上 AI 深偽、自動化腳本與人頭帳戶網路化的速度。

可疑交易需要即時攔阻,而不是隔天才發現。

現代詐欺如何在幾分鐘內完成?

01
取得 OTP
透過社交工程、釣魚頁面取得驗證資訊
02
登入並修改安全設定
快速奪取控制權
03
小額測試轉帳
降低異常偵測機率
04
快速拆單轉出
降低攔阻成功率
05
多層人頭帳戶洗錢
增加追回難度

「即時」背後代表的技術現實

毫秒級決策

交易送出到批准/拒絕,使用者期待 1–3 秒內完成。

多維資料整合

同時查詢歷史行為、裝置指紋、IP、黑名單與關聯帳戶。

AI 推論延遲壓力

模型推論通常需要 50–500ms,不可拖垮整體體驗。

高誤判成本

攔錯正常交易,直接影響客訴與品牌信任。

因此,越來越多金融機構開始重新思考即時資料架構。 Redis + AI 已成為打造即時風控的重要技術組合
EVENT-DRIVEN ARCHITECTURE

整體架構:事件驅動+多層快取+模型推論

高層流程可以簡化成幾件事:交易先進事件流,風控服務並行處理,再由決策服務彙整結果,最後只將確認可入帳的交易送進 Core Banking。

1

交易請求 先寫進事件流,例如 Redis Stream,避免所有檢查一開始就綁死在同步呼叫上。

2

風控拆成多條路徑 並行處理,包含規則引擎、AI 模型與基本交易檢查。

3

把結果集中回 Redis,最後由決策服務快速彙整並做出綜合判斷。

4

真正寫進 Core Banking 的,只保留最終確認要入帳的交易。

架構流程圖

點擊圖片可放大查看
Redis 即時風控架構流程圖
KEY PRINCIPLE 約 95% 的讀取查詢都由 Redis 吸收,Core Banking 僅專注處理最後的入帳與權威紀錄。
SCENE 01|EVENT STREAM

事件流:金融交易的「神經系統」

在即時風控場景中,交易不應該被一條同步鏈路一路拖慢。Redis Stream 可將交易轉為事件流,讓規則引擎、AI 風控、行為分析與審計寫入並行處理。

傳統作法的問題:同步鏈路越堆越長

一筆交易在傳統架構中,往往需要依序完成多個檢查。只要其中一個服務變慢,整條鏈路就會被拖住。

查餘額 50ms → 查黑名單 30ms → 呼叫風控引擎 200ms → 寫入資料庫 100ms
總延遲:約 380ms

Redis Stream 解法:把風控拆成事件流

交易先被寫入 Stream,後續由多個消費者各自讀取與處理。每個模組可以獨立擴充,不必全部塞在同一條同步鏈路上。

交易事件 → Redis Stream → 規則引擎/AI 風控/行為分析/審計寫入 → 決策服務彙整

用 Redis Stream 把風控拆成並行處理

從交易寫入、消費者並行處理,到結果回寫與決策服務彙整,可以形成更穩定、可擴充的即時風控流程。

1

交易先寫進事件流

將交易金額、商戶、裝置、IP 與時間戳寫入 Redis Stream。

2

多個消費者並行處理

規則引擎、AI 風控、行為分析與審計寫入,可各自獨立讀取事件。

3

結果回寫給決策服務

各服務將結果寫回 Redis,決策服務再依決策矩陣做最終判斷。

交易寫入 Redis Stream
XADD txn:events *
  user_id "U123456"
  amount 5000
  merchant "7-11"
  device_id "D789"
  ip "1.2.3.4"
  timestamp 1234567890
消費者群組讀取事件
XREADGROUP GROUP risk-engine consumer1
STREAMS txn:events >

決策服務如何做判斷?

全部通過 交易放行,進入後續入帳流程。
高風險 拒絕交易,或要求使用者補做身分驗證。
模型不確定 送進人工覆核隊列,避免誤攔正常交易。

事件流處理視圖

點擊圖片可放大查看
Redis Stream 事件流處理視圖
OBSERVED IMPACT

實際觀察到的效果

約 50ms 使用者感知延遲從同步 380ms 壓低至主流程只等待關鍵檢查。
5 倍以上 系統吞吐量可從每秒約 2,000 筆提升到 10,000 筆以上。
不中斷 單一風控子系統掛掉時,其他流程仍能維持交易服務。
SCENE 02|FEATURE STORE

特徵向量快取:讓 AI 模型「有料又不塞車」

成熟的詐欺偵測模型通常需要大量即時特徵。Redis 可作為 Feature Store,先將高頻特徵算好並放進快取,讓模型推論時快速取用。

為什麼特徵工程常卡在風控關鍵路徑?

一筆交易如果要臨時計算近 7 天交易次數、近 30 天平均單筆金額、夜間交易比例、跨境交易頻率、裝置變更次數與黑名單關聯度,背後往往需要多次查詢與聚合。

近 7 天交易次數
近 30 天平均金額
夜間交易比例
跨境交易頻率
裝置變更次數
黑名單關聯度

Redis Feature Store:先算好,推論時直接取

把常用特徵預先寫入 Redis Hash,推論時一次撈完,避免在交易同步鏈路中跑多個 JOIN 與聚合查詢。

複雜特徵可由背景批次或 Streaming Job 定期重算回寫;簡單指標則可在交易完成後用增量方式即時更新。

用 Redis 當 Feature Store 的四個關鍵動作

從預先儲存特徵、推論時一次撈完,到用增量維持新鮮度,讓 AI 風控模型可以在低延遲下取得足夠資料。

1

預算特徵

將常用特徵放進 Redis Hash,作為推論時的即時資料來源。

2

一次撈完

推論時用 HGETALL 快速取得使用者特徵向量。

3

增量更新

交易完成後用 HINCRBY、HINCRBYFLOAT 更新簡單指標。

4

擴充來源

把裝置、IP、地理位置也納入特徵來源,輔助即時判斷。

特徵寫入 Redis Hash
Key: features:{user_id}
Fields: {
  txn_count_7d: 23,
  avg_amount_30d: 1500,
  night_txn_ratio: 0.12,
  cross_border_count: 2,
  device_change_count_30d: 1,
  risk_network_score: 0.05,
  last_updated: 1234567890
}

TTL: 1 小時
推論時一次撈完
HGETALL features:{user_id}
→ 通常 < 1ms
用增量更新特徵新鮮度
HINCRBY      features:{user_id} txn_count_7d 1
HINCRBYFLOAT features:{user_id} total_amount_7d 5000
裝置與 IP 也能成為特徵來源
Key: device:{device_id}
Value: {
  first_seen: timestamp,
  user_count: 1,
  suspicious_activity: false
}

Key: ip:geo:{ip}
Value: {country: "TW", city: "Taipei", isp: "Chunghwa"}

交易進來時,風控可以順便判斷

裝置是否異常? 比對裝置首次出現時間、關聯帳戶數與近期異常活動。
IP 是否高風險? 判斷是否來自高風險地區、代理服務或異常跳點。

Feature Store 視圖

點擊圖片可放大查看
Redis Feature Store 視圖
OBSERVED IMPACT

實際觀察到的效果

800ms → 5ms 單次特徵提取時間大幅下降,推論前資料準備更快。
1.2s → 80ms 端到端 AI 推論延遲下降,更符合即時交易體驗。
50 → 150+ 可支援特徵數提升,整體延遲仍維持在可接受範圍。
SCENE 03|MODEL RESULT CACHE

模型推論結果暫存:不要每一筆都「重新算一遍」

在短時間內連續發生的相似交易,不一定需要每次都重新呼叫模型。透過 Redis 快取模型推論結果,可降低重複計算成本,並穩定高峰時段的風控延遲。

問題:同一使用者短時間多筆交易,模型被重複轟炸

以便利商店繳費、停車、捷運加值為例,同一位使用者可能在 5 分鐘內連刷好幾筆。如果每一筆都重新送模型推論,就會造成計算資源浪費與延遲累積。

CPU/GPU 被重複浪費在相似情境
延遲逐步累積,尖峰時段容易變成瓶頸
模型服務壓力暴增,影響整體穩定性

解法:把模型結果快取起來,再搭配合理失效策略

先定義交易情境的 Hash Key,將模型分數、風險等級與模型版本暫存在 Redis。當交易情境相似且快取尚未過期時,就可直接沿用結果。

關鍵不是盲目快取,而是設計好 context_hash 與失效條件,讓「可重用」與「需重算」的交易被清楚分開。

模型結果快取的四個設計重點

從情境 Hash Key、查快取、主動失效,到多模型結果整合,讓決策引擎能以一次 Redis 查詢取得完整風險分數。

1

定義情境 Key

依交易類型、金額區間、時段等因素組合 context_hash。

2

未命中才推論

命中且未過期就直接使用,未命中才呼叫模型。

3

主動失效

當使用者行為突變時,刪除相關快取並重新判斷。

4

多模型統查

把詐欺、洗錢、信用風險分數整合到同一個 Composite Key。

定義情境 Hash Key
Key: ml:score:{user_id}:{context_hash}
Value: {
  fraud_probability: 0.15,
  risk_tier: "low",
  model_version: "v2.3",
  features_snapshot: {...},
  created_at: timestamp
}

TTL: 5 分鐘
查快取:未命中才真的跑模型
1) 先查 ml:score:{user_id}:{context_hash}
2) 命中且未過期 → 直接用
3) 未命中 → 呼叫模型 → 結果寫回 Redis → 回傳
行為突變時主動失效
DEL ml:score:{user_id}:*
多模型結果整合查詢
Key: risk:composite:{user_id}
Fields: {
  fraud_score: 0.15,
  aml_score: 0.08,
  credit_score: 720
}

什麼時候需要讓快取主動失效?

行為突然跳級 例如新裝置登入、IP 從海外跳回台灣、金額突然放大 10 倍。
登入與交易異常 例如連續多次登入失敗後才成功,代表使用者狀態可能已改變。

推論快取流程圖

點擊圖片可放大查看
Redis 模型推論快取流程圖
FINTECH DATA

某 FinTech 實際數據

約 78% 模型推論快取命中率,代表大量相似交易可直接沿用結果。
下降 65% AI 風控成本明顯下降,GPU 使用時間大幅減少。
100ms 以內 高峰時段風控延遲仍可維持穩定。
SCENE 04|RISK NETWORK

黑名單與關聯網路:
關係複雜,但查詢要在「秒級」

現實世界的詐欺不是單一帳戶,而是跨帳戶、跨裝置、跨 IP 的關聯網路。Redis 可用於管理黑名單與關聯關係,讓風控系統在交易當下快速判斷風險。

現實世界的詐欺,不是單一帳戶,而是網路

常見樣態包括帳戶層層轉移、同一裝置登入多個帳戶、同一 IP 在短時間操作多個帳戶。若交易當下還要靠傳統 SQL 做關聯查詢,容易拖慢判斷。

帳戶 A 轉到 B,再拆到 C、D、E,最後集中到 F
同一支手機或裝置,登入過十幾個不同帳戶
同一個 IP,在 1 小時內操作了幾十個帳戶

Redis 解法:把黑名單與關聯關係放進快速查詢結構

用 Set 管理分級黑名單,用 Hash 或 Set 建立帳戶、裝置、IP 之間的關聯。交易進來時即可快速檢查是否命中高風險網路。

當風險訊號更新時,也能透過 Redis Pub/Sub 廣播,讓所有訂閱風控事件的服務同步更新本地快取。

用 Redis 管理黑名單與關聯關係

從分級黑名單、關聯帳戶快取,到裝置指紋偵測與風險訊號廣播,讓交易判斷不再依賴昂貴的即時關聯查詢。

1

分級黑名單

將已確認詐欺、高度可疑、列管觀察拆成不同 Set。

2

關聯帳戶快取

把同一網路中的關聯帳戶整理成可快速查詢的集合。

3

裝置指紋偵測

用 Sorted Set 記錄裝置與帳戶的使用關係與時間序。

4

風險訊號廣播

發現重大風險時,用 Pub/Sub 讓各服務即時更新狀態。

分級黑名單
Key: blacklist:confirmed    (已確認詐欺)
Type: Set

Key: blacklist:suspicious   (高度可疑)
Type: Set

Key: blacklist:monitoring   (列管觀察)
Type: Set
交易進來時查詢黑名單
SISMEMBER blacklist:confirmed {target_account}
→ 命中就直接拒絕

SISMEMBER blacklist:suspicious {target_account}
→ 要求額外驗證
關聯帳戶快取
Key: network:{account_id}
Type: Set
Members: {related_account1, related_account2, ...}
裝置指紋與多帳戶共用偵測
Key: device:accounts:{device_id}
Type: Sorted Set(以時間排序)
Members: {account1, account2, ...}
風險訊號即時廣播
PUBLISH risk:alert '{"account": "A123", "risk": "confirmed_fraud", "network": [...]}'

交易當下可以快速判斷什麼?

是否命中黑名單 若命中已確認詐欺帳戶,可直接拒絕交易。
是否屬於可疑關聯網路 若收款帳戶與詐欺網路相連,可提高風險等級。
是否需即時通知其他服務 重大風險事件可透過 Pub/Sub 即時廣播。

黑名單與關聯網路視圖

點擊圖片可放大查看
Redis 黑名單與關聯網路視圖
BANKING OBSERVATION

某銀行導入後的觀察

200ms → < 1ms 黑名單查詢時間大幅下降,交易當下可快速判斷。
即時擋下 A 被封鎖後,B 企圖再轉時可立即攔截。
提升 34% 整體詐欺攔截率提升,降低資金流入人頭帳戶風險。
SCENE 05|REVIEW QUEUE

人工覆核隊列與案件追蹤:
讓審核員處理最該優先的案件

當模型判斷不確定,或交易落在灰色區間時,許多案件會進入人工覆核。Redis Sorted Set 可協助建立優先級隊列,讓高風險、高金額、急迫案件優先被處理。

傳統待辦表的幾個痛點

如果人工覆核案件只放在一般資料庫表格中,容易遇到排序不即時、分工不平均與狀態同步延遲等問題。

難以按優先級排隊,高金額與高風險案件可能排在後面
狀態更新不即時,需要輪詢資料庫才知道是否已處理
分工不平均,部分審核員積壓大量案件

Redis 解法:用 Sorted Set 建立優先級隊列

將案件依風險分數、金額權重與等待時間計算優先級,放進 Redis Sorted Set。審核員每次取出最高分案件,避免重要案件被埋在隊列後方。

案件細節可放在 Redis Hash,狀態更新透過 Pub/Sub 即時通知前端,讓使用者看到清楚的處理進度。

用 Redis Sorted Set 做優先級隊列

從案件排隊、案件細節、狀態通知到審核工作量追蹤,讓人工覆核流程更透明,也更容易把有限人力放在高風險案件上。

1

案件排入隊列

以風險分數與金額權重計算 score,存入 Sorted Set。

2

優先取件

審核員取出目前分數最高的案件,先處理最急迫風險。

3

狀態即時更新

覆核完成後寫回 Redis,並透過 Pub/Sub 通知前端。

4

追蹤工作量

紀錄各審核員工作量,讓系統能更平均分配新案件。

把案件放進優先級隊列
Key: review:queue
Type: Sorted Set
Score: 風險分數 * 1000 + 金額權重
Members: {case_id1, case_id2, ...}
審核員取件
ZPOPMAX review:queue 1
→ 取出當下優先分數最高的案件
案件細節放在 Hash
Key: case:{case_id}
Value: {
  user_id,
  amount,
  merchant,
  risk_score,
  ai_reason,
  assigned_to,
  status,
  created_at
}

TTL: 24 小時
狀態更新用 Pub/Sub 即時通知
HSET case:{case_id} status "approved"
PUBLISH case:updates '{"case_id": "C123", "status": "approved"}'
追蹤審核員工作量
Key: reviewer:workload
Type: Hash
Fields: {reviewer1: 5, reviewer2: 3, reviewer3: 8}

這樣做能改善什麼?

優先級更清楚 高風險案件不會被低風險案件淹沒,審核順序更合理。
狀態更即時 前端可即時顯示「審核中」、「已通過」或「已拒絕」。
分工更平均 系統可依審核員工作量,優先分配給負擔較低的人。

人工覆核隊列視圖

點擊圖片可放大查看
Redis 人工覆核隊列視圖
BANKING RESULT

某數位銀行實際效果

45 分鐘 → 8 分鐘 高風險案件平均覆核時間大幅縮短。
提升 40% 審核員案件分配更平均,整體處理效率提升。
進度透明 使用者能即時看到交易暫停後的審核狀態與結果。
ENTERPRISE CONSIDERATIONS

企業級考量:
Redis + AI 在金融機構裡要怎麼「站得住腳」

即時風控不只追求低延遲,也必須同時兼顧模型治理、審計合規、高可用與多地部署。對金融機構來說,Redis + AI 的價值不只是快,而是能在正式營運環境中穩定、可控、可追溯。

1

模型版本管理與 A/B 測試

可以用 Redis 管理當前模型版本與流量切分,讓新模型先承接少量交易,再逐步擴大使用範圍。

模型設定管理
Key: model:config
Value: {
  version_a: "fraud_detection_v2.3",
  version_b: "fraud_detection_v2.4",
  ab_split: 0.1   // 10% 流量走 v2.4
}
流量比例可調整:只需要更新設定,不必重啟服務或大量改程式碼。
模型切換更安全:新版本可先小流量驗證,再逐步放大。
2

審計與合規要求

每一次風控決策都寫進 Redis Stream:方便內稽、稽核日後回溯。
關鍵操作開啟 AOF:確保重要事件可重放,降低資料遺失風險。
定期把事件歸檔到 Data Lake / DWH:滿足風控紀錄保留與監管要求。
3

高可用與多地部署

多 Region 部署:例如台北、台中、高雄皆有叢集,降低單點區域故障風險。
Active-Active 架構:任一機房故障時,其他機房可自動接手。
Redis Enterprise CRDT:在多地同時寫入的情境下,仍能提供最終一致性與簡潔的衝突處理模型。
ENTERPRISE READY 金融級 Redis 架構的關鍵,不只是毫秒級效能,而是能同時滿足治理、稽核、容錯與跨區部署需求。
CONCLUSION

Redis + AI 讓風控從「事後補救」
走向「事前防堵」

把前面的五個情境收斂起來,可以看到 Redis + AI 在即時風控上的核心價值,不只是提升速度,而是讓金融機構能在詐欺發生的當下,完成判斷、攔阻、追蹤與留痕。

1

毫秒級決策

風控從分鐘級批次,拉升到毫秒級即時攔阻,跟上詐欺腳本的速度。

2

AI 模型跑得動,也跑得快

特徵快取與推論結果暫存,讓複雜模型仍能在低延遲下完成判斷。

3

保護 Core Banking

多數風控查詢由 Redis 承接,讓核心系統專注最終入帳與權威紀錄。

4

攔截率實際提升

即時偵測異常行為,把關鍵攔在資金轉出之前,而不是事後追討。

5

合規與審計友善

決策可記錄、事件可回放、邏輯可追溯,讓內稽與監管更有依據。

在金融詐欺日益即時化、自動化與網路化的時代,Redis + AI 已不只是技術選項,而是新一代即時風控系統的關鍵基礎架構。

Redis Enterprise 金融即時風控架構諮詢
REDIS ENTERPRISE CONSULTING

想評估 Redis + AI 如何導入金融即時風控?

從事件流、特徵快取、模型推論暫存,到黑名單關聯網路與人工覆核隊列,Redis Enterprise 可協助金融機構打造低延遲、高可用且符合治理需求的即時風控架構。

若您正在評估智慧金融、小額信貸、微型保險、支付交易或詐欺偵測場景,宏虹可依據既有系統架構與業務流程,協助進行導入評估、架構規劃與 POC 技術驗證。

即時風控架構評估
Redis Enterprise 導入規劃
AI 推論與特徵快取設計
金融級高可用與合規建議