← Data Science and Engineeringภาษาไทย

FEATURE DAG · SHARED STATE · MATERIALIZATION

A feature may be new while most of its computation is not.

Composite features combine reusable observations. Shared-structure features depend on the same normalization, window, graph, spectrum, tokenization or embedding. The engineering task is to identify that common structure, compute it once and preserve its meaning.

COMPOSITE FEATURE

ประกอบค่าที่มีความหมายอยู่แล้ว

risk_pressure = volatility × illiquidity × exposure

Dependency ทุกตัวต้องมีเวลา หน่วย Population และ Version ที่เข้ากันได้ การนำ Feature มาคูณกันไม่ได้ทำให้ Composite มีความหมายโดยอัตโนมัติ

SHARED STRUCTURE

หลาย Feature ใช้ฐานคำนวณเดียวกัน

FFT(window) → RMS · energy · fault bands

การ Reuse เกิดที่ Intermediate Representation แม้ Final Feature จะมีสูตรและวัตถุประสงค์ต่างกัน

01 · SEE THE FEATURE DAG

เริ่มจาก Dependency ไม่ใช่เริ่มจากรายชื่อ Feature

RAW EVENTSprice · sensor · text · transaction
SHARED PREPARATIONclean · align · normalize · sessionize
SHARED REPRESENTATIONwindow · FFT · tokens · graph · embedding
BASE FEATURESf₁f₂f₃
COMPOSITEg(f₁,f₂,f₃)
Reuse boundary

คำนวณร่วมได้เมื่อ Source, Entity, Event-time policy, Window, Parameters และ Version ตรงกัน หากต่างกันเพียงชื่อแต่ความหมายต่าง ห้าม Share อย่างเงียบๆ

02 · COMPOSITE FEATURE ANATOMY

Composite ที่ดีต้องอธิบายได้ว่าประกอบอะไร และเพื่ออะไร

BASE 1purchase_frequency_30d8 orders
×
BASE 2average_margin_rate0.22
×
BASE 3retention_weight0.75
=
COMPOSITEcustomer_value_pressure8 × .22 × .75 = 1.32
Semantic validity

ค่าที่ประกอบกันสัมพันธ์กับแนวคิดเดียวกันจริงหรือเพียง Correlate ในชุดข้อมูลหนึ่ง?

Unit analysis

ผลลัพธ์มีหน่วยอะไร ต้อง Normalize ก่อนบวก/คูณหรือไม่?

Time alignment

ทุก Dependency มาจาก Cut-off เดียวกันและพร้อมใช้ก่อน Decision Time หรือไม่?

Stability

Feature ตัวเดียว Drift หรือ Missing จะทำให้ Composite เปลี่ยนเพียงใด?

03 · COST OF RECOMPUTATION

ทดลองเปรียบเทียบ Separate Pipelines กับ Shared DAG

เป็น Conceptual Cost Model สำหรับสอน ไม่ใช่ Benchmark ของระบบใดระบบหนึ่ง

RECOMPUTE EVERYTHINGcost unitsF × (S + A)
SHARED COMPUTATIONcost unitsS + F × A

04 · TEN SHARED-STRUCTURE FAMILIES

มองหาโครงสร้างที่แพงและใช้ซ้ำบ่อย

ต้นทุนที่ควรมองหาไม่ได้มีเพียงสูตร Final Feature แต่รวมการอ่านข้อมูล การ Join, Sort, Normalize, Window, FFT, Tokenize, Build Graph, Spatial Index และ Model Inference ซึ่งมักแพงกว่า Final Aggregation หลายเท่า เลือกแต่ละกลุ่มเพื่อดูเส้นทางคำนวณและ Reuse Contract

01 · FREQUENCY

ขั้นตอนนี้ถูกเรียกโดย Feature หรือ Model กี่ตัวต่อวัน?

02 · COST

ต้นทุนอยู่ที่ CPU/GPU, I/O, Shuffle, Memory หรือ External API?

