← warin.meTHE ESPERTISE ONLINE · INCREMENTAL CNBModel administration

THE ESPERTISE ONLINE · THAI NLP · REVERSIBLE DATABASE

ฟังภาษาของผู้คน
แล้วเรียนรู้ต่อ

The Espertise Online เปลี่ยนข้อความภาษาไทยสั้น ๆ ให้เป็นสัญญาณรูปแบบการสื่อสาร 16 กลุ่มและ 4 แกน พร้อมความน่าจะเป็น โมเดลออนไลน์เรียนจากตัวอย่างที่มนุษย์ยืนยันได้ทันทีโดยไม่ต้องฝึก corpus ทั้งหมดใหม่ และย้อน Learn, Restore หรือแก้ label ได้จากฐานข้อมูลทุกชิ้น งานนี้สานต่อจาก The Espertise โครงงานนักศึกษาปี 2023 และงานวิจัย Thai MBTI Psychographic Segmentation เพื่อให้แบบจำลองที่เคยใช้ทดลองกลายเป็นห้องปฏิบัติการซึ่งเติบโต ตรวจสอบ และนำไปสอนได้จริง

RESEARCH MACRO-F10.83Accuracy 0.84 · author-disjoint test
ONLINE ACTIVE0reversible documents
FEATURE SPACE7,000frozen TF-IDF vocabulary
MODEL REVISION0auditable mutations

LIVE SYSTEM STATUS

รู้ว่าโมเดลใดกำลังตอบ ก่อนอ่านคำตอบ

สถานะนี้อ่านจาก service เดียวกับ Predict และฐานข้อมูล online ไม่ใช้ตัวเลขงานวิจัยแทนสถานะระบบปัจจุบัน

API
Checking…waiting for health check
ENGINE
Incremental ComplementNBbaseline artifact + confirmed online evidence
STORAGE
Server-side SQLiterevisioned Learn · Unlearn · Restore · Relabel
CALIBRATION
Not evaluatedค่าที่แสดงคือ model confidence ไม่ใช่ความน่าจะเป็นทางจิตวิทยา

MODEL OBSERVATORY

สถานะโมเดลที่ตรวจสอบได้

แยกผลวิจัยในอดีตออกจากสถานะ deployment ปัจจุบัน และไม่เติมค่าที่ service ยังไม่ได้วัด

BASELINE ARTIFACT6,273 observationsclass observations ใน artifact ที่ deploy
ONLINE EVIDENCE0 activehuman-confirmed reversible documents
REVISION0auditable model mutations
VOCABULARY7,000 frozenunknown terms do not extend this generation
LATENCYNot measured liveควรรายงาน median · p95 · p99
ABSTENTION / DRIFTNot monitored yetควรติดตาม margin และ recognized-feature rate

PREDICT · READ ONLY

ฟังน้ำเสียงจากข้อความไทย

Predict ไม่เปลี่ยนโมเดล การเรียนรู้จะเกิดขึ้นต่อเมื่อผู้ดูแลยืนยัน label ในส่วน Learn เท่านั้น

0 charactersรองรับสูงสุด 100,000 ตัวอักษร
16

MBTI communication types

ผลจะแยก Top 3 แบบ 16-class ออกจากแกน E/I · S/N · T/F · J/P ซึ่งคำนวณโดยรวม confidence ของ types ที่มีตัวอักษรเดียวกัน

EXPLAIN PREDICTION

เปิดดูหลักฐาน ไม่ใช่รับเพียงป้ายคำตอบ

คำตอบที่น่าเชื่อถือต้องบอกวิธีรวมแกน ระดับความลังเล และข้อจำกัดของ feature space

01

16-class ranking

Top 3 มาจากคะแนนของ 16 communication types โดยตรง พร้อมช่องว่างระหว่างอันดับหนึ่งและสอง หากช่องว่างต่ำควร Review หรือ Abstain

02

Marginalized four axes

แกนแต่ละคู่ได้จากการรวม confidence ของ types ที่มีตัวอักษรนั้น ไม่ใช่ binary classifier แยกสี่ตัว

03

Feature coverage

แสดง recognized features ที่ service ส่งกลับ ส่วน unknown-feature ratio และ n-gram contribution จะระบุว่า API ยังไม่ส่งค่า จนกว่าจะเพิ่ม endpoint อย่างถูกต้อง

RESTRICTED MODEL DATA OPERATIONS

Predict เป็นสาธารณะ
การเปลี่ยนโมเดลเป็นงานผู้ดูแล

