পাঠ ৪৭ · ৫৭-এর মধ্যে · মডিউল ১১
Home / Courses / Ethics in Computing & AI Safety / অ্যালগরিদমিক অ্যামপ্লিফিকেশন

ভুল তথ্য ও অ্যালগরিদমিক অ্যামপ্লিফিকেশন

Misinformation & algorithmic amplification
৯ মিনিট পড়া মধ্যবর্তী · Intermediate Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • কেন বেশিরভাগ ফিড/রিকমেন্ডেশন অ্যালগরিদম এনগেজমেন্ট-অপ্টিমাইজিং হিসেবে ডিজাইন করা হয়
  • এনগেজমেন্ট ও সত্যতার মধ্যে পারস্পরিক সম্পর্ক কেন নিখুঁত নয় — এবং কেন এটি একটি প্রক্সি-মেট্রিক সমস্যা
  • Python দিয়ে একটি প্রকৃত র‌্যাংকিং হিসাব — কীভাবে খাঁটি এনগেজমেন্ট-র‌্যাংকিং সত্যতা-নিরপেক্ষভাবে উচ্চ-এনগেজমেন্ট কনটেন্টকে উপরে তুলে আনে
  • কেন এই সমস্যাটি M46-এর কনটেন্ট মডারেশনের চেয়ে ভিন্ন — মডারেশন জিজ্ঞেস করে "এটা কি থাকবে?", অ্যামপ্লিফিকেশন জিজ্ঞেস করে "এটা কতটা ছড়াবে?"

১ · এনগেজমেন্ট-অপ্টিমাইজেশন কীভাবে কাজ করে

একটি নিউজফিড বা "আপনার জন্য প্রস্তাবিত" অ্যালগরিদমকে সরাসরি "কোনটা সত্য, কোনটা গুরুত্বপূর্ণ" শেখানো কঠিন — কিন্তু "ব্যবহারকারী কোনটায় ক্লিক করলো, কতক্ষণ দেখলো, কী শেয়ার করলো" পরিমাপ করা সহজ। তাই বাস্তবে অনেক রিকমেন্ডেশন সিস্টেম এনগেজমেন্টEngagementব্যবহারকারীর সাথে কনটেন্টের মিথস্ক্রিয়ার পরিমাপ — ক্লিক, লাইক, কমেন্ট, শেয়ার, দেখার সময় ইত্যাদি একত্রে।-কে একটি ব্যবহারযোগ্য প্রক্সি মেট্রিক হিসেবে ব্যবহার করে সেই কনটেন্টকে উপরে তোলে যা এনগেজমেন্ট বেশি তৈরি করবে বলে অনুমান করা হয়। এই নকশা নিজে থেকে খারাপ উদ্দেশ্যপ্রণোদিত নয় — সমস্যাটি প্রক্সি ও প্রকৃত লক্ষ্যের মধ্যে ফাঁকে লুকিয়ে থাকে।

গবেষণা ও সাংবাদিকতায় বহুল-আলোচিত একটি পর্যবেক্ষণ হলো — চরম আবেগ (রাগ, ভয়, বিস্ময়) জাগানো কনটেন্ট গড়ে বেশি ক্লিক ও শেয়ার পেতে থাকে, আর মিথ্যা বা অতিরঞ্জিত দাবি প্রায়ই সত্য, সতর্ক, nuanced প্রতিবেদনের চেয়ে বেশি "সেনসেশনাল" হয়ে থাকে বলেই বেশি এনগেজমেন্ট পায়। এর মানে এই নয় যে সব ভাইরাল কনটেন্ট মিথ্যা, বা সব সত্য কনটেন্ট কম এনগেজমেন্ট পায় — কিন্তু গড়ে একটি পক্ষপাত (bias) তৈরি হওয়ার সম্ভাবনা থেকে যায়, যা বিশুদ্ধভাবে এনগেজমেন্ট-চালিত র‌্যাংকিং সিস্টেমে ধীরে ধীরে জমা হতে পারে।