03 · STABILITY

Intermediate เปลี่ยนบ่อยแค่ไหน และตรวจ Invalid ได้หรือไม่?

04 · SEMANTICS

ทุก Consumer ต้องการนิยาม เวลา Population และ Version เดียวกันจริงหรือไม่?

01

Market time series

Adjusted price → returns → rolling windows50 ล้าน OHLCV rows · 5,000 assets · 10 years
RAWAdjusted price
EXPENSIVE SHARED WORKCorporate-action adjustment, calendar alignment และ rolling state หลาย Window
REUSABLE STRUCTUREadjusted price · return series · rolling sum/sum²
DOWNSTREAM4 Features
DOWNSTREAM FEATURESmomentum_20drealized_vol_20dRSI_14rolling_beta_60d
WHY REUSE

คำนวณ Return และ Window State ครั้งเดียว ไม่อ่านราคาใหม่ทุก Feature

WORKED SCALE EXAMPLE

ถ้า 12 Features อ่านและปรับราคาแยกกัน จะ scan 600 ล้าน row-equivalents; ถ้าสร้าง adjusted return series ครั้งเดียว scan ฐาน 50 ล้านแถว แล้วทำ final aggregation ที่เบากว่า

WHAT TO MATERIALIZE

materialize adjusted_returns_1d และ rolling_state(sum, sum_sq, count, min, max)

CACHE / FEATURE KEYinstrument_id + trading_date + adjustment_policy + return_version
WHEN TO INVALIDATE OR RECOMPUTE

Split/dividend revision, late price correction, calendar หรือ benchmark version เปลี่ยน

02

Manufacturing signals

Calibrated waveform → window → FFT100 sensors × 20 kHz × 8 hours ≈ 57.6 พันล้าน samples
RAWCalibrated waveform
EXPENSIVE SHARED WORKCalibration, resampling, overlapping windows และ FFT O(N log N)
REUSABLE STRUCTUREwindow boundaries · FFT coefficients · spectral bins
DOWNSTREAM5 Features
DOWNSTREAM FEATURESRMSkurtosiscrest_factorband_energyfault_frequency_power
WHY REUSE

FFT เป็นงานแพง ควรสร้าง Spectrum หนึ่งครั้งแล้วสรุปหลาย Feature

WORKED SCALE EXAMPLE

5 spectral Features ที่รัน FFT แยกกัน = FFT 5 ครั้ง/window; shared spectrum ลดเหลือ 1 FFT + 5 cheap reductions

WHAT TO MATERIALIZE

windowed_fft หรือ selected spectral bands; raw waveform เก็บตาม retention policy

CACHE / FEATURE KEYmachine_id + sensor_id + window_start + sample_rate + calibration_version + fft_config
WHEN TO INVALIDATE OR RECOMPUTE

Calibration, sample rate, window length/overlap หรือ window function เปลี่ยน

03

Bioinformatics

Canonical sequence → tokens/counts1 ล้าน sequences × ความยาวเฉลี่ย 1,000 bases
RAWCanonical sequence
EXPENSIVE SHARED WORKCleaning, canonicalization และ k-mer scan; alignment/folding แพงกว่านั้นมาก
REUSABLE STRUCTUREclean sequence · canonical k-mer counts · length
DOWNSTREAM4 Features
DOWNSTREAM FEATURESGC_contentk_mer_frequencycodon_usagesequence_entropy
WHY REUSE

การ Scan ลำดับและนับ Token เป็นโครงสร้างร่วมของหลาย Feature

WORKED SCALE EXAMPLE

GC, entropy, 3-mer และ 6-mer ที่ scan แยกกันอ่าน sequence ซ้ำ; one-pass counter อัปเดต composition และหลาย k พร้อมกันได้

WHAT TO MATERIALIZE

canonical_sequence_hash, length, base_counts, canonical_kmer_counts