ส่วนต่อไปมี Learn, Relabel, Unlearn, Restore และ Audit ซึ่งเปลี่ยน server-side model จริง ผู้ดูแลต้องตรวจ consent, label และ retention ก่อนทุก mutation

Human-confirmed labelConsent provenanceRevisioned transactionReversible evidence

HUMAN-CONFIRMED ONLINE LEARNING

เพิ่มหลักฐานอย่างรับผิดชอบ

ระบบเก็บ sparse vector เดิมของทุกเอกสาร จึงย้อน Learn ได้ตรงตัว และ Relabel จะทำ Unlearn label เก่าก่อน Learn label ใหม่ใน transaction เดียว

Learn + Certificate

ONLINE LEARNING ARCHITECTURE

One document, one reversible event

Thai preprocessing + TF-IDFตัดคำด้วยพจนานุกรมเดียวกับงานเดิม และสร้าง sparse vectorIncremental ComplementNBอัปเดตเฉพาะ class count และ feature count ของ label ที่ยืนยันSQLite event storeLearn · Unlearn · Restore · Relabel พร้อม revision

ข้อมูล online ทุกชิ้นเก็บข้อความ content hash, sparse vector, label และประวัติเหตุการณ์ไว้ การย้อนกลับจึงใช้ vector เดิม ไม่ประมาณค่าและไม่ต้อง retrain ตัวอย่างก่อนหน้า

ONLINE DATABASE

ตรวจ แก้ label หรือถอนข้อมูล

Suggested MBTI คือผลปัจจุบันของโมเดล ส่วน Confirmed MBTI คือ label ที่มนุษย์ยืนยัน หากไม่ตรงกันสามารถ Review แล้ว Relabel ได้

IDรายการConfirmedSuggested nowStatusOperation
ยังไม่มีข้อมูล online

MODEL AUDIT

ทุก mutation มี revision

ลำดับเหตุการณ์ล่าสุดจากฐานข้อมูลเดียวกับที่ใช้คำนวณโมเดล

  1. ยังไม่มี learning event

RESEARCH ORIGIN · WHY THIS MATTERS

จากเสียงบนสื่อสังคม
สู่สัญญาณที่อธิบายได้

เป้าหมายไม่ใช่การติดป้ายตัวตน แต่คือการศึกษาว่า “ผู้คนสื่อสารอย่างไร” เพื่อออกแบบข้อความที่เหมาะขึ้นและเปิดพื้นที่ให้มนุษย์ตรวจคำตอบของโมเดล

บทนำ

งานการตลาดดิจิทัลมีข้อมูลว่าใครอยู่ที่ไหน สนใจอะไร และเคยทำอะไร แต่ยังตอบได้ไม่ดีเสมอไปว่าควรพูดกับเขาด้วยน้ำเสียงแบบใด โครงการนี้จึงศึกษาคำศัพท์ โครงสร้างประโยค การใช้เหตุผล และน้ำเสียงในข้อความไทย แล้วสรุปเป็น communication-style signals ที่ใช้ประกอบ persona, mood board และการทดลองข้อความโฆษณา

กรอบ MBTI ถูกใช้เป็น operational label สำหรับการสื่อสาร ไม่ใช่การวินิจฉัยทางจิตวิทยา คำตอบหนึ่งข้อความอาจไม่เสถียร จึงควรดู probability, ใช้หลายข้อความต่อผู้ใช้ เปิดทางให้ abstain เมื่อหลักฐานต่ำ และให้มนุษย์ยืนยันก่อนนำข้อมูลกลับไปเรียนรู้

PUBLISHED RESULT

โมเดลโปร่งใสชนะโมเดลใหญ่ในโจทย์นี้

บทความปี 2025 ใช้ author-disjoint split จากข้อมูล 6,690 รายการ แบ่ง train 5,352 และ held-out test 1,338 รายการ TF-IDF + Complement Naïve Bayes ได้ Accuracy 0.84 และ Macro-F1 0.83 ขณะที่ WangchanBERTa ได้ 0.57 และ 0.55 ภายใต้ preprocessing และ partition เดียวกัน

ผลนี้ไม่ได้แปลว่า CNB ชนะ Transformer ทุกโจทย์ แต่ชี้ว่าโมเดล sparse ที่เหมาะกับข้อความไทยสั้น ข้อมูลไม่ใหญ่มาก และ class ไม่สมดุล สามารถให้ความแม่นยำ ความเร็ว และความอธิบายได้ในสัดส่วนที่ดีมาก โดยแกน P ยังคงเป็นสัญญาณที่ยากที่สุด

