AI

[Overview] สรุปภาพรวมของการทำSentiment Analysisตั้งแต่ยุคเริ่มต้นจนถึงยุคปัจจุบัน

สรุปภาพรวมของการทำSentiment Analysis

Cover

เนื่องจากผมสนใจวิจัยเกี่ยวกับSentiment Analysisซึ่งปัจจุบันมาไกลมาก มีศัพท์มากมายที่หลายคนอาจไม่เข้าใจผมจึงจะมาเล่าสิ่งที่ผมค้นพบในblogนี้

Background

Sentiment Analysis เริ่มต้นในวงการML/NLPช่วงต้นยุค 2000s โดยเปลี่ยนจากการใช้Rule Basedเป็นการใช้ML/NLPเต็มตัว โดยถ้าย้อนไปยุคแรก

  • 2000s งานวิจัยด้านภาษาศาสตร์เริ่มจากการ classification ประโยคว่าเป็น positive/negativeด้วยการนับLexicon ซึ่งปัญหาในยุคเริ่มต้นคือ ถ้ามีประโยคว่า “เกาะลอยทะเลสวยมาก แต่ที่จอดรถน้อย” ประโยคนี่อาจโดนหักล้างกัน ทั้งๆที่ประโยคนี้มีinsightที่สำคัญอยู่

เพื่อแก้ปัญหาดังกล่าว จึงทำให้เกิด ASBA (Aspect-Based Sentiment Analysis) ซึ่งทำหน้าที่ซอยปัญหา(Task Taxonomy)ออกเป็นหมวดหมู่ให้ละเอียดขึ้น โดยแบ่งเป็นลำดับความละเอียดตามนี้

ATE (Aspect Term Extraction)

    • เป้าหมายคือ การสกัดสิ่งที่ผู้รีวิวพูดถึงออกมา
      “The food was great” → “food”
    • โดยการทำงานจะเริ่มจากการแปะป้ายกำกับที่เรียกว่า BIO Tagging (Begin, Inside, Outside) กำกับลงไปในทุกๆtoken โดยสมัยก่อนจะใช้ BiLSTM-CRF (ปัจจุบันมีการใช้ โมเดลตระกูลBERTเช่น BERT Token Classifier, BERT-CRF)
    • เกาะลอย ทะเล สวย มาก แต่ ที่จอดรถ น้อย
      B B 0 0 0 B 0

ASC (Aspect Sentiment Classification)

    • เป้าหมายคือ ทำsentimentต่อaspectที่ได้มาจาก ATE
    • โดยจะมีการใช้ Special Tokens [CLS], {SEP} เป็นตัวคั่นโครงสร้างควบคู่กับโมเดล BERT เช่นตัวอย่างด้านล่าง
      • รอบแรกattention weightไปที่ “ทะเล”
        • [CLS] เกาะลอย ทะเล สวย มาก แต่ ที่จอดรถ น้อย [SEP] ทะเล [SEP]
          คำว่า ทะเล ใน[SEP] จะวิ่งไปAttention weight กับคำว่า “ทะเล” และ “สวย”, “มาก”
          ในขณะเดียวกันจะเมินคำที่ไม่ได้ให้ attention
      • รอบต่อมาจะweightไปที่ “ที่จอดรถ”
      • โดยoutputที่ได้อาจเป็น probabilityของ [positive/neutral/negative] ของทั้ง 2 aspect

AOPE (Aspect-Opinion Pair Extraction)

    • เป้าหมายคือ การสกัด Aspect, Opinion Term ออกมา
    • โดยจะใช้เทคนิค Dependency Parsing และ Relation Extraction
      • Dependency Parsing
        • วิเคราห์ประโยคว่าคำไหน ทำหน้าที่อะไร และมีความสัมพันธ์กับคำไหน โดยจะได้outputเป็น Directed Graph หรือ Dependency Tree
          • ทะเล → สวย (Adjectival Modifier) “สวย” บอกลักษณะของ “ทะเล”
          • สวย → มาก (Adverbial Modifier) “มาก” ขยายคำว่า ”สวย” อีกที
          • ที่จอดรถ → น้อย
        • จะเห็นได้ว่า “ทะเล” กับ “น้อย” อยู่ประโยคเดียวกันแต่ไม่มีกราฟโยงหากัน ทำให้โมเดลรู้ว่าสองคำนี้ไม่คู่กัน
      • Relation Extraction
        • เป้าหมายคือหา Semantic Relation, ในงานNLPมันใช้สกัดความสัมพันธ์แบบTripets (Subject, Relation, Object)
        • เมื่อนำมาใช้กับ AOPE มันคือการระบุว่า Entities สองตัวที่เราสนใจมีความสัมพันธ์กันประเภท “Is-Opinion-Of” อยู่หรือไม่?
          • Relation(ทะเล, สวย) = Is-Opinion-Of (Prob: 0.99)
          • Relation(ทะเล, น้อย) = No-Relation (Prob: 0.01)