CACHE / FEATURE KEYsequence_hash + alphabet + strand_policy + k + tokenizer_version
WHEN TO INVALIDATE OR RECOMPUTE

Sequence/database revision, ambiguity policy, strand convention หรือ genome build เปลี่ยน

04

Natural language

Normalized document → tokens → corpus statistics10 ล้าน documents · หลายพันล้าน tokens
RAWNormalized document
EXPENSIVE SHARED WORKDecode, language detection, normalization, tokenization, sentence split, document-frequency pass และ embedding inference
REUSABLE STRUCTUREtokens · sentence boundaries · document frequency
DOWNSTREAM5 Features
DOWNSTREAM FEATURESTF_IDFBM25entity_densityreadabilityembedding_input
WHY REUSE

Tokenization และ Corpus Statistics ต้องมี Version เดียวกันทั้ง Pipeline

WORKED SCALE EXAMPLE

TF-IDF กับ BM25 ไม่ควร tokenize corpus คนละรอบ; entity density/readability reuse sentence/token boundaries; embedding reuse normalized model input

WHAT TO MATERIALIZE

document tokens, offsets, sentence boundaries, corpus DF และ embedding เมื่อมี reuse สูง

CACHE / FEATURE KEYdocument_hash + language + tokenizer_version + corpus_snapshot + model_version
WHEN TO INVALIDATE OR RECOMPUTE

Document edit, tokenizer/model/corpus reference หรือ privacy redaction เปลี่ยน

05

Retail & customer

Clean transaction lines → customer timeline500 ล้าน transaction lines · หลาย channel · returns/cancellations
RAWClean transaction lines
EXPENSIVE SHARED WORKIdentity resolution, net-line normalization, currency/tax mapping และ point-in-time customer timeline
REUSABLE STRUCTUREcustomer/order keys · net line value · event timeline
DOWNSTREAM5 Features
DOWNSTREAM FEATURESRFMbasket_sizecategory_affinitypromo_exposurestockout_adjusted_demand
WHY REUSE

Normalize คืนสินค้าและ Identity ครั้งเดียวก่อน Aggregate หลายแบบ

WORKED SCALE EXAMPLE

RFM, affinity, basket และ promotion exposure ที่ join transaction ใหม่ทุกตัวทำให้ logic คืนสินค้าซ้ำและอาจไม่ตรงกัน; shared clean line fact ลดทั้ง compute และ semantic drift

WHAT TO MATERIALIZE

canonical_transaction_line และ customer_daily_aggregate

CACHE / FEATURE KEYcustomer_id_version + order_id + event_date + currency_policy + logic_version
WHEN TO INVALIDATE OR RECOMPUTE

Late return, identity merge/split, exchange-rate revision หรือ product taxonomy เปลี่ยน

06

Cybersecurity

Packets/logs → sessionized flowsล้าน packets/sec หรือหลายพันล้าน log events/day
RAWPackets/logs
EXPENSIVE SHARED WORKParsing, deduplication, clock alignment, flow/session construction และ rolling state
REUSABLE STRUCTUREflow key · session boundary · rolling counters
DOWNSTREAM5 Features
DOWNSTREAM FEATURESflow_durationbytes_per_packetdestination_entropylogin_velocityrare_process_score
WHY REUSE

Sessionization เป็น Shared State; ห้ามให้แต่ละ Feature นิยาม Timeout ต่างกันโดยไม่ตั้งใจ

WORKED SCALE EXAMPLE

duration, bytes/packet, entropy และ velocity ควรอ่าน flow state เดียวกัน; sessionize แยกอาจให้ Timeout และ Direction ต่างกันจน Feature ขัดกัน

WHAT TO MATERIALIZE

canonical_flow, identity_event และ rolling_counter state ตาม retention

CACHE / FEATURE KEYsensor + five_tuple + direction + window + timeout_policy + parser_version
WHEN TO INVALIDATE OR RECOMPUTE