IMPLEMENTATION DETAIL

Reverse อย่างไร
ให้กลายเป็น Online

เราไม่ได้สร้าง training corpus ที่ไม่มีอยู่ขึ้นใหม่ แต่ใช้ข้อมูลสรุปเชิงสถิติที่โมเดลบันทึกไว้ แล้วออกแบบ data layer สำหรับข้อมูลรุ่นถัดไป

01

อ่าน model artifact

Pipeline ของ scikit-learn เก็บ vocabulary, IDF, class order, smoothing alpha, class_count และ feature_count ของ ComplementNB จึงสามารถคำนวณ decision function เดิมและคง preprocessing contract ไว้ได้

02

สร้าง sparse evidence

ข้อความใหม่ผ่าน normalization และ PyThaiNLP ก่อนแปลงเป็น TF-IDF vector ขนาด 7,000 แต่เก็บเฉพาะ index ที่ไม่เป็นศูนย์ งาน Learn จึงขึ้นกับจำนวน token และ feature ที่พบ ไม่ขึ้นกับจำนวนเอกสารทั้งหมด

03

อัปเดต sufficient statistics

Learn เพิ่ม class_count หนึ่งหน่วยและบวก sparse vector เข้า feature_count ของ class ที่ยืนยัน Unlearn ทำเครื่องหมาย inactive แล้วลบ vector เดิม Relabel ย้าย vector ระหว่างสอง class ใน transaction เดียว

04

ทำฐานข้อมูลให้ย้อนกลับได้

SQLite เก็บ document, SHA-256 content hash, vector JSON, confirmed label, active state และ revision event เมื่อ Restore ระบบนำ vector และ label เดิมกลับมา จึงตรวจบัญชีและทำซ้ำผลได้

05

แยก Predict จาก Learn

การทำนายเป็น read-only เสมอ ไม่มีการเรียนรู้จากคำตอบของตัวเอง การเปลี่ยนโมเดลต้องมี consent, human-confirmed label และรหัสผู้ดูแล ลด feedback loop ที่ทำให้ข้อผิดพลาดขยายตัว

06

ความเร็วแบบ Incremental

Learn/Unlearn/Restore ใช้เวลาประมาณ O(t+k) เมื่อ t คือ token และ k คือ non-zero features เทียบกับ batch retraining ที่ต้องอ่านเอกสารทั้งหมดอีกครั้ง SQLite transaction เพิ่ม durability ขณะที่ sparse update ทำให้ระบบเหมาะกับข้อมูลเข้าเป็นรายวัน

DATA PROVENANCE · NUMBERS WITH CONTEXT

ตัวเลขเดียวกันไม่ได้หมายถึงข้อมูลชุดเดียวกัน

ทุกจำนวนต้องมี source, unit และบทบาทในการทดลองกำกับ

SourceCountUnitUsed forStatus
Published corpus6,690postsreported experimentpaper
Training split5,352postsmodel fittingpaper
Held-out test1,338postsauthor-disjoint evaluationpaper
Deployed artifact6,273class observationslive baselineartifact
Slide axis distribution7,611labels per axisclass-balance illustrationunresolved provenance

RESEARCH METHODOLOGY · FROM TEXT TO SIGNAL

งานวิจัยวัดอะไร
และควบคุมอย่างไร

ความแม่นยำที่น่าเชื่อถือไม่ได้เกิดจาก classifier เพียงตัวเดียว แต่เกิดจากนิยามโจทย์ การคัดข้อมูล การกันข้อมูลรั่ว และ metric ที่เหมาะกับ class imbalance

01 · TASK

สองมุมมองของคำตอบ

Type-level มองเป็นการจำแนก 16 classes เช่น INTJ หรือ ENFP เหมาะกับการสรุปภาพรวม แต่ผิดตัวอักษรเดียวก็นับว่าผิดทั้ง type

Letter-level แยกเป็น binary probability สี่แกน E/I, S/N, T/F และ J/P ช่วยวิเคราะห์ว่าโมเดลลังเลตรงไหน และเหมาะกว่าเมื่อต้องสร้าง tone guideline ที่ต่อเนื่องแทนป้ายกลุ่มแข็ง ๆ

02 · LABEL

Label ต้องมีที่มา