ASTE (Aspect-Sentiment-Triplet Extraction)

    • เป้าหมายคือ การสกัด 3 องค์ประกอบพร้อมกันในรอบเดียวเพื่อหลีกเลี่ยง Error Propagation (ความผิดพลาดที่เกิดจากการทำทีละขั้นตอนตามpipeline เพราะถ้าขั้นตอนแรกผิดก็ผิดหมด)
    • ใช้เทคนิค Joint Extraction/ Multi-Task Learning
    • โดยมี Architecture อยู่ 3 รูปแบบหลักที่ใช้แก้ปัญหานี้ (ผมยังไม่ค่อยเก็ตการทำงานtechnical3ตัวนี้)
      • Grid Tagging โมเดลจะนำtokenมากางเป็น 2d gridและทำนายความสัมพันธ์ข้ามจุดตัดระหว่างrow, columnเพื่อสกัด aspect และ opinionที่ซ้อนทับกันมา
      • Span-Level Bidirectional Network โมเดลจะทำนายขอบเขตของกลุ่มคำแบบสองทิศทางพร้อมกัน เพื่อเชื่อมโยงว่าopinionนี้เป็นของaspectก้อนไหน
      • Biaffine Scorer ใช้สถาปัตยกรรม Multi-Task Learning ที่มีBERT Encoderเป็นแกนกลางร่วมกัน แล้วใช้ Biaffine Scorer คำนวณความน่าจะเป็นของความสัมพันธ์ระหว่าง Aspect และ Opinion

ASQP (Aspect-Sentiment-Quadruple) งานล่าสุด

ในยุคปัจจุบันการออกแบบจะไม่โฟกัสไปที่การต่อpipelineหรือใช้ตารางtaggingที่ซับซ้อนมากเหมือนยุคก่อน แต่มุ่งไปที่

  • Generative Paradigm
    • การแปลงโจทย์ Information Extraction ให้กลายเป็น Text Generation โดยป้อนประโยคเข้าไป โมเดลจะทำหน้าที่ถอดรหัสให้เป็นโครงสร้างที่กำหนด (JSON)
    • การทำ Parameter-Efficient Fine-Tuning (PEFT) บน LLaMA-3, Qwen-2.5, Mistral
    • ปัจจุบันมีการทำ Knowledge-Enhanced Generation เช่น ACOS_LLM ในงานท่องเที่ยว ที่ใช้LLMทำ Auxiliary Knowledge เกี่ยวกับบริบทของสถาที่ท่องเที่ยวขึ้นมาก่อน จากนั้นนำไปผสมกับข้อมูลตำแหน่งคำ (Positional Information) เพื่อให้model generate quadrepletออกมาได้อย่างแม่นยำขึ้น

Multimodal Sentiment Analysis

  • จากเดิมที่เราโฟกัสแค่ Text ถ้าเกิดว่าเราไปโฟกัสที่ส่วนอื่นของรีวิวด้วยหละ เช่น รูปภาพ, วีดีโอ, location, หรืออื่นๆ โดยในงานวิจับหลักๆจะมี

Text + Image

Enhanced Multimodal Aspect-Based Sentiment Analysis by LLM-Generated Rationales

paperนี้ได้เสนอframeworkที่ชื่อ LRSA (LLM-generated Rationals + SLM + Dual cross-Attention) ที่แก้ปัญหา

  • SLM(Small Language Models): มีความรู้จำกัด แยกแยะ aspect/sentimentได้ไม่ดี
  • ถ้าภาพมีรายละเอียดมาก → โมเดลมักโฟกัสผิดจุด
  • การเชื่อมโยงภาพ-ข้อความไม่แม่นยำ
  • LLMเก่งแต่ไม่ดีพอในการทำsentimentแบบละเอียด(fine-grained) + resource เยอะ

Retionales = คำอธิบายที่LLMสร้างเพื่อบอกว่าภาพ/ข้อความมีอะไรสำคัญบ้าง

นวคิดของ LRSA

LRSA


  • LLM-generated rationales (ใช้ Gemini-1.5 Pro)
    • อธิบายภาพ
    • อธิบายข้อความ
  • Dual Cross-Attention
    • รวม ภาพ กับ rationale ของภาพ
    • รวม ช้อความ กับ rationale ของข้อความ
    • ทำให้ลด noise เน้นข้อมูลสำคัณ
  • Encoder-Decoder (ใช้ SML: BART)
    • รวมข้อมูลภาพ-ข้อความ-rationales
      เนื่องจากมี rationales ทำให้SMLรู้ว่าควรโฟกัสที่ส่วนไหนของข้อความ/รูป
    • ใช้decoder ทำนาย aspect + sentiment
Fig



Cross-modal fine-grained alignment and fusion network for multimodal aspect-based sentiment analysis