Late packet, NAT mapping, asset identity, timeout/parser หรือ detection-policy เปลี่ยน

07

Graph analytics

Edges → canonical graph snapshot100 ล้าน nodes · 1 พันล้าน edges ต่อ snapshot
RAWEdges
EXPENSIVE SHARED WORKCanonical edge build, deduplication, adjacency, connected components และ iterative graph algorithms
REUSABLE STRUCTUREnode/edge IDs · adjacency · graph snapshot
DOWNSTREAM5 Features
DOWNSTREAM FEATURESdegreecentralitycycle_featurescommunityneighbor_count
WHY REUSE

Adjacency และ Snapshot แพงกว่าสรุป Feature จึงควร reuse และ version

WORKED SCALE EXAMPLE

Degree, neighbor count และ cycle detector reuse adjacency; centrality/community อาจ reuse snapshot และ partitions แม้ algorithm ต่าง

WHAT TO MATERIALIZE

graph_snapshot, adjacency partitions, node mapping และ selected expensive embeddings

CACHE / FEATURE KEYgraph_id + snapshot_time + edge_policy + directed_flag + algorithm_version
WHEN TO INVALIDATE OR RECOMPUTE

Edge correction, snapshot cutoff, directed/weighted policy หรือ node-resolution เปลี่ยน

08

Geospatial

Coordinates → projected/indexed geometry100 ล้าน GPS points · 5 ล้าน POIs/road segments
RAWCoordinates
EXPENSIVE SHARED WORKCRS transformation, map matching, spatial index build และ candidate search
REUSABLE STRUCTURECRS transform · spatial index · map matching
DOWNSTREAM5 Features
DOWNSTREAM FEATURESdistancespeedPOI_densityregion_membershipdwell_time
WHY REUSE

Projection และ Spatial Index ใช้ร่วมกันได้หลาย Spatial Join

WORKED SCALE EXAMPLE

Speed, dwell, region membership และ POI density ไม่ควร project/map-match จุดเดิมใหม่ทุก Feature; reuse matched trajectory และ index

WHAT TO MATERIALIZE

projected_point, matched_segment, trajectory_session และ versioned spatial index

CACHE / FEATURE KEYentity + event_time + CRS + map_version + matching_config
WHEN TO INVALIDATE OR RECOMPUTE

Base map/POI revision, CRS, GPS correction, trajectory gap หรือ matching threshold เปลี่ยน

09

Computer vision

Decoded image → normalized tensor/backbone10 ล้าน images หรือ video หลายล้าน frames
RAWDecoded image
EXPENSIVE SHARED WORKDecode, resize, color conversion และ CNN backbone inference
REUSABLE STRUCTUREdecode · resize · normalization · backbone activations
DOWNSTREAM5 Features
DOWNSTREAM FEATUREScolor_histogramedge_densitytextureshapeCNN_embedding
WHY REUSE

อย่า Decode/Resize หรือรัน Backbone ซ้ำเพื่อ Head แต่ละตัว

WORKED SCALE EXAMPLE

หลาย Classification/Detection Heads ไม่ควรรัน backbone ซ้ำ; color/edge/texture ก็ reuse decoded normalized image แม้ branch ต่าง

WHAT TO MATERIALIZE

normalized tensor, augmentation manifest และ backbone activation ตามชั้นที่กำหนด

CACHE / FEATURE KEYimage_hash + crop/resize + color_space + weights + layer + preprocessing_version
WHEN TO INVALIDATE OR RECOMPUTE

Image/crop, augmentation seed, model weights/layer หรือ normalization เปลี่ยน

10

Healthcare timeline

Normalized clinical events → patient windowsพันล้าน clinical events จากหลายระบบและหลายหน่วย
RAWNormalized clinical events
EXPENSIVE SHARED WORKPatient identity, code mapping, unit conversion, deduplication และ point-in-time event ordering
REUSABLE STRUCTUREpatient identity · unit mapping · event/available time
DOWNSTREAM5 Features
DOWNSTREAM FEATURESlab_deltamedication_exposurecomorbidity_countvital_trendvisit_frequency
WHY REUSE

