<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Manas Sharma</title>
    <description>The latest articles on DEV Community by Manas Sharma (@manas8114).</description>
    <link>https://dev.to/manas8114</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3864266%2Fec5b422b-f4ef-4de1-a59f-8a342b456043.png</url>
      <title>DEV Community: Manas Sharma</title>
      <link>https://dev.to/manas8114</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/manas8114"/>
    <language>en</language>
    <item>
      <title>Causal AI vs. Correlation in Telecom Fraud Detection: Why It Matters</title>
      <dc:creator>Manas Sharma</dc:creator>
      <pubDate>Mon, 06 Apr 2026 17:05:20 +0000</pubDate>
      <link>https://dev.to/manas8114/causal-ai-vs-correlation-in-telecom-fraud-detection-why-it-matters-4a37</link>
      <guid>https://dev.to/manas8114/causal-ai-vs-correlation-in-telecom-fraud-detection-why-it-matters-4a37</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Telecom fraud costs the industry $3.8B/year. Most systems predict it — but can't explain what causes it. Here's why causality changes everything.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Problem with Correlation
&lt;/h2&gt;

&lt;p&gt;If you've ever built a fraud detection model, you've seen SHAP plots showing that Call Data Record (CDR) volume "correlates" with SIM box fraud. So what? Do you throttle CDR intake? Restrict call volumes? Neither makes intuitive sense — but correlation-based ML &lt;em&gt;will&lt;/em&gt; flag it as the most important feature.&lt;/p&gt;

&lt;p&gt;This is &lt;strong&gt;Simpson's Paradox in production&lt;/strong&gt;: a model tells you the right &lt;em&gt;association&lt;/em&gt; but the wrong &lt;em&gt;intervention&lt;/em&gt;. In telecom, acting on the wrong lever doesn't just waste budget — it actively worsens revenue leakage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter Causal AI
&lt;/h2&gt;

&lt;p&gt;Causal inference flips the question from "what predicts fraud?" to "&lt;strong&gt;what causes fraud, and how much does fixing it help?&lt;/strong&gt;"&lt;/p&gt;

&lt;p&gt;Our system — the &lt;strong&gt;Causal Decision Intelligence Engine (CDIE)&lt;/strong&gt; — combines two approaches:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Causal Structure Discovery (GFCI)
&lt;/h3&gt;

&lt;p&gt;Instead of assuming relationships, we &lt;em&gt;learn&lt;/em&gt; them from data using the &lt;strong&gt;Greedy Fast Causal Inference&lt;/strong&gt; algorithm, which handles hidden confounders that standard ML ignores. We then cross-validate with &lt;strong&gt;PCMCI+&lt;/strong&gt; for temporal causality — because fraud patterns evolve over time, not instantaneously.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Doubly-Robust Effect Estimation (LinearDML)
&lt;/h3&gt;

&lt;p&gt;Once we know the structure, we measure &lt;em&gt;how much&lt;/em&gt; each intervention moves the needle. Using &lt;strong&gt;Double Machine Learning&lt;/strong&gt; (EconML), we get &lt;strong&gt;ATE estimates with 95% confidence intervals&lt;/strong&gt;, not just binary scores. The kicker? It's "doubly robust" — it stays consistent even if one of your nuisance models is misspecified.&lt;/p&gt;

&lt;h2&gt;
  
  
  Validation That Matters Before Trust
&lt;/h2&gt;

&lt;p&gt;We don't just estimate effects — &lt;strong&gt;we test whether they're real&lt;/strong&gt;. Every causal edge runs through a 3-test refutation suite (DoWhy):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Placebo test&lt;/strong&gt;: Replace the treatment with a random variable — effect should vanish.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Random confounder test&lt;/strong&gt;: Add a fake common cause — estimate should be stable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data subset test&lt;/strong&gt;: Re-estimate on random subsets — results should be consistent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Edges that fail get &lt;strong&gt;quarantined&lt;/strong&gt;. Only validated edges make it into the Safety Map.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────┐
│  OPEA GenAI Layer (Intel-Optimized)          │
│  • LLM TextGen (neural-chat-7b)              │
│  • TEI Embedding (bge-base-en-v1.5)          │
│  • TEI Reranking (bge-reranker-base)         │
└──────────────────┬──────────────────────────┘
                   │