รายงานโครงการรวบรวมข้อมูลจากแบบสอบถามและข้อความสาธารณะ โดยใช้แบบประเมินหลายชุดช่วยตรวจความสอดคล้อง งานต่อยอดให้น้ำหนักกับ label ที่เจ้าของข้อมูลยืนยัน หลีกเลี่ยงตัวอย่างกำกวม และแยก psychographic communication label ออกจากการวินิจฉัยบุคลิกภาพ

สำหรับระบบออนไลน์ เราจึงไม่ Learn จาก suggestion อัตโนมัติ ผู้ดูแลต้องเลือก Confirmed MBTI พร้อมบันทึกแหล่งที่มาและ consent note ทุกครั้ง

03 · SPLIT

กันผู้เขียน ไม่ใช่แค่สุ่มข้อความ

ถ้าข้อความของคนเดียวกันหลุดไปอยู่ทั้ง train และ test โมเดลอาจจำชื่อ สำนวน หรือหัวข้อเฉพาะบุคคลแล้วได้คะแนนสูงเกินจริง งานตีพิมพ์จึงใช้ author-disjoint split: ผู้เขียนใน held-out test ไม่ปรากฏใน training set

Corpus ที่รายงานมี 6,690 instances แบ่ง 5,352 train และ 1,338 test การแยกเช่นนี้ตอบคำถามที่ยากกว่าและใกล้ deployment จริงกว่า: โมเดลใช้กับผู้ใช้ที่ไม่เคยเห็นได้หรือไม่

04 · METRICS

ทำไมต้องดู Macro-F1

Accuracy ให้น้ำหนักตัวอย่างทุกแถวเท่ากัน จึงอาจดูดีแม้โมเดลละเลย type ที่พบน้อย Macro-F1 คำนวณ F1 ของแต่ละ class แล้วเฉลี่ยโดยให้ทุก class มีน้ำหนักเท่ากัน จึงสะท้อนความเป็นธรรมระหว่างกลุ่มได้ดีกว่า

งานวิจัยรายงานทั้ง Accuracy, Macro-F1, Weighted-F1, per-class metrics และ confusion matrix ส่วนระบบใช้งานควรเพิ่ม calibration, abstention rate, drift และผลลัพธ์ A/B ทางธุรกิจด้วย

ModelRepresentationAccuracyMacro-F1Weighted-F1จุดเด่นในการใช้งาน
TF-IDF + ComplementNBThai sparse n-gram features0.840.830.83เร็วบน CPU, ตรวจ feature ได้, incremental statistics ได้
WangchanBERTaThai Transformer representation0.570.550.57มี representation capacity สูง แต่โจทย์ข้อความสั้นและขนาดข้อมูลนี้ยังไม่ให้ผลดีกว่า

ตัวเลขเป็นผลจาก experimental setting ในบทความปี 2025 ไม่ใช่คำรับประกันประสิทธิภาพกับข้อความทุก domain ภาษาเปลี่ยนไปตามเวลาและ platform จึงต้องติดตาม drift และประเมินชุดข้อมูลใหม่เสมอ

CONFERENCE EVIDENCE · WHAT THE EXPERIMENT ACTUALLY SHOWED

อ่านผลให้ลึกกว่า
คะแนนเดียว

สาระจากงานนำเสนอ Thai MBTI Psychographic Segmentation ถูกแยกไว้ในส่วนนี้ เพื่อให้ตรวจได้ว่า corpus มีลักษณะอย่างไร preprocessing ป้องกันทางลัดอะไร และโมเดลชนะหรือแพ้ตรงแกนใด

LABELED CORPUS6,690โพสต์ภาษาไทยจากอาสาสมัครและบุคคลสาธารณะ ใช้ strict 80/20 author-disjoint split
WINNING MODEL0.83Macro-F1 ของ Word 1-2 grams + Character 3-5 grams + Complement Naïve Bayes
TRANSFORMER0.55Macro-F1 ของ WangchanBERTa ที่ fine-tune classification head ใน experimental setting เดียวกัน
DEPLOYMENT148 msmedian latency ที่รายงานสำหรับ stateless HTTP endpoint บน CPU

Class balance ในสี่แกน

ทั้ง 16 types มีจำนวนไม่เท่ากัน จึงต้องอ่าน Macro-F1 ควบคู่ Accuracy แถบด้านล่างแสดงสัดส่วน label ที่รายงาน โดยสีม่วงคืออักษรตัวแรกของแต่ละคู่และสีทองคืออักษรตัวที่สอง

E / I
E 4,147 · I 3,464
N / S
N 4,460 · S 3,151
F / T
F 4,477 · T 3,134
P / J
P 4,002 · J 3,609

