ডিজিটাল অ্যাডিকশন ও অ্যাটেনশন ইঞ্জিনিয়ারিং
এই পাঠে যা শিখবেন
- এনগেজমেন্ট-ম্যাক্সিমাইজিং ডিজাইনের সাধারণ প্যাটার্ন ও সেগুলোর পেছনের যুক্তি
- ভ্যারিয়েবল-রেশিও রিইনফোর্সমেন্ট — এই সুপ্রতিষ্ঠিত মনস্তাত্ত্বিক নীতিটি ঠিক কী বলে
- কীভাবে L17, L33 ও এই পাঠ — তিনটিই একই অন্তর্নিহিত ব্যবসায়িক ইনসেন্টিভ থেকে আসে
- Python দিয়ে একটি প্রকৃত Monte Carlo সিমুলেশন — প্রেডিক্টেবল বনাম আনপ্রেডিক্টেবল রিওয়ার্ড শিডিউলে সেশন-দৈর্ঘ্যের পার্থক্য
১ · এনগেজমেন্ট-ম্যাক্সিমাইজিং ডিজাইন প্যাটার্ন
বিজ্ঞাপন-নির্ভর বা ফ্রিমিয়াম ব্যবসায়িক মডেলে চলা অনেক ডিজিটাল প্রোডাক্টের রাজস্ব সরাসরি ব্যবহারকারীর মনোযোগ ও সময়ের সাথে যুক্ত — তাই "ব্যবহারকারী কতক্ষণ থাকলো, কতবার ফিরে এলো" ব্যবসায়িকভাবে গুরুত্বপূর্ণ মেট্রিক হয়ে ওঠে। এই লক্ষ্য অর্জনে প্রোডাক্ট ডিজাইনে প্রায়ই এমন প্যাটার্ন ব্যবহৃত হয় যা মানুষের মনোযোগ ও পুনরাবৃত্তিমূলক আচরণ নিয়ে দশকের পর দশক ধরে চলা মনস্তাত্ত্বিক গবেষণা থেকে ধারণা নেয়।
"থামার" কোনো স্বাভাবিক বিন্দু (যেমন পৃষ্ঠা শেষ হওয়া) না রাখা — সচেতনভাবে থামার সিদ্ধান্ত নেওয়ার একটি স্বাভাবিক মুহূর্ত সরিয়ে ফেলা হয়।
নোটিফিকেশন কখন, কী নিয়ে আসবে তা অনুমান করা যায় না — নিচের সেকশনে এই অনিশ্চয়তার মনস্তাত্ত্বিক প্রভাব বিস্তারিত।
টানা কতদিন ব্যবহার করা হয়েছে তার গণনা — একদিন বাদ পড়লে সেই "অর্জন" হারানোর ভয়, যা প্রত্যাবর্তনকে উৎসাহিত করে।
এই প্যাটার্নগুলো নিজে থেকে "প্রতারণামূলক" নয় — একটি ফ্রি সার্ভিস চালু রাখতে বিজ্ঞাপন-রাজস্ব প্রয়োজন, আর ব্যবহারকারীকে ফিরে আসতে উৎসাহিত করা যেকোনো ভালো প্রোডাক্ট ডিজাইনেরও একটি স্বাভাবিক লক্ষ্য। প্রশ্নটি হলো — এই কৌশলগুলো কোথায় "সহায়ক ও আকর্ষণীয় ডিজাইন" থেকে সরে গিয়ে ব্যবহারকারীর সচেতন সিদ্ধান্ত-গ্রহণ ক্ষমতাকে পাশ কাটিয়ে যাওয়া "ম্যানিপুলেশন"-এ পরিণত হয় — এই সীমারেখা নিজেই একটি চলমান আলোচনার বিষয়, একটি স্পষ্ট, সর্বজনগ্রাহ্য মাপকাঠি এখনো নেই।
২ · ভ্যারিয়েবল-রেশিও রিইনফোর্সমেন্ট: একটি সুপ্রতিষ্ঠিত মনস্তাত্ত্বিক নীতি
আচরণগত মনোবিজ্ঞানে ভ্যারিয়েবল-রেশিও রিইনফোর্সমেন্টVariable-Ratio Reinforcementএকটি পুরস্কার-শিডিউল যেখানে পুরস্কার কখন আসবে তা অনিশ্চিত/এলোমেলো — যেমন একটি স্লট মেশিন। গড় পুরস্কার-হার একই রাখা সত্ত্বেও, এই অনিশ্চয়তা একটি প্রেডিক্টেবল শিডিউলের চেয়ে বেশি স্থায়ী, উচ্চ-হারের প্রতিক্রিয়া তৈরি করে বলে বহু দশকের গবেষণায় দেখা গেছে। একটি বহু-পরীক্ষিত, সুপ্রতিষ্ঠিত পর্যবেক্ষণ — পুরস্কার কখন আসবে তা অনুমান করা না গেলে, প্রাণী (মানুষ সহ) সেই পুরস্কারের উৎসের সাথে বারবার, আরও স্থায়ীভাবে যোগাযোগ করতে থাকে, এমনকি পুরস্কারের গড় হার একই থাকলেও। ডিজিটাল প্রোডাক্টে "পুল-টু-রিফ্রেশ" করে নতুন কনটেন্ট আসা, বা নোটিফিকেশন ঠিক কখন আসবে তা অনিশ্চিত থাকা — এই ধরনের ডিজাইন সিদ্ধান্তগুলো একই অনিশ্চিত-পুরস্কার নীতির সাথে গঠনগতভাবে সাদৃশ্যপূর্ণ।
৩ · একই ব্যবসায়িক ইনসেন্টিভ, M8-এর তিনটি ভিন্ন প্রকাশ
L17-এ আলোচিত সার্ভেইল্যান্স ক্যাপিটালিজম দেখায় কেন প্ল্যাটফর্মগুলো বেশি বেশি আচরণগত ডেটা সংগ্রহ করতে চায় (রাজস্বের সাথে সরাসরি যুক্ত)। L33-এ আলোচিত অ্যালগরিদমিক অ্যামপ্লিফিকেশন দেখায় কেন সেই একই এনগেজমেন্ট-চালিত ইনসেন্টিভ কনটেন্ট-র্যাংকিংকে সেনসেশনালিজমের দিকে ঠেলে দিতে পারে। এই পাঠ দেখায় সেই একই ইনসেন্টিভের তৃতীয় প্রকাশ — ব্যবহারকারীর মনোযোগ ধরে রাখতে প্রোডাক্ট ডিজাইনে সুপ্রতিষ্ঠিত মনস্তাত্ত্বিক পুরস্কার-প্রক্রিয়া ব্যবহার করা। তিনটি লেসনই মূলত একই "বেশি এনগেজমেন্ট = বেশি ডেটা/রাজস্ব" ইনসেন্টিভের ভিন্ন ভিন্ন পরিণতি — একটি একক ব্যবসায়িক-মডেল প্রশ্ন, তিনটি ভিন্ন সামাজিক উপসর্গ।
৪ · একটি Monte Carlo সিমুলেশন: প্রেডিক্টেবল বনাম আনপ্রেডিক্টেবল শিডিউল
নিচের কোড সেলে একটি স্ক্রলিং সেশন মডেল করা হয়েছে — প্রতি ধাপে একটি নির্দিষ্ট সম্ভাবনায় "পুরস্কার" (নতুন
আকর্ষণীয় কনটেন্ট) আসে; পুরস্কার এলে ব্যবহারকারীর "থামার সম্ভাবনা" রিসেট হয়ে যায়, আর পুরস্কার না এলে
প্রতিটি ধাপে থামার সম্ভাবনা বাড়তে থাকে (বোরডম জমা হয়)। দুটি শিডিউলে গড় পুরস্কার-হার
ইচ্ছাকৃতভাবে একই (প্রতি ধাপে ১০%) রাখা হয়েছে — শুধু "বোরডম জমা হওয়ার গতি" ভিন্ন:
প্রেডিক্টেবল শিডিউলে (পুরস্কারের প্যাটার্ন অনুমানযোগ্য বলে ধরে নেওয়া) বোরডম দ্রুত জমে, আনপ্রেডিক্টেবল
শিডিউলে (পরবর্তী পুরস্কার কখন আসবে অনিশ্চিত বলে) বোরডম ধীরে জমে। random.seed(11) ব্যবহার
করা হয়েছে যাতে ফলাফল পুনরুৎপাদনযোগ্য হয়।
# একটি সিন্থেটিক, ইলাস্ট্রেটিভ Monte Carlo সিমুলেশন -- কোনো নির্দিষ্ট বাস্তব অ্যাপের দাবি নয়
import random
random.seed(11) # reproducibility-এর জন্য নির্দিষ্ট সিড
def simulate_session(reward_prob, stop_growth, max_steps=300):
# reward_prob: প্রতি ধাপে পুরস্কার পাওয়ার সম্ভাবনা (দুই শিডিউলেই সমান রাখা হয়েছে)
# stop_growth: পুরস্কারহীন প্রতিটি ধাপের পর থামার সম্ভাবনা কতটা বাড়ে
# রিটার্ন করে ব্যবহারকারী কত ধাপ পর স্ক্রল থামালো
step = 0
stop_prob = 0.02
while step < max_steps:
step += 1
if random.random() < reward_prob:
stop_prob = 0.02 # পুরস্কার পেলে থামার সম্ভাবনা রিসেট
else:
stop_prob = min(0.95, stop_prob + stop_growth)
if random.random() < stop_prob:
return step
return max_steps
TRIALS = 1500
fixed_lengths = [simulate_session(reward_prob=0.10, stop_growth=0.050) for _ in range(TRIALS)]
variable_lengths = [simulate_session(reward_prob=0.10, stop_growth=0.015) for _ in range(TRIALS)]
avg_fixed = sum(fixed_lengths) / TRIALS
avg_variable = sum(variable_lengths) / TRIALS
print(f"প্রেডিক্টেবল শিডিউল (দ্রুত বোরডম জমে, stop_growth=0.050): গড় সেশন দৈর্ঘ্য {avg_fixed:.1f} ধাপ")
print(f"আনপ্রেডিক্টেবল শিডিউল (ধীরে বোরডম জমে, stop_growth=0.015): গড় সেশন দৈর্ঘ্য {avg_variable:.1f} ধাপ")
print(f"পার্থক্য: আনপ্রেডিক্টেবল শিডিউলে গড়ে {avg_variable - avg_fixed:.1f} ধাপ বেশি")
stop_growth যত ছোট, প্রতিটি
পুরস্কারহীন ধাপের পর stop_prob তত ধীরে বাড়ে, ফলে গড়ে থামার আগে বেশি ধাপ পার হওয়ার সম্ভাবনা
গাণিতিকভাবেই বেশি — এটি কোনো নির্দিষ্ট র্যান্ডম রানের কাকতালীয় ফল নয়, মডেলের গঠন থেকেই আসা একটি
নিশ্চিত প্রবণতা। লক্ষণীয়, দুই শিডিউলেই reward_prob হুবহু সমান (১০%) — তাই পার্থক্যটি
"বেশি পুরস্কার থাকা"র জন্য নয়, একচেটিয়াভাবে অনিশ্চয়তার জন্য, যা ভ্যারিয়েবল-রেশিও
রিইনফোর্সমেন্টের প্রকৃত, নির্দিষ্ট দাবি।
এনগেজমেন্ট-ম্যাক্সিমাইজিং ডিজাইন প্রায়ই সুপ্রতিষ্ঠিত মনস্তাত্ত্বিক প্রক্রিয়া থেকে ধারণা ধার করে — এই বিজ্ঞানটুকু সুপ্রতিষ্ঠিত। কিন্তু "এটি কখন সহায়ক ডিজাইন, আর কখন ম্যানিপুলেশন" এবং "ডিজিটাল আসক্তি" ঠিক কতটা একটি ক্লিনিক্যালি স্বতন্ত্র অবস্থা — এই প্রশ্নগুলোতে গবেষক ও নীতিনির্ধারকদের মধ্যে এখনো প্রকৃত মতভেদ আছে, যা এই কোর্স একটি একক রায় দিয়ে বন্ধ করে দেয় না। মূল কাঠামোগত পর্যবেক্ষণ হলো — L17, L33 ও এই পাঠ একই ব্যবসায়িক-মডেল ইনসেন্টিভের তিনটি ভিন্ন সামাজিক প্রকাশ।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১
উপরের কোডে দুটি শিডিউলের reward_prob হুবহু সমান রাখা হয়েছে কেন — এটি এলোমেলোভাবে
করা হয়নি, কেন গুরুত্বপূর্ণ?
কারণ যদি আনপ্রেডিক্টেবল শিডিউলে বেশি পুরস্কারও দেওয়া হতো, তাহলে দীর্ঘ সেশনকে শুধু "বেশি পুরস্কার থাকলে বেশি আগ্রহ" এই সাধারণ (এবং কম আকর্ষণীয়) ব্যাখ্যা দিয়েই বোঝানো যেত। পুরস্কার-হার সমান রেখে দেখানো হচ্ছে যে শুধু সময়ের অনিশ্চয়তাই — পুরস্কারের মোট পরিমাণ না বাড়িয়েও — দীর্ঘতর সেশন তৈরি করতে পারে, যা ভ্যারিয়েবল-রেশিও রিইনফোর্সমেন্টের প্রকৃত দাবি।
প্র ০২ "ম্যানিপুলেশন" ও "ভালো প্রোডাক্ট ডিজাইন"-এর মধ্যে সীমারেখা কোথায় টানা উচিত বলে আপনার মনে হয়?
এটি একটি খোলা প্রশ্ন যার কোনো একক সর্বজনগ্রাহ্য উত্তর নেই — এই কোর্স কোনো একটি নির্দিষ্ট সীমারেখা "সঠিক" বলে দাবি করে না। একটি সাধারণভাবে আলোচিত মানদণ্ড হলো স্বচ্ছতা ও নিয়ন্ত্রণ — ব্যবহারকারী কি জানেন কেন ডিজাইনটি এভাবে তৈরি, এবং তার কি সহজে সেই প্রভাব সীমিত/বন্ধ করার বাস্তবসম্মত উপায় আছে (যেমন সহজে বন্ধ করা যায় এমন নোটিফিকেশন সেটিংস)? এটি একটি সম্ভাব্য মানদণ্ড, একমাত্র উত্তর নয়।
প্র ০৩
উপরের কোডে আনপ্রেডিক্টেবল শিডিউলের stop_growth-কে 0.015 থেকে
0.050-এ (প্রেডিক্টেবল শিডিউলের সমান) পরিবর্তন করলে ফলাফল কী হবে?
দুটি ফাংশন কলে তখন reward_prob ও stop_growth — উভয় প্যারামিটারই হুবহু
সমান হয়ে যাবে, তাই দুটি সিমুলেশনের প্রত্যাশিত গড় সেশন-দৈর্ঘ্য পরিসংখ্যানগতভাবে প্রায় সমান হয়ে
আসবে (শুধু র্যান্ডম স্যাম্পলিং ভ্যারিয়েশনের কারণে সামান্য পার্থক্য থাকতে পারে)। এটি দেখায় আগের
পার্থক্যটি "ভ্যারিয়েবল হওয়া" থেকে আসেনি — এসেছিল ইচ্ছাকৃতভাবে বেছে নেওয়া ভিন্ন stop_growth
মান থেকে।
অনুশীলন
-
চিন্তা করুন: আপনার নিজের ব্যবহৃত কোনো অ্যাপে "কখন নতুন কনটেন্ট/নোটিফিকেশন আসবে তা
অনিশ্চিত" এমন কোনো বৈশিষ্ট্য আছে কি? এটি সরিয়ে ফেললে (যেমন নির্দিষ্ট সময়ে ব্যাচে নোটিফিকেশন দেওয়া)
প্রোডাক্টের কার্যকারিতা কী হারাবে, আর ব্যবহারকারী কী ফিরে পাবে?
এই প্রশ্নের কোনো একক সঠিক উত্তর নেই — লক্ষ্য হলো ট্রেড-অফটি স্পষ্টভাবে চিহ্নিত করা। সাধারণত ব্যাচ-ভিত্তিক নোটিফিকেশনে ব্যবহারকারী তার মনোযোগের উপর বেশি নিয়ন্ত্রণ ফিরে পান, বিনিময়ে প্রোডাক্টটি হয়তো কিছুটা কম "তাৎক্ষণিক" মনে হতে পারে এবং স্বল্পমেয়াদী এনগেজমেন্ট মেট্রিক কিছুটা কমতে পারে।
-
পরীক্ষা করুন: উপরের কোড সেলে
TRIALS-কে1500থেকে300-এ কমিয়ে Run চাপুন — দুই শিডিউলের গড় সেশন-দৈর্ঘ্যের মধ্যে পার্থক্যের দিক (কোনটা বেশি) একই থাকে কিনা, কিন্তু নির্দিষ্ট সংখ্যাগুলো কি আগের রানের সাথে হুবহু মেলে?দিকটি (আনপ্রেডিক্টেবল শিডিউলের গড় সেশন-দৈর্ঘ্য বেশি) একই থাকবে, কারণ এটি মডেলের গঠন থেকেই নিশ্চিতভাবে আসে। কিন্তু নির্দিষ্ট দশমিক সংখ্যাগুলো আগের রানের থেকে সামান্য ভিন্ন হবে, কারণ কম ট্রায়াল (৩০০) মানে র্যান্ডম স্যাম্পলিং ভ্যারিয়েশন বেশি — এটিই দেখায় কেন বেশি ট্রায়ালের গড় (যেমন ১৫০০) একটি একক রানের চেয়ে বেশি নির্ভরযোগ্য সিদ্ধান্তে পৌঁছায়।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পরবর্তী পাঠ: AI ও ডিজিটাল ডিভাইড — অ্যাক্সেস বৈষম্য L36 M8-এর শেষ পাঠ — AI-এর সুবিধা ও ঝুঁকি কার কাছে অসমভাবে পৌঁছায়।
- L17 · সার্ভেইল্যান্স ক্যাপিটালিজম ও AI-চালিত ট্র্যাকিং সহোদর পাঠ এই পাঠের এনগেজমেন্ট-ইনসেন্টিভের মূল ব্যবসায়িক-মডেল ভিত্তিটি বিস্তারিত।
- L33 · মিসইনফরমেশন ও অ্যালগরিদমিক অ্যামপ্লিফিকেশন সহোদর পাঠ একই এনগেজমেন্ট-ইনসেন্টিভের আরেকটি সামাজিক প্রকাশ — কনটেন্ট-র্যাংকিংয়ের উপর প্রভাব।
- কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ M8-এর বাকি পাঠ ও পরবর্তী মডিউলগুলো এখানে দেখুন।