প্রকৃত লক্ষ্য তথ্যবহুল, নির্ভরযোগ্য ফিড প্রক্সি মেট্রিক ক্লিক · শেয়ার · সময় সহজে পরিমাপযোগ্য বলে বিকল্প সরাসরি অপ্টিমাইজ করলে সেনসেশনাল কনটেন্ট এগিয়ে যায়
প্রক্সি মেট্রিক (এনগেজমেন্ট) প্রকৃত লক্ষ্যের (তথ্যের নির্ভরযোগ্যতা) সাথে গড়ে সম্পর্কিত হলেও একই জিনিস নয় — সরাসরি প্রক্সি অপ্টিমাইজ করলে দুটি ধীরে ধীরে আলাদা হয়ে যেতে পারে।

২ · একটি প্রকৃত র‌্যাংকিং হিসাব

নিচের কোড সেলে ১৫টি সিন্থেটিক পোস্টের একটি তালিকা আছে, প্রতিটির একটি এনগেজমেন্ট-স্কোর (কাল্পনিক ইউনিটে) এবং সেটি মিথ্যা কিনা তার লেবেল সহ। কোডটি একটি বিশুদ্ধ এনগেজমেন্ট-অপ্টিমাইজিং র‌্যাংকার হিসেবে কাজ করে — শুধুমাত্র এনগেজমেন্ট-স্কোর অনুযায়ী পোস্টগুলো র‌্যাংক করে (সত্যতার কোনো তথ্য ব্যবহার না করেই), তারপর টপ-৫ র‌্যাংকড পোস্টে মিথ্যা পোস্টের অনুপাত পুরো তালিকার অনুপাতের সাথে তুলনা করে।

Python
# একটি সিন্থেটিক, ইলাস্ট্রেটিভ উদাহরণ -- বাস্তব কোনো প্ল্যাটফর্মের ডেটা নয়
# প্রতিটি পোস্ট: এনগেজমেন্ট স্কোর ও এটি মিথ্যা কিনা (র‌্যাংকার এই দ্বিতীয় তথ্যটি কখনোই দেখে না)
posts = [
    {"id": 7,  "engagement": 650, "is_false": False},
    {"id": 1,  "engagement": 980, "is_false": True},
    {"id": 12, "engagement": 360, "is_false": False},
    {"id": 3,  "engagement": 860, "is_false": True},
    {"id": 9,  "engagement": 540, "is_false": True},
    {"id": 5,  "engagement": 740, "is_false": False},
    {"id": 15, "engagement": 180, "is_false": False},
    {"id": 2,  "engagement": 875, "is_false": False},
    {"id": 11, "engagement": 420, "is_false": False},
    {"id": 4,  "engagement": 790, "is_false": True},
    {"id": 13, "engagement": 300, "is_false": False},
    {"id": 6,  "engagement": 700, "is_false": True},
    {"id": 10, "engagement": 480, "is_false": False},
    {"id": 8,  "engagement": 600, "is_false": False},
    {"id": 14, "engagement": 240, "is_false": False},
]

def false_ratio(post_list):
    if not post_list:
        return 0.0
    return sum(1 for p in post_list if p["is_false"]) / len(post_list)

# বিশুদ্ধ এনগেজমেন্ট-অপ্টিমাইজিং র‌্যাংকিং: শুধু এনগেজমেন্ট স্কোর অনুযায়ী descending sort
ranked_feed = sorted(posts, key=lambda p: p["engagement"], reverse=True)

TOP_N = 5
top_posts = ranked_feed[:TOP_N]

overall_false_ratio = false_ratio(posts)
top_false_ratio = false_ratio(top_posts)

print("টপ", TOP_N, "র‌্যাংকড পোস্ট (এনগেজমেন্ট অনুযায়ী):")
for p in top_posts:
    label = "মিথ্যা" if p["is_false"] else "সত্য/নিরপেক্ষ"
    print(f"  পোস্ট #{p['id']:<3} এনগেজমেন্ট={p['engagement']:<5} ({label})")