หมายเหตุการตรวจหลักฐาน: ตัวเลขในตาราง distribution รวมได้ 7,611 ต่อแกน แต่สไลด์เดียวกันระบุ corpus 6,690 labeled posts จึงเป็นความไม่สอดคล้องภายในเอกสารนำเสนอ หน้านี้คงตัวเลขตามต้นฉบับและไม่ตีความว่าทั้งสองจำนวนเป็น population เดียวกันจนกว่าจะตรวจ dataset manifest หรือบทความฉบับเต็ม

Preprocessing คือส่วนหนึ่งของโมเดล

ข้อความสั้นมี emoji, คำลากเสียง, hashtag, code-mixing และคำบอก MBTI ตรง ๆ การ normalize มากเกินไปทำลาย style signal แต่การไม่ควบคุมเลยเปิดทางให้โมเดลจำ shortcut

Surface preservingโคตรชอบบบบบ😍 → โคตรชอบบบ
MBTI maskingINTJ ก็เป็นแบบนี้ → [MBTI_MASK] ก็เป็นแบบนี้
Custom lexiconจิงๆ / ม้ากก → รักษารูปภาษาที่มีความหมาย ไม่บังคับแก้ทั้งหมด
Romanized Thaikhobkhun มากๆ → เก็บ token ในประโยคที่ภาษาไทยเป็นหลัก
Heavy code-mixThis MV is fire! แต่ท่อนฮุคเพราะมากก → เก็บส่วนไทยที่ใช้วิเคราะห์ได้
Social tokens@handle และ #hashtag → เก็บเป็น atomic tokens เมื่อเป็นสัญญาณการสื่อสาร

ผลรายแกน: CNB ดีขึ้นสม่ำเสมอ แต่ไม่ได้เท่ากันทุกแกน

ตารางงานนำเสนอรายงาน binary classification แยกสี่ตำแหน่ง ตัวเลขนี้ตอบคำถามว่าอักษรตัวใดของ MBTI เป็นจุดอ่อน แม้ type-level prediction จะสรุปเป็นคำเดียว

AxisSupportBERT AccuracyBERT F1CNB AccuracyCNB F1Correct predictions
E / I608 / 7300.770.770.800.801,030 → 1,075
N / S654 / 6840.760.760.790.791,017 → 1,057
F / T669 / 6690.770.770.810.811,027 → 1,078
J / P705 / 6330.770.770.780.781,029 → 1,046

แกน F/T ให้ CNB F1 สูงสุด 0.81 ส่วน J/P มี improvement ต่ำที่สุดและยังเป็นแกนที่ยากที่สุดในตารางนี้

ENTP +0.44ENFP +0.38INTJ +0.35ISFP +0.33ESFJ +0.31ISFJ +0.30INFP +0.28ENFJ +0.28ENTJ +0.27INTP +0.26ESTP +0.24ESFP +0.24INFJ +0.22ISTJ +0.13

Lightweight

โมเดล sparse ให้บริการเป็น stateless HTTP endpoint บน CPU ไม่ต้องพึ่ง GPU สำหรับ prediction

Fast

median latency 148 ms ใน deployment ที่รายงาน เหมาะกับเครื่องมือสนับสนุน creative workflow

Explainable

แสดง top n-grams ที่เพิ่มหรือลดคะแนน เพื่อให้มนุษย์ตรวจว่าโมเดลอาศัยภาษาแบบใด

Auditable

น้ำหนักและ preprocessing ตรวจทาน bias, leakage และ feature shortcut ได้ง่ายกว่า representation ที่เป็น black box

MODEL MECHANICS · THE MATHEMATICS

จากคำหนึ่งคำ
สู่ probability 16 แบบ

ความโปร่งใสของโมเดลมาจากการที่ทุกขั้นสามารถอธิบายเป็นจำนวน การบวก และ normalization ที่ตรวจซ้ำได้

A

Thai preprocessing

ข้อความ UTF-8 ถูก normalize โดยรักษาสัญญาณบนผิวภาษา ตัดคำด้วย PyThaiNLP/newmm และพจนานุกรมเฉพาะโครงการ จากนั้นลบหรือ mask คำที่บอก MBTI ตรง ๆ เพื่อป้องกัน shortcut leakage ตัวอย่างเช่นผู้เขียนพิมพ์ “ฉันเป็น INTJ” ไม่ควรทำให้ classifier ได้คำตอบโดยไม่เรียนรู้รูปแบบภาษา