paperนี้เก่ากว่าpaperก่อนหน้าปัญหาที่เจอได้แก่

  • ใช้CNN(VGG/ResNet) ในการมองภาพแบบgridทำให้จับ object-level cues(objectที่อยู่ในภาพ)ไม่ดี
  • ใช้model DETRแปลงภาพเป็นcaptionซึ่งบางครั้งทำได้ไม่ตรงกับภาพ ทำให้โมเดลสับสน
    (DETR original ใช้ในการทำobject detection แต่ในงานนี้มีการใช้ DETR + Transformer decoder เพื่อทำ captioning)
  • ไม่ใช้ข้อมูล syntactic dependency จากข้อความ

สิ่งที่CoolNetทำคือ

Coolnet


  • ใช้RoBERTa สกัดเอา Semantic-aware attention graph และ Syntactic Stree หลังจากนั้นป้อนเข้าสู่ GCC (Graph Common Convolution) เพื่อเรียนรู้ลักษณะเด่นทางsemantic, syntaxควบคู่กันไป
  • นอกจากใช้ Image-to-caption จากนั้นจะนำไปใส่ GCC เพื่อหา semantic, syntaxเช่นกันเพื่อลดการพึ่งพาคุณภาพของคำบรรยาย และช่วยหาข้อมูลเชิงลึกเพิ่ม
  • Coolnetจะแบ่งภาพเป็นส่วนย่อยๆ แล้วประกอบขึ้นเป็นGraph Structure จากนั้นใช้Vision GNN เข้ามาช่วยจับความสัมพันธ์ของวัตถุในภาพแบบละเอียดเพื่อหาอารมณ์ที่ซ่อนอยู่

เมื่อได้ลักษณะทั้ง3แล้ว ฟีเจอร์ของข้อความและข้อความบรรยายจะถูกนำมารวมกัน แล้วส่งเข้าสู่ Cross-modal Transformer เพื่อปรับความสอดคล้องและรวมเข้ากับฟีเจอร์ของรูปภาพโดยอัตโนมัต

โดยภาพรวม LRSAจะใช้LLMสร้าง rationales แล้วส่งให้ SLMเพื่อช่วยให้เข้าใจว่าsentimentมาจากจากaspectไหน ทั้งtext/image ทำให้ไม่ละเอียดเท่า CoolNetที่ใช้ RoBERTa + Vision Graph ซึ่งออกแบบมาเพื่อ alignment ละเอียด จับคู่ tokenในข้อความกับ regionในภาพโดยตรง

Datasetที่น่าสนใจ

Video based

เนื่องจากปัจจุบันคนนิยม short-video เช่น tiktok, reel หรือแอปอื่นๆ ทำให้มีคอนเทนต์ที่เป็นformat videoเยอะมากในsocialถ้าเราสามารถเจาะinsightจากคลิปเหล่านี้ อาจเน้นกลุ่มวัยรุ่นได้มากกว่า

Multimodal Sentiment Analysis on CMU‑MOSEI Dataset using Transformer-based Models

Multimodal Sentiment Analysis โดยใช้ text+audio+image(from video) จากCMU-MOSEI
ใช้ BERT-based encoders สำหรับแต่ละmodal ก่อนจะนำไปรวมแบบ Early Fusion แล้วทำการจำแนกอารมณ์ 7 ระดับ ผลลัพท์ได้ Acc & F1 > 0.96

โดยแนวคิดคือ

  • อารมณ์มนุษย์ไม่ได้อยู่แค่ในข้อความ แต่รวมถึงน้ำเสียงและสีหน้า
  • ใช้ multimodal learning เพื่อรวมข้อมูล 3 modalให้เข้าใจอารมณ์ได้แม่นยำกว่า modalเดียว
  • ใช้ Transformer/BERT เป็นแกนหลักของการเข้ารหัสข้อมูลทุกmodal

การทำงาน

  • Enconder แต่ละ modal
    • Text → BERT-base-uncased ใช้ embedding ของ [CLS]
    • Audio → feature extract COVAREP → BERT encoder → mean pooling
    • Visual → feature extract ใบหน้า/ท่าท่ง → BERT encoder → mean pooling
  • Early Fusion
    • รวมembedding ทั้ง3ด้วยการ concatenate
    • ใช้ cross-attention เพื่อเรียนรู้relationข้ามmodal
    • เหมาะกับกรณีที่ข้อมูลแต่ละโมดัลเสริมกัน เช่น ข้อความดูบวกแต่สีหน้าเป็นลบ
  • Classification head
    • Fully connected + ReLU
    • LeyerNorm
    • Dropout 0.3
    • Softmax สำหรับ 7 class อารมณ์ [-3, 3]
  • Train model

ข้อเสียของการใช้Video Basedคือหาdatasetยาก ตั้งแต่การscrapping videoจาก social mediaและการทำ transcriptต้องใช้resourceในการแบ่งภาพ วีดีโอ

Read the next thing.

New articles, projects, Interactive Labs, and occasional professional or site announcements, primarily in Thai, with no more than one routine email a week.

Double opt-in. Unsubscribe anytime. Your address is never sold or shared for third-party marketing. Privacy