Unit normalization และ Point-in-time Timeline เป็นฐานร่วมที่ต้องกำกับอย่างเข้มงวด

WORKED SCALE EXAMPLE

lab delta, vital trend, medication exposure และ visit frequency ควรใช้ timeline ที่ normalize ครั้งเดียว มิฉะนั้นหน่วยและ availability cutoff อาจไม่ตรงกัน

WHAT TO MATERIALIZE

normalized clinical event และ patient window index; จำกัดตาม governance

CACHE / FEATURE KEYpatient_key_version + event_id + event_time + available_at + terminology/unit_version
WHEN TO INVALIDATE OR RECOMPUTE

Late result, corrected lab, identity merge, terminology mapping, consent หรือ access policy เปลี่ยน

05 · IMPLEMENTATION PATTERNS

Reuse ไม่ได้แปลว่า Cache ทุกอย่าง

01 · Expression DAG

Canonicalize Expression และหา Common Subexpression ก่อนสร้าง Execution Plan

return → rolling_sum
return → rolling_sum_sq
02 · Window State

รักษา sum, count, sum², min/max queue ต่อ Entity แล้วอัปเดตแบบ Incremental

update: O(1) / event
03 · Materialized Intermediate

เก็บ FFT, Embedding หรือ Graph Snapshot เมื่อแพง ใช้บ่อย และมี Freshness Contract ชัดเจน

key = entity + as_of + version
04 · Offline/Online Parity

ใช้ Definition เดียวกันแต่ Execution ต่างกัน และทำ Parity Test ระหว่าง Batch กับ Streaming

|offline-online| ≤ tolerance

06 · WHEN SHARING BECOMES WRONG

สิ่งที่ดูเหมือนซ้ำ อาจไม่ใช่ Computation เดียวกัน

Window mismatch

30 calendar days ≠ 30 observations ≠ 30 trading days

Availability mismatch

Event Time เดียวกัน แต่ข้อมูลหนึ่งออกผลภายหลัง

Population mismatch

Z-score เทียบลูกค้าทั้งหมด ≠ เทียบลูกค้าใน Segment

Adjustment mismatch

Raw price ≠ split-adjusted ≠ total-return adjusted

Version mismatch

Tokenizer, Genome Build, CRS หรือ Model Weight ต่างกัน

Leakage by reuse

Intermediate ที่สร้างจากข้อมูลอนาคตถูกนำไปใช้ใน Training Row อดีต

07 · DESIGN CHECKLIST

ก่อนคำนวณ Feature ใหม่ ให้ถามว่ามีอะไรสร้างไว้แล้ว

  1. Trace dependencies.Feature นี้ประกอบจาก Raw Field หรือ Feature ใด?
  2. Find common subexpressions.มี Join, Window, Tokenization, FFT, Graph หรือ Embedding ที่ซ้ำหรือไม่?
  3. Verify semantic equivalence.Entity, Time, Unit, Parameter และ Version เหมือนกันจริงหรือไม่?
  4. Estimate economics.Compute, Storage, Freshness และ Operational Complexity คุ้มกันหรือไม่?
  5. Choose materialization boundary.เก็บ Base Feature, Intermediate Representation หรือ Final Composite ที่ใด?
  6. Test parity and lineage.สร้างซ้ำได้ อธิบาย Dependency ได้ และไม่มี Leakage หรือไม่?

FINAL PRINCIPLE

Do not optimize Feature by Feature.
Optimize the shared structure of knowledge.

เป้าหมายไม่ใช่ลดจำนวนสูตร แต่ลดการทำงานซ้ำโดยไม่ทำลายความหมาย ความถูกต้องตามเวลา และความสามารถในการสร้างซ้ำ