raw text → normalize → mask literal labels → Thai tokenize → vocabulary lookup
B

TF-IDF representation

ให้ tf(t,d) เป็นความถี่ของ term t ในเอกสาร d และ df(t) เป็นจำนวนเอกสารที่มี term นั้น IDF ลดน้ำหนักคำที่พบทั่วไปและเพิ่มน้ำหนักคำที่ช่วยแยกกลุ่ม

idf(t) = log((N + 1) / (df(t) + 1)) + 1
xt,d = (1 + log count(t,d)) × idf(t)

Vector ถูก normalize แบบ L2 และมี 7,000 dimensions แต่ข้อความหนึ่งชิ้นมักมีค่าไม่เป็นศูนย์เพียงเล็กน้อย จึงเก็บเป็น sparse indices และ values ได้อย่างประหยัด

C

Complement Naive Bayes

Naive Bayes แบบ complement เรียนจากน้ำหนัก feature ของ “class อื่นทั้งหมด” เหมาะกับข้อความและข้อมูลไม่สมดุล สำหรับ class c ระบบรวม feature ของทุก class แล้วลบ feature ของ c ก่อน smoothing ด้วย α

c,t = α + ΣjCj,t − Cc,t
wc,t = −log(C̅c,t / Σuc,u)
score(c|x) = Σtxtwc,t

นำ score ทั้ง 16 ค่าเข้า softmax เพื่อแสดง probability และรวม probability ของ type ที่มีตัวอักษรเดียวกันเพื่อสร้างกราฟสี่แกน

D

Incremental update

เมื่อตัวอย่างใหม่มี confirmed class c ระบบไม่ต้องเปิดเอกสารเก่า เพียงเพิ่มจำนวนเอกสารของ class และบวก sparse vector เข้า sufficient statistics

n′c = nc + 1    ;    C′c = Cc + x

Unlearn ใช้เครื่องหมายลบ Restore ใช้เครื่องหมายบวกอีกครั้ง ส่วน Relabel ทำ Cold − x และ Cnew + x ภายใน transaction เดียว นี่คือเหตุผลที่เราต้องเก็บ vector ของข้อมูลใหม่ทุกชิ้นในฐานข้อมูล

DATABASE DESIGN · REVERSIBILITY BY CONSTRUCTION

Online learning
ต้องออกแบบฐานข้อมูลก่อน

ถ้าเก็บเฉพาะน้ำหนักล่าสุด เราจะรู้ว่าโมเดลเปลี่ยนแต่ตอบไม่ได้ว่าเปลี่ยนเพราะข้อมูลใด ระบบนี้จึงเก็บทั้ง current state และ event history

TABLE 01

training_document

id
รหัสถาวรของหลักฐาน
text + title + source
ข้อความและ provenance ที่ผู้ดูแลตรวจได้
content_hash
SHA-256 สำหรับป้องกัน active duplicate
confirmed_type
label ล่าสุดที่มนุษย์ยืนยัน
vector_json
sparse indices/values ที่ใช้ย้อน update
active
soft-delete state สำหรับ Unlearn/Restore
TABLE 02

learning_event

revision
ลำดับ mutation ที่ไม่ซ้ำ
document_id
เชื่อมกลับไปยังหลักฐานต้นทาง
operation
LEARN, UNLEARN, RESTORE หรือ RELABEL
old_type/new_type
อธิบายการย้าย class โดยไม่ต้องเดาจาก state ปัจจุบัน
created_at
เวลา UTC สำหรับ audit และ reproduce
TABLE 03

model_meta

revision
revision ปัจจุบันของ online model
baseline_documents
จำนวน class observations ที่อ่านจาก artifact
baseline_features
ขนาด feature space ที่โมเดลรู้จัก

Metadata ไม่ใช้แทน model artifact แต่ช่วย health check และเตือนเมื่อ service กับ database ไม่สอดคล้องกัน

LEARNinsert document
add vector
RELABELsubtract old
add new
UNLEARNmark inactive
subtract vector
RESTOREmark active
add exact vector

Atomicity

SQLite ใช้ BEGIN IMMEDIATE ล็อก mutation จากนั้น update document, เพิ่ม event และ commit เป็นหน่วยเดียว หากขั้นใดล้มเหลวจะ rollback ไม่ทิ้ง label กับ audit log คนละสถานะ

Idempotency & duplicate control