print(f"\nপুরো তালিকায় মিথ্যা পোস্টের অনুপাত:     {overall_false_ratio:.2f} ({overall_false_ratio*100:.0f}%)")
print(f"টপ {TOP_N}-এ মিথ্যা পোস্টের অনুপাত:        {top_false_ratio:.2f} ({top_false_ratio*100:.0f}%)")

    
পুরো ১৫টি পোস্টের তালিকায় মিথ্যা পোস্টের অনুপাত ৫/১৫ = ৩৩%। কিন্তু র‌্যাংকারটি শুধুমাত্র এনগেজমেন্ট-স্কোর দেখে সাজানোর পর, টপ-৫ পোস্টের মধ্যে ৩টি মিথ্যা (পোস্ট #১, #৩, #৪) — অর্থাৎ টপ-৫-এ মিথ্যা পোস্টের অনুপাত ৩/৫ = ৬০%, পুরো তালিকার প্রায় দ্বিগুণ। র‌্যাংকার কোথাও "সত্য বনাম মিথ্যা" বিবেচনা করেনি — শুধুমাত্র এনগেজমেন্ট-স্কোর অনুযায়ী সাজানোর ফলেই এই skew তৈরি হয়েছে, কারণ এই সিন্থেটিক ডেটাসেটে মিথ্যা পোস্টগুলোর গড় এনগেজমেন্ট বেশি রাখা হয়েছে — যা বাস্তবে পর্যবেক্ষিত প্রবণতার একটি ইলাস্ট্রেটিভ প্রতিফলন।
মূল কথা · Key takeaway

একটি অ্যালগরিদমের "মিথ্যা তথ্য ছড়ানোর কোনো উদ্দেশ্য" না থাকলেও, যদি সেটি এমন একটি প্রক্সি মেট্রিক (এনগেজমেন্ট) সর্বোচ্চ করতে অপ্টিমাইজ করে যা সত্যতার সাথে অসম্পূর্ণভাবে সম্পর্কিত, তাহলে সিস্টেমগতভাবে সেনসেশনাল/মিথ্যা কনটেন্ট এগিয়ে যাওয়ার একটি কাঠামোগত প্রবণতা তৈরি হতে পারে। এটি M9-এ পরে বিস্তারিত আলোচিত Goodhart's Law-এর একটি বাস্তব-জগতের উদাহরণ — একটি প্রক্সিকে সরাসরি লক্ষ্যবস্তু বানালে সেটি প্রকৃত লক্ষ্যের একটি ভালো পরিমাপক হিসেবে থাকা বন্ধ করে দিতে পারে।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ উপরের কোডে র‌্যাংকার কি কোথাও সরাসরি "এটা মিথ্যা, তাই কম দেখাও" এই যুক্তি ব্যবহার করে?

না। sorted() কলটি শুধুমাত্র p["engagement"] অনুযায়ী সাজায় — is_false ফিল্ডটি র‌্যাংকিং লজিকে কোথাও ব্যবহৃতই হয় না, শুধু পরে ফলাফল বিশ্লেষণের জন্য গণনা করা হয়েছে। এটিই মূল বিষয় — অ্যালগরিদমকে "মিথ্যা প্রচার করো" এমন কোনো নির্দেশ না দিয়েও, শুধু এনগেজমেন্ট অপ্টিমাইজ করার মধ্য দিয়েই এই skew তৈরি হতে পারে।

প্র ০২ এর মানে কি সব ভাইরাল/জনপ্রিয় কনটেন্টই মিথ্যা, বা এনগেজমেন্ট-ভিত্তিক র‌্যাংকিং ব্যবহারই একটি ভুল?

না, এটি একটি ভুল সরলীকরণ হবে। বেশিরভাগ ভাইরাল কনটেন্টই সত্য বা নিরপেক্ষ, আর এনগেজমেন্ট সংকেত (কোন কনটেন্ট মানুষের কাছে প্রাসঙ্গিক মনে হচ্ছে তা বোঝার একটি উপায়) সম্পূর্ণ অকেজো নয়। মূল বিষয়টি একটি গড়পড়তা প্রবণতা — সেনসেশনাল/মিথ্যা কনটেন্ট গড়ে সামান্য বেশি এনগেজমেন্ট পেতে পারে, যা বিশুদ্ধভাবে এনগেজমেন্ট-চালিত সিস্টেমে সময়ের সাথে জমা হতে পারে। এই কারণেই অনেক প্ল্যাটফর্ম এনগেজমেন্টের পাশাপাশি অন্যান্য সংকেত (উৎসের নির্ভরযোগ্যতা, ফ্যাক্ট-চেক ফ্ল্যাগ) যোগ করার চেষ্টা করে।

প্র ০৩ উপরের কোডে TOP_N-কে ৫ থেকে ১৫ (পুরো তালিকা) করে দিলে top_false_ratio কী হবে, এবং কেন?

TOP_N = 15 করলে top_posts পুরো তালিকার সমান হয়ে যাবে, তাই top_false_ratio ঠিক overall_false_ratio-এর সমান (৩৩%) হয়ে যাবে — কারণ সাজানোর ক্রম যাই হোক না কেন, পুরো তালিকা নিলে অনুপাত অপরিবর্তিত থাকে। skew শুধুমাত্র তখনই দেখা যায় যখন একটি সাবসেট (যেমন টপ-৫, যা বাস্তবে ব্যবহারকারী প্রথমে দেখে) আলাদাভাবে বিবেচনা করা হয়।

অনুশীলন

  1. চিন্তা করুন: একটি প্ল্যাটফর্ম কীভাবে এনগেজমেন্টের পাশাপাশি "নির্ভরযোগ্যতা" সংকেতও র‌্যাংকিংয়ে যোগ করতে পারে, বাক-স্বাধীনতাকে সম্পূর্ণ উপেক্ষা না করে?

    কিছু সম্ভাব্য পদ্ধতি — স্বাধীন ফ্যাক্ট-চেকারদের ফ্ল্যাগকে র‌্যাংকিং স্কোরে একটি নেতিবাচক ফ্যাক্টর হিসেবে যোগ করা (সরিয়ে ফেলা নয়, শুধু কম দেখানো), উৎসের ঐতিহাসিক নির্ভরযোগ্যতা বিবেচনায় নেওয়া, অথবা "দ্রুত ছড়িয়ে পড়া" কনটেন্টকে অতিরিক্ত যাচাইয়ের জন্য সাময়িকভাবে ধীর করে দেওয়া (L46-এর priority-queue ধারণার সাথে সম্পর্কিত)। প্রতিটি পদ্ধতিই নিজস্ব নতুন ট্রেড-অফ তৈরি করে।

  2. পরীক্ষা করুন: উপরের কোড সেলে পোস্ট #১-এর engagement মান ৯৮০ থেকে ২০০-এ কমিয়ে Run চাপুন — top_false_ratio কীভাবে বদলায়?

    পোস্ট #১-এর এনগেজমেন্ট ২০০ করলে সেটি আর টপ-৫-এ থাকবে না, কিন্তু নতুন টপ-৫ হবে #২ (৮৭৫), #৩ (৮৬০), #৪ (৭৯০), #৫ (৭৪০), #৬ (৭০০) — কারণ #৬-এর এনগেজমেন্ট #১-এর নতুন কম মানের চেয়ে বেশি, তাই খালি হওয়া জায়গাটি #৬ পূরণ করে। এই নতুন টপ-৫-এ মিথ্যা পোস্ট #৩, #৪ ও #৬ — অর্থাৎ top_false_ratio এখনও 3/5 = 60%, অপরিবর্তিত থাকবে। কারণ #১ (মিথ্যা) সরে গেলেও তার জায়গায় আরেকটি মিথ্যা-লেবেলযুক্ত পোস্ট (#৬) উঠে আসে — এটি দেখায় যে একটি একক পোস্ট বদলালেই সামগ্রিক skew পরিসংখ্যান বদলে যায় না, পুরো তালিকার গঠনের উপর নির্ভর করে।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

আগের পাঠ
বড় স্কেলে কনটেন্ট মডারেশন