রেস্তোরাঁর অ্যাপ যত নির্ভুল, ধনী আর দরিদ্রকে তত আলাদা করে
মানচিত্র কাছাকাছি রেস্তোরাঁগুলোর ক্রম সাজায়, খাবারের অ্যাপ পরের বার কোথায় খাবেন তা প্রস্তাব করে, আর ভাষা-মডেল এখন কোথায় যাবেন সেই প্রশ্নের উত্তর দেয়। ছাপা গাইডবইয়ের মতো নয়, এই প্রস্তাবগুলোর পেছনের ব্যবস্থাগুলো নিজেদের চালিত সফর থেকেই শেখে। মানুষ কোথায় গেছেন তার ভিত্তিতে এগুলোকে আবার প্রশিক্ষণ দেওয়া হয় — যার মধ্যে আছে সেই জায়গাগুলোও, যেগুলো এরা নিজেরাই সুপারিশ করেছিল। এটি মানুষ আর অ্যালগরিদমের মধ্যে একটি প্রতিক্রিয়া-চক্র (feedback loop)।
প্ল্যাটফর্মগুলো সাধারণত এই ব্যবস্থাগুলোর বিচার করে তাদের অফলাইন নির্ভুলতা (offline accuracy) দিয়ে: কোনো সুপারিশের আগে মানুষ যে সফরগুলো করেছিলেন, সেগুলোর পূর্বাভাস এরা কত ভালোভাবে দেয়। এই পরীক্ষায় প্রস্তাবগুলো কখনো মানুষের গন্তব্য বদলাতে পারে না, তাই সময়ের সঙ্গে চক্রটি কী করে তা এতে ধরা পড়ে না। নর্থইস্টার্ন ইউনিভার্সিটি (Northeastern University), ত্রেন্তোর ব্রুনো কেসলার ফাউন্ডেশন (Bruno Kessler Foundation), পিসার ISTI-CNR আর নিউ ইয়র্ক ইউনিভার্সিটির (New York University) একটি দল এটি মাপতে নেমেছে।
শহর কেন প্লেলিস্ট নয়
প্রতিক্রিয়া-চক্র নিয়ে গবেষণা মূলত হয়েছে গান, সিনেমা আর পণ্যের ক্ষেত্রে, যা যত মানুষ খুশি একে অপরকে প্রভাবিত না করেই উপভোগ করতে পারেন। রেস্তোরাঁ তিন দিক থেকে আলাদা। মানুষ বেছে নেন নিজেরা যেখানে আছেন সেখান থেকে নাগালের মধ্যে থাকা জায়গাগুলোর মধ্য থেকে। একটি রেস্তোরাঁ নির্দিষ্ট সংখ্যক গ্রাহককেই পরিবেশন করতে পারে। আর একজনকে করা সুপারিশ অন্য গ্রাহকেরা কার সঙ্গে দেখা করেন তা-ও বদলে দেয়।
তাই দলটি আসল চলাচলের ওপর ভিত্তি করে একটি সিমুলেশন তৈরি করেছে। সম্মতি দেওয়া ব্যবহারকারীদের নাম-পরিচয়হীন জিপিএস ডেটা, অক্টোবর 2016 থেকে মার্চ 2017-এর মধ্যে রেকর্ড করা, থেকে পাওয়া গেছে বস্টন, সান ফ্রান্সিসকো আর ডেট্রয়েটে 4,000 বাসিন্দা এবং শিকাগোতে 8,000 বাসিন্দার দৈনিক সময়সূচি, তাঁদের নিজ নিজ পাড়ার চারটি আয়-চতুর্থাংশ (income quartiles) থেকে সমান সংখ্যায় নেওয়া। খেতে যাওয়ার প্রতিটি যাত্রায় একটি সুপারিশকারী (recommender) বাস্তবসম্মত দূরত্বের মধ্যে এমন 20টি ভেন্যু প্রস্তাব করেছে যেগুলোতে তখনো জায়গা ছিল; প্রতিটি ভেন্যুর সাপ্তাহিক ধারণক্ষমতা ধরা হয়েছিল তার আসল সফর-সংখ্যার 1.5 গুণ। ব্যবস্থাটিকে প্রতি সপ্তাহে আগের চার মাসের ডেটায় আবার প্রশিক্ষণ দেওয়া হয়েছে, প্রায় তিন বছর ধরে। ডেটায় থাকা বাকি সবার আসল সফর — শহরপ্রতি 290,977 জন পর্যন্ত — রেখে দেওয়া হয়েছিল, যাতে সিমুলেটেড বাসিন্দারা তাঁদের সঙ্গে ভেন্যু ভাগাভাগি করেন।
চারটি অ্যালগরিদম তুলনা করা হয়েছে: একটি, যা একজন মানুষ সবচেয়ে বেশি যে জায়গাগুলোতে যান সেগুলোই সুপারিশ করে (UR-POI); দুটি, যা একই রকম ভেন্যু বা একই রকম মানুষ থেকে শেখে; আর একটি, যা পুরো জনগোষ্ঠীর চলাচল অনুসরণ করে।
কে কার সঙ্গে দেখা করেন, তার পরিমাপ
দলটি মেপেছে অভিজ্ঞতালব্ধ আয়ভিত্তিক পৃথকীকরণ (experienced income segregation): প্রতিটি মানুষের ক্ষেত্রে, ভেন্যুতে কাটানো সময় চারটি আয়-গোষ্ঠীর মানুষের মধ্যে কতটা অসমভাবে ভাগ হয়। 0 স্কোর মানে সমান মিশ্রণ; 1 স্কোর মানে কেবল একটি গোষ্ঠীর সঙ্গেই দেখা হওয়া। মিশ্র জায়গাগুলো গুরুত্বপূর্ণ, কারণ বিভিন্ন আয়ের মানুষের মধ্যে সম্পর্ক ঊর্ধ্বমুখী সামাজিক সচলতার পূর্বাভাস দেয়। রেস্তোরাঁ পরীক্ষার জন্য ভালো ক্ষেত্র: মানুষ যে পাড়ায় থাকেন তার তুলনায় এগুলোতে পৃথকীকরণ প্রায় অর্ধেক।
নির্ভুলতা বনাম মিশ্রণ
ফলাফলটি একটি টানাপোড়েন (trade-off)। অফলাইন নির্ভুলতা অনুযায়ী সাজালে আর তারা যে পৃথকীকরণ তৈরি করে তা অনুযায়ী সাজালে, চারটি অ্যালগরিদম আসে একই ক্রমে। নির্ভুলতা দেখে বাছলে প্রতিটি শহরেই বাছা হয় সবচেয়ে বেশি পৃথককারী অ্যালগরিদমটি। সবচেয়ে নির্ভুলটি, UR-POI, মানুষকে তাঁদের আসল সফরের চেয়ে 15–21% বেশি পৃথকীকরণে রেখেছে। এটি নির্ভুলতায় জেতে ঠিক এই কারণেই যে মানুষ চেনা জায়গায় ফিরে যান — আর তাঁদের সেখানে ফেরত পাঠিয়ে এটি তাঁদের নিজেদের লোকজনের মধ্যেই আটকে রাখে।
দায়টা ক্রম-সাজানোর, মানচিত্রের নয়। নাগালের মধ্যে থাকা একই ভেন্যুগুলো থেকে দৈবভাবে বাছলে বস্টনে সবচেয়ে কম পৃথকীকরণ পাওয়া গেছে। আর বোঝাটা সবচেয়ে বেশি পড়ে তাঁদের ওপর, যাঁরা আগে থেকেই সবচেয়ে বিচ্ছিন্ন: সর্বনিম্ন আয়ের বাসিন্দারা সব জায়গাতেই সবচেয়ে পৃথকীকৃত গোষ্ঠী ছিলেন, আর বস্টনে তাঁদের স্কোর বাস্তবের 0.360 থেকে UR-POI-এর অধীনে বেড়ে হয়েছে 0.413।
যে রেস্তোরাঁগুলো হারিয়ে যায়
চক্রটি ভেন্যুগুলোকে খালিও করে দেয়। প্রতিটি অ্যালগরিদমে ও প্রতিটি শহরে অন্তত এক-পঞ্চমাংশ রেস্তোরাঁ তাদের সব সিমুলেটেড অতিথি হারিয়েছে — 21% থেকে 71%, যেখানে সাপ্তাহিক পুনঃপ্রশিক্ষণ ছাড়া এই হার 5% থেকে 30%। এই ক্ষতির 55 থেকে 75% ঘটিয়েছে পুনঃপ্রশিক্ষণ নিজেই: যে ভেন্যুতে কেউ যায় না, সেটি ডেটা থেকে বাদ পড়ে আর তাকে আর সুপারিশ করা হয় না। ক্ষতি কেন্দ্রীভূত হয়েছে কম সক্রিয়, নিম্ন-আয়ের পাড়াগুলোতে।
মিশ্রণ আর টিকে থাকা দুই বিপরীত দিকে যেতে পারে। যে দুটি অ্যালগরিদম সবচেয়ে কম পৃথকীকরণ ঘটায়, সেগুলো সবচেয়ে বেশি শেখে অন্য মানুষের সফর থেকে, সবাইকে একই ভেন্যুগুলোতে জড়ো করে — আসল সফরের মিলের (overlap) 4.4 থেকে 6.2 গুণ — আর তাই বেশি ভেন্যু খালি ফেলে রাখে, প্রতিটি শহরেই সবচেয়ে বেশি UserKNN।
ক্রমতালিকায় একটি মৃদু ধাক্কা
দলটি tail-boost নামের একটি সহজ সমাধান পরীক্ষা করেছে, যা যেকোনো অ্যালগরিদমের ওপর জুড়ে দেওয়া যায়: প্রতিটি ভেন্যুর স্কোর মেশানো হয় একটি বোনাসের সঙ্গে, যা কম লোক যায় এমন জায়গার জন্য বড়। বস্টনে, অফলাইন নির্ভুলতার সর্বোচ্চ 15% ছেড়ে দিয়ে, এটি প্রতিটি অ্যালগরিদমে ভেন্যু হারিয়ে যাওয়া কমিয়েছে 54 থেকে 75%, আর চারটির মধ্যে তিনটিতে পৃথকীকরণ কমিয়েছে; UR-POI-এর অধীনে বাড়তি পৃথকীকরণ 21% থেকে নেমে এসেছে 13%-এ। এটি তা করেছে মূলত মানুষকে এমন জায়গায় না পাঠিয়েই, যেখানে তাঁদের নিজেদের আয়-গোষ্ঠী একটি ক্ষুদ্র সংখ্যালঘু। কেবল অফলাইন নির্ভুলতা দেখলে এটি বাতিল হয়ে যেত।
সিমুলেশনটি মানুষকে সরল রাখে — মূল রানগুলোতে সবাই সুপারিশ মেনে চলেন — আর আয় মাপে পাড়া ধরে, ব্যক্তি ধরে নয়। লেখকেরা তাঁদের কোড প্রকাশ করেছেন এবং যুক্তি দিয়েছেন যে, ইউরোপীয় ডিজিটাল সার্ভিসেস অ্যাক্টের (Digital Services Act) চেতনায়, প্ল্যাটফর্ম ও নিরীক্ষকদের উচিত কোনো অ্যালগরিদম চালু করার আগে চক্রটির সিমুলেশন করা। সুপারিশ-গবেষণা দীর্ঘদিন ধরে প্রতিটি প্রস্তাবকে একজন ব্যবহারকারী ও একটি আইটেমের মধ্যকার বিষয় হিসেবে দেখে এসেছে; গবেষণাপত্রের ভাষায়, একটি শহরে মেনে নেওয়া প্রতিটি সুপারিশ “অন্য মানুষেরা কার সঙ্গে দেখা করেন এবং কোন ভেন্যুগুলোতে লোকের আসা-যাওয়া থাকে, তা-ও বদলে দেয়।”