Partial unique index บน content hash ทำให้ข้อความเดียวกันมี active record ได้เพียงหนึ่งรายการ แต่ record ที่ Unlearn แล้วยังคงอยู่เพื่อ audit และ Restore ได้

Recovery

เมื่อ service เริ่มใหม่ ระบบอ่าน active documents แล้ว rebuild delta counts จาก vectors ในฐานข้อมูล จึงไม่พึ่ง memory state ของ process ก่อนหน้า และ Docker volume รักษา SQLite ข้าม container rebuild

MARKETING VALUE · WITH GOVERNANCE

เปลี่ยน probability
เป็นการทดลองที่วัดผลได้

Psychographic signal มีประโยชน์เมื่อใช้เสริม demographic, geographic และ behavioral data ไม่ใช่ใช้แทนความเข้าใจลูกค้าหรือกำหนดชะตาของบุคคล

Message-market fit

สร้างข้อความหลายโทน เช่น กระชับเชิงเหตุผล อบอุ่นเน้นคุณค่า หรือเปิดพื้นที่ให้สำรวจ แล้วทดสอบกับกลุ่ม probability ต่างกันเพื่อลดการส่งสารผิดน้ำเสียง

Persona & creative brief

ใช้ distribution ของทั้ง 4 แกนประกอบ persona sheet, mood board, headline direction และ CTA แทนการยึดเพียง type เดียว ทำให้ทีม content เห็นเหตุผลของคำแนะนำ

Creator alignment

เปรียบเทียบสไตล์ภาษาของ creator กับสัญญาณผู้ชมเพื่อคัด shortlist ก่อนทดลองจริง ช่วยลดรอบการผลิตโดยไม่อ้างว่าโมเดลรู้บุคลิกภายในของบุคคล

Learning from campaigns

เมื่อมี consent และ label ที่ตรวจแล้ว ข้อมูลภาษาใหม่สามารถเรียนเพิ่มทีละ campaign ย้อนออกได้เมื่อหมดสิทธิ์ใช้ และตรวจ revision ที่ทำให้คำแนะนำเปลี่ยน

Responsible deploymentใช้ผลรวมระดับกลุ่ม · กำหนด retention period · เปิด opt-out/unlearn · หลีกเลี่ยงงานเครดิต การจ้างงาน สุขภาพ และการตัดสินใจที่มีผลกระทบสูง · วัด lift ด้วย A/B test และ holdout จริง
STEP 1

สร้าง signal อย่างระมัดระวัง

รวมหลายข้อความของบุคคลเดียวกันโดยเฉลี่ย calibrated probabilities กำหนดจำนวนคำขั้นต่ำ และส่งผู้ที่ confidence ต่ำไปเป็น Unknown แทนการบังคับเลือก 1 ใน 16 type

STEP 2

สร้าง creative hypotheses

แปลงแกนเป็นสมมติฐานที่ทดสอบได้ เช่น T สูงอาจตอบสนองต่อข้อมูลเปรียบเทียบ ส่วน F สูงอาจตอบสนองต่อผลกระทบต่อผู้คน นี่เป็น hypothesis สำหรับออกแบบ copy ไม่ใช่ข้อเท็จจริงตายตัวของบุคคล

STEP 3

สุ่มทดลองจริง

ภายในแต่ละ audience stratum สุ่มผู้ใช้ไป control และ treatment รักษางบ เวลา placement และ frequency ให้ใกล้กัน วัด CTR, conversion, qualified lead, revenue หรือ retention ตามเป้าหมายธุรกิจ

STEP 4

วัด incremental lift

เปรียบเทียบผลกับ generic creative และรายงาน confidence interval ไม่เลือกเฉพาะ segment ที่ชนะ หาก lift ไม่เกิดขึ้นให้หยุดใช้สมมติฐานนั้น แม้ classifier จะมี accuracy สูงก็ตาม

STEP 5

เรียนรู้จาก label ไม่ใช่ click

พฤติกรรม click ไม่เท่ากับ MBTI label การนำ click กลับไป Learn เป็น type โดยตรงจะสร้างวงจรผิด ระบบควร Learn เฉพาะข้อมูลที่มี label provenance ชัด ส่วน campaign outcome เก็บใน experiment database แยกกัน

STEP 6

ติดตาม drift และ fairness

เปรียบเทียบ distribution, abstention และ error แยกตามเวลา platform และกลุ่มที่ได้รับอนุญาตให้ประเมิน หากภาษาใหม่ทำให้ recognized features ลดลง ควรสร้าง vocabulary generation ใหม่แล้ว benchmark ก่อน promote