┌──────────────────▼──────────────────────────┐
│  CDIE Causal Engine                         │
│                                              │
│  OFFLINE          GFCI → DoWhy → dML → MAPIE│
│  ONLINE           Safety Map + RAG + LLM     │
│                                              │
│  RESULT           "Tighten fraud policy →    │
│                   18% ↓ leakage [14, 22%] CI"│
└─────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why OPEA?
&lt;/h2&gt;

&lt;p&gt;We built on &lt;strong&gt;Intel's OPEA (Open Platform for Enterprise AI)&lt;/strong&gt; because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Composable&lt;/strong&gt;: Each GenAI component is a standalone microservice — we can swap LLMs, embedding models, or rerankers without rebuilding the pipeline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intel-optimized&lt;/strong&gt;: AMX/AVX-512 acceleration gives us ~18x throughput vs. baseline on CPU-only infrastructure. No GPU required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise-ready&lt;/strong&gt;: Built for scale from line one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We've also &lt;strong&gt;proposed a Causal Inference GenAIComp&lt;/strong&gt; to the OPEA project (&lt;a href="https://github.com/opea-project/GenAIComps/issues/2063" rel="noopener noreferrer"&gt;GitHub Issue #2063&lt;/a&gt;) — because causal reasoning deserves to be a first-class component in any enterprise AI stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Built for ITU AI4Good
&lt;/h2&gt;

&lt;p&gt;CDIE v5 is our submission to the &lt;strong&gt;ITU AI4Good OPEA Innovation Challenge&lt;/strong&gt;. It demonstrates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Causal discovery&lt;/strong&gt; from telecom observational data (GFCI + PCMCI+)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refutation-validated&lt;/strong&gt; effect estimates (not just point estimates)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conformal prediction&lt;/strong&gt; intervals (MAPIE) for distribution-free uncertainty&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OPEA integration&lt;/strong&gt;: RAG pipeline generating executive-ready causal intelligence reports&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human-in-the-loop&lt;/strong&gt;: Expert corrections, knowledge adjudication, federated causal learning&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Results So Far
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Benchmarked live on a 12-node synthetic telecom SCM (Windows 11, Python 3.13, Intel Alder Lake):&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Causal Discovery (own SCM ground truth)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Precision&lt;/td&gt;
&lt;td&gt;93.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recall&lt;/td&gt;
&lt;td&gt;88.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;F1 Score&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;90.9%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SHD&lt;/td&gt;
&lt;td&gt;2 (15 TP, 1 FP, 2 FN)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Refutation Validation (DoWhy 3-test suite)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pass rate: 93.8% (15 validated, 1 quarantined)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Online Query Performance (Safety Map Lookup)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mean Latency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.49 ms&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Max&lt;/td&gt;
&lt;td&gt;0.64 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory (RSS)&lt;/td&gt;
&lt;td&gt;96.0 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pre-computed Scenarios&lt;/td&gt;
&lt;td&gt;640&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Training Data &amp;amp; Artifacts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;2,000 rows × 14 variables (424 KB CSV)&lt;/li&gt;
&lt;li&gt;safety_map.db: 776 KB (SQLite)&lt;/li&gt;
&lt;li&gt;safety_map.json: 806 KB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hardware&lt;/strong&gt;: Intel64 Family 6 Model 198, 12 threads, OMP_NUM_THREADS=12. AMX not active in this run (DNNL_MAX_CPU_ISA not set).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The next step&lt;/strong&gt;: real-world validation against operator data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code &amp;amp; Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source code&lt;/strong&gt;: &lt;a href="https://github.com/Manas8114/Agent" rel="noopener noreferrer"&gt;github.com/Manas8114/Agent/cdie-v5&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OPEA Contribution&lt;/strong&gt;: &lt;a href="https://github.com/opea-project/GenAIComps/issues/2063" rel="noopener noreferrer"&gt;github.com/opea-project/GenAIComps/issues/2063&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo video&lt;/strong&gt;: &lt;em&gt;(Coming soon — recording after pipeline cleanup)&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;This is built for the ITU AI4Good OPEA Innovation Challenge by Team CDIE. Questions? Comments? Drop them below — I'll answer every one.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>causal</category>
      <category>telecomm</category>
      <category>python</category>
    </item>
  </channel>
</rss>