TEACHING LAB · COMPUTER SCIENCE INTEGRATION

หนึ่งหน้าเว็บ
เชื่อมได้หลายวิชา

ระบบนี้ใช้เป็นกรณีศึกษาตั้งแต่ data structure และ probability ไปจนถึง database transaction, API และ responsible AI

Data Structures & Algorithms

เปรียบเทียบ dense vector ขนาด 7,000 กับ sparse representation วิเคราะห์เวลา O(t+k), memory ของ indices/values และผลของ vocabulary lookup ต่อ latency

  • วัดจำนวน non-zero features ต่อข้อความ
  • ทดลอง cache feature log probability
  • เปรียบเทียบ batch retrain กับ incremental update

Statistics & Probability

อ่าน softmax probability อย่างถูกต้อง ศึกษา class imbalance, calibration, macro/micro averaging และเหตุผลที่ confidence สูงไม่เท่ากับความจริงเสมอ

  • สร้าง reliability diagram
  • หา abstention threshold จาก validation set
  • คำนวณ confidence interval ของ campaign lift

Machine Learning

ตรวจ assumptions ของ Naive Bayes, complement distribution, smoothing และ data leakage วิเคราะห์ว่าเหตุใด sparse CNB จึงชนะ Transformer ใน experimental setting นี้

  • ทำ ablation ของ preprocessing
  • วิเคราะห์ confusion matrix ราย type/axis
  • ออกแบบ temporal และ cross-platform test

Database Systems

ศึกษาความต่างระหว่าง state table กับ append-only event log การใช้ transaction, partial unique index, soft delete และการ rebuild in-memory statistics หลัง restart

  • พิสูจน์ Learn–Unlearn round trip
  • จำลอง crash ก่อนและหลัง commit
  • ออกแบบ retention และ deletion policy

Web & Network Computing

ติดตาม request จาก PHP proxy ไป FastAPI วิเคราะห์ JSON/UTF-8, status code, authentication header, Docker networking และเหตุผลที่ไม่ควรเปิด model service ตรงสู่ Internet

  • เขียน API contract test
  • วัด median/p95/p99 latency
  • เพิ่ม rate limit และ structured logs

Responsible AI & Marketing

อภิปรายความต่างระหว่าง communication signal กับ psychological diagnosis ออกแบบ consent, opt-out, human review และ A/B test ที่ไม่ใช้ model accuracy แทน business evidence

  • เขียน model card และ data card
  • จำแนก high-risk use cases ที่ต้องห้าม
  • ออกแบบ audit dashboard สำหรับ drift

RESEARCH & STUDENT CONTRIBUTION

เครดิตผู้สร้างรากฐาน

จากโครงงานวิทยาการคอมพิวเตอร์ประยุกต์ สู่บทความวิจัยและระบบ online-learning สำหรับการสอนและทดลองต่อยอด

CURRENT ONLINE RESEARCH SYSTEM

The Espertise Online

ระบบออนไลน์ที่สานต่อจากโครงงานนักศึกษา The Espertise เปลี่ยนข้อความสั้น ๆ ให้เป็น psychographic communication signal พร้อม Learn, Unlearn, Restore และ Relabel

“We already know who you are from how you post.”
ภาพสเก็ตช์นักศึกษาสามคนในห้องสมุดแฟนตาซี กำลังร่ายเวทจากตัวอักษรไทยและเส้นข้อมูล
ORIGINAL STUDENT PROJECT · 2023

The Espertise

ระบบการแบ่งประเภทลูกค้าตามหลักจิตวิทยาโดยการฟังเสียงของผู้บริโภคบนสื่อสังคมออนไลน์

อาจารย์ที่ปรึกษา: ดร.วรินทร์ วัฒนพรพรหม

  • นายจิรกิตต์ มีทรัพย์ประเสริฐJirakit Meesapprasert
  • นางสาวพิชญ์สินี อังศุชัยกิจPichsinee Angsuchaikij
  • นางสาวณัฏฐ์ญดา ธนาสินธัญวัชร์Nutyada Thanasinthunyawath
งานวิจัยต่อยอดปี 2025Warin Wattanapornprom, Nutyada Thanasinthunyawath, Jirakit Meesapprasert, Peerasak Intarapaiboon, Pichsinee Angsuchaikij และ Ajjaree Limpamont · “Thai MBTI Psychographic Segmentation: Complement Naïve Bayes vs. Thai Transformer on Short Social Media Posts,” iSAI-NLP 2025.