İçeriğe geç
academia.sh

Ders 18 / 24

Sosyal Kanıt ve Otorite

Görünür sayımların bilgi çağlayanı üreterek bağımsız kararı bastırması, popülerlik listesinin kendini beslemesi ve otorite işaretinin ancak kullanıcının kendi bilgisinden güvenilirse değer taşıması.

İçindekiler

Önceki ders varsayılanın kullanıcının kararını sessizce yönlendirdiğini gösterdi. Arayüzün elinde açıkça konuşan bir araç daha var: başkalarının ne yaptığını göstermek. Katalogda “bu kaydı ödünç alanlar şunları da aldı”, “bu ay en çok ödünç alınanlar” ya da bir kaydın yanındaki ödünç alma sayısı bu türdendir.

Sosyal kanıt (social proof), kişinin belirsiz bir durumda başkalarının davranışını bir bilgi kaynağı olarak kullanmasıdır. Mekanizma temelde makuldür: başkalarının seçimi, onların bildiği bir şeyi taşıyor olabilir. Bu ders makullüğün nerede bittiğini ölçer.

Görünür Sayım Bağımsız Bilgiyi Yok Eder

İlk hesap bir katalog durumunu modelliyor. Bir eserin iki baskısı var; biri gerçekten daha uygun (daha eksiksiz, daha okunaklı). Her kullanıcı kendi başına bakınca doğru baskıyı yüzde 68 olasılıkla ayırt edebiliyor — iyi ama kusurlu bir işaret.

Kırk kullanıcı sırayla geliyor. İki düzen karşılaştırılıyor: her kullanıcının yalnızca kendi işaretini gördüğü düzen ve o ana kadarki ödünç alma sayımlarını da gördüğü düzen.

// sosyal.mjs — gorunur sayimin bilgi tasima kapasitesine etkisi

function uretec(tohum) {
  let s = tohum >>> 0;
  return () => { s = (s * 1664525 + 1013904223) >>> 0; return s / 4294967296; };
}

const ISARET = 0.68;      // kullanicinin kendi isaretinin dogrulugu
const KULLANICI = 40;
const KOSU = 4000;

// ---- 1) Cogunlugun dogru karari: bagimsiz oy ile gorunur sayim ----
// Iki baski var, biri gercekten daha uygun (1). Her kullanici %68 dogru isaret aliyor.
function ardisik(gorunurSayim, rnd) {
  let n0 = 0, n1 = 0, kendiIsareti = 0, caglayanBasi = null;
  for (let i = 0; i < KULLANICI; i++) {
    const isaret = rnd() < ISARET ? 1 : 0;
    const fark = n1 - n0;
    let secim;
    if (!gorunurSayim || Math.abs(fark) < 2) { secim = isaret; kendiIsareti++; }
    else { secim = fark >= 2 ? 1 : 0; if (caglayanBasi === null) caglayanBasi = i; }
    if (secim === 1) n1++; else n0++;
  }
  return { n0, n1, kendiIsareti, caglayanBasi };
}

// k bagimsiz isaretin cogunlugunun dogru olma olasiligi
function ikiliKatsayi(n, k) {
  let r = 1;
  for (let i = 1; i <= k; i++) r = (r * (n - k + i)) / i;
  return r;
}
function cogunlukDogrulugu(k, q) {
  let t = 0;
  for (let i = Math.floor(k / 2) + 1; i <= k; i++) t += ikiliKatsayi(k, i) * q ** i * (1 - q) ** (k - i);
  return t;
}

console.log("duzen           cogunluk dogru  kendi isaretini kullanan  caglayanin basladigi sira");
const olculen = {};
for (const gorunur of [false, true]) {
  const rnd = uretec(20260527);
  let cogunlukDogru = 0, kendi = 0, bas = 0, basSayisi = 0;
  for (let k = 0; k < KOSU; k++) {
    const r = ardisik(gorunur, rnd);
    if (r.n1 > r.n0) cogunlukDogru++;
    kendi += r.kendiIsareti;
    if (r.caglayanBasi !== null) { bas += r.caglayanBasi; basSayisi++; }
  }
  const oran = cogunlukDogru / KOSU;
  olculen[gorunur ? "gorunur" : "gizli"] = oran;
  console.log(
    `${(gorunur ? "sayim gorunur" : "sayim gizli").padEnd(15)} ${((oran * 100).toFixed(1) + " %").padStart(14)}` +
    ` ${(kendi / KOSU).toFixed(1).padStart(24)} ${(basSayisi === 0 ? "-" : (bas / basSayisi).toFixed(1) + ". kullanici").padStart(27)}`
  );
}

// Gorunur sayimli duzen kac bagimsiz oya denk dusuyor
console.log("\nbagimsiz oy sayisi  cogunlugun dogru olma olasiligi");
for (const k of [1, 3, 5, 11, 21, 41]) {
  console.log(`${String(k).padStart(18)}  ${(cogunlukDogrulugu(k, ISARET) * 100).toFixed(1)} %`);
}
let denk = 1;
while (denk < 41 && cogunlukDogrulugu(denk, ISARET) < olculen.gorunur) denk += 2;
console.log(`sayim gorunurken 40 kullanici, ${denk} bagimsiz oya denk dusuyor`);

// ---- 2) "En cok odunc alinanlar" listesinin kendini besleme etkisi ----
const KAYIT = 200, TUR = 60, TUR_KULLANICI = 100, LISTE = 10, LISTE_ETKISI = 6;

function siraKorelasyonu(a, b) {                 // Spearman sira korelasyonu
  const sira = (v) => {
    const s = v.map((x, i) => [x, i]).sort((p, q) => q[0] - p[0]);
    const r = new Array(v.length);
    s.forEach(([, i], k) => { r[i] = k + 1; });
    return r;
  };
  const ra = sira(a), rb = sira(b), n = a.length, ort = (n + 1) / 2;
  let pay = 0, pa = 0, pb = 0;
  for (let i = 0; i < n; i++) {
    pay += (ra[i] - ort) * (rb[i] - ort);
    pa += (ra[i] - ort) ** 2; pb += (rb[i] - ort) ** 2;
  }
  return pay / Math.sqrt(pa * pb);
}

function popularite(listeVar) {
  const rnd = uretec(20260601);
  const nitelik = Array.from({ length: KAYIT }, () => 0.2 + rnd() * 0.8);
  const sayim = new Array(KAYIT).fill(0), ilkTur = new Array(KAYIT).fill(0);
  for (let tur = 0; tur < TUR; tur++) {
    const enCok = [...sayim.keys()].sort((a, b) => sayim[b] - sayim[a]).slice(0, LISTE);
    const listede = new Set(listeVar ? enCok : []);
    const agirlik = nitelik.map((q, i) => q * (listede.has(i) ? LISTE_ETKISI : 1));
    const toplam = agirlik.reduce((a, b) => a + b, 0);
    for (let u = 0; u < TUR_KULLANICI; u++) {
      let x = rnd() * toplam, i = 0;
      while (x > agirlik[i] && i < KAYIT - 1) { x -= agirlik[i]; i++; }
      sayim[i]++;
      if (tur === 0) ilkTur[i]++;
    }
  }
  return { nitelik, sayim, ilkTur };
}

console.log("\nliste                nitelikle korelasyon  ilk turdaki sansla korelasyon  ilk 10'da gercek ilk 10");
for (const listeVar of [false, true]) {
  const { nitelik, sayim, ilkTur } = popularite(listeVar);
  const enIyi = new Set([...nitelik.keys()].sort((a, b) => nitelik[b] - nitelik[a]).slice(0, LISTE));
  const enCok = [...sayim.keys()].sort((a, b) => sayim[b] - sayim[a]).slice(0, LISTE);
  console.log(
    `${(listeVar ? "liste gosteriliyor" : "liste yok").padEnd(20)} ${siraKorelasyonu(sayim, nitelik).toFixed(3).padStart(21)}` +
    ` ${siraKorelasyonu(sayim, ilkTur).toFixed(3).padStart(29)} ${(enCok.filter((i) => enIyi.has(i)).length + " / 10").padStart(24)}`
  );
}

// ---- 3) Otorite isareti kendi isaretinin yerini ne zaman alir ----
console.log("\notorite dogrulugu  otoriteye uyma  kendi isareti  en guvenilire uyma  5 bagimsiz oy");
const besOy = cogunlukDogrulugu(5, ISARET);
for (const a of [0.50, 0.60, 0.68, 0.80, 0.92]) {
  console.log(
    `${a.toFixed(2).padStart(17)}  ${((a * 100).toFixed(1) + " %").padStart(14)} ${((ISARET * 100).toFixed(1) + " %").padStart(14)}` +
    ` ${((Math.max(a, ISARET) * 100).toFixed(1) + " %").padStart(19)} ${((besOy * 100).toFixed(1) + " %").padStart(14)}`
  );
}
duzen           cogunluk dogru  kendi isaretini kullanan  caglayanin basladigi sira
sayim gizli             98.4 %                     40.0                           -
sayim gorunur           82.1 %                      3.5              3.5. kullanici

bagimsiz oy sayisi  cogunlugun dogru olma olasiligi
                 1  68.0 %
                 3  75.8 %
                 5  80.9 %
                11  89.7 %
                21  95.8 %
                41  99.2 %
sayim gorunurken 40 kullanici, 7 bagimsiz oya denk dusuyor

liste                nitelikle korelasyon  ilk turdaki sansla korelasyon  ilk 10'da gercek ilk 10
liste yok                            0.918                         0.177                   7 / 10
liste gosteriliyor                   0.858                         0.290                   1 / 10

otorite dogrulugu  otoriteye uyma  kendi isareti  en guvenilire uyma  5 bagimsiz oy
             0.50          50.0 %         68.0 %              68.0 %         80.9 %
             0.60          60.0 %         68.0 %              68.0 %         80.9 %
             0.68          68.0 %         68.0 %              68.0 %         80.9 %
             0.80          80.0 %         68.0 %              80.0 %         80.9 %
             0.92          92.0 %         68.0 %              92.0 %         80.9 %

Bilgi Çağlayanı ve Etkin Oy Sayısı

İlk tablo tersine bir sonuç veriyor. Sayım gizliyken kırk kullanıcının çoğunluğu doğru baskıyı yüzde 98.4 oranında buluyor. Sayım görünürken bu oran yüzde 82.1’e düşüyor. Kullanıcılara daha çok bilgi verildiğinde toplu karar kötüleşiyor.

Nedeni ikinci sütunda. Sayım gizliyken kırk kullanıcının kırkı da kendi işaretini kullanıyor. Sayım görünürken yalnızca 3.5’i kullanıyor. Ortalama 3.5. kullanıcıdan sonra sayım farkı iki oya çıkıyor ve o noktadan sonra hiçbir kullanıcının kendi işareti kararını değiştirmeye yetmiyor. Herkes sayıma uyuyor, sayım büyüyor, uyma nedeni güçleniyor.

Bu yapıya bilgi çağlayanı (information cascade) denir. (CSS’teki basamaklama ile karıştırılmamalıdır; burada basamaklanan biçem kuralları değil kararlardır.) Çağlayanın kritik özelliği şudur: dördüncü kullanıcıdan sonra gelen otuz altı kişinin sahip olduğu bilgi hiçbir zaman sisteme girmez. Sayım büyür ama içindeki bilgi büyümez.

Üçüncü blok bunu tek bir sayıya indiriyor. Bağımsız oyların çoğunluğu 5 oyda yüzde 80.9, 41 oyda yüzde 99.2 doğruluk veriyor. Sayımın görünür olduğu düzende kırk kullanıcının ürettiği yüzde 82.1’lik doğruluk, yedi bağımsız oya denk düşüyor. Kırk kullanıcının otuz üçü toplu bilgiye hiçbir katkı yapmıyor.

Tasarım karşılığı nettir: sayının gösterildiği an önemlidir. Kullanıcı kendi kararını verdikten sonra gösterilen bir sayım bilgiyi bozmaz; karar verilmeden önce gösterilen sayım, o kullanıcıdan sonraki bütün kullanıcıların bilgisini bastırır.

Popülerlik Listesi Kendi Kendini Besler

İkinci hesap iki yüz kayıtlı bir katalogda altmış tur boyunca ödünç almaları izliyor. Her kaydın bir niteliği var. İki düzen karşılaştırılıyor: “en çok ödünç alınan on kayıt” listesinin gösterildiği düzen ve gösterilmediği düzen.

Liste yokken sıralamanın nitelikle sıra korelasyonu 0.918, ilk turdaki rastlantıyla 0.177; sonuçtaki ilk on kaydın yedisi gerçekten en nitelikli on kayıt. Liste gösterildiğinde nitelik korelasyonu 0.858’e düşüyor, rastlantı korelasyonu 0.290’a çıkıyor ve sonuçtaki ilk onun yalnızca biri gerçek ilk onda.

Bu üçüncü sayı, ilk iki sayının gizlediği şeyi açığa çıkarıyor. Genel korelasyon çok az bozuluyor (0.918’den 0.858’e) çünkü listenin dışındaki yüz doksan kaydın sıralaması hâlâ nitelikle belirleniyor. Bozulan yer tam olarak listenin kendisi: ilk turda şansı yaver giden kayıtlar listeye giriyor, listede olmak onlara altı kat görünürlük veriyor, bu görünürlük sayımlarını artırıyor ve listede kalmalarını sağlıyor. Nitelikli ama ilk turda şanssız kayıtlar bir daha yukarı çıkamıyor.

Sonuç, listenin iddia ettiği şeyi ölçmemesidir. “En çok ödünç alınanlar” başlığı kullanıcıya bir nitelik sıralaması vaat eder; ölçtüğü şey büyük ölçüde erken görünürlüktür. Kullanıcı bu listenin nasıl üretildiğini bilseydi ona bir nitelik işareti olarak bakmazdı.

Bu, popülerlik listesinin her koşulda yanlış olduğu anlamına gelmez. Bozulmayı üreten şey geri besleme döngüsüdür: listede olmanın listede kalmayı kolaylaştırması. Döngüyü kıran tasarım kararları vardır — listeyi dar bir zaman penceresiyle sınırlamak, listeye giren kayıtları bir süre listeden çıkarmak, listeyi ödünç sayısı yerine tamamlanma ya da iade sonrası değerlendirme gibi daha zor taklit edilen bir ölçüte bağlamak. Her biri görünürlük kazancını sayımdan koparır.

Otorite Ancak Daha Güvenilirse Bilgidir

Son tablo otorite işaretini ele alıyor: “bölüm okuma listesinde”, “kütüphaneci önerisi”, “öğretim üyesi seçkisi” gibi etiketler.

Kullanıcının kendi işareti yüzde 68 doğru. Otoritenin doğruluğu 0.50 iken otoriteye uymanın doğruluğu yüzde 50 — kullanıcı kendi başına karar verse yüzde 68 alacaktı. Otorite doğruluğu 0.68’e çıktığında iki seçenek eşitleniyor. Ancak 0.80 ve 0.92’de otoriteye uymak kazandırıyor.

Kural şudur: otorite işareti, kullanıcının kendi yargısından daha güvenilir olduğu ölçüde bilgidir; değilse yalnızca kararı devralmıştır. Arayüzde bir etiket gösterildiğinde kullanıcı bu karşılaştırmayı yapamaz, çünkü etiketin doğruluğunu bilmez. Etiketi anlamlı kılan şey, dayanağının görünür olmasıdır: “hangi dersin okuma listesi”, “kim önerdi”, “hangi ölçütle seçildi”. Dayanağı yazılmayan bir otorite etiketi kullanıcıya bir sayı değil, yalnızca bir yön verir.

Son sütun tabloyu bu dersin ilk bölümüne bağlıyor. Beş bağımsız kullanıcının çoğunluğu yüzde 80.9 doğruluk veriyor — 0.80 doğruluklu bir otoriteden daha iyi. Kalabalık, bağımsız olduğu sürece çoğu otoriteden güvenilirdir. İlk hesap ise görünür sayımın tam olarak bu bağımsızlığı yok ettiğini gösterdi. Sosyal kanıtı değerli kılan şeyle onu gösterme biçimi birbirini bozuyor.

Tanıma ve Reddetme Ölçütleri

Bir sosyal kanıt ya da otorite işaretinin meşru olup olmadığı üç soruyla denetlenir.

Sayının doğrulanabilir bir dayanağı var mı? “412 kullanıcı bu kaydı ödünç aldı” sayılabilir bir olguya karşılık gelir. “Bu kayıt çok popüler” hiçbir şeye karşılık gelmez ve denetlenemez. Denetlenemeyen ifade sosyal kanıt değil, sosyal kanıt görünümüdür.

Sayı kullanıcının kararından önce mi sonra mı gösteriliyor? Karardan önce gösterilen sayım çağlayan üretir. Kaydı açan kullanıcıya ödünç sayısını göstermek yerine, ödünç aldıktan sonra “bu kaydı alan kullanıcılar şunları da aldı” demek aynı bilgiyi bağımsızlığı bozmadan verir.

Kıtlık gerçek mi? “Bu kaydın kalan tek nüshası” ifadesi katalog verisinden doğruysa kullanıcının işine yarayan bir bilgidir: bekleme kararını değiştirir. Aynı ifade nüsha sayısından bağımsız olarak gösteriliyorsa, kullanıcının aceleci karar vermesini sağlamak için üretilmiş bir sahte kıtlık işaretidir. İkisi ekranda aynı görünür; ayrım verinin kaynağındadır.

Bu üç sorunun ortak paydası, bu konunun baştan beri kullandığı ölçüttür. Kullanıcı, gördüğü sayının nasıl üretildiğini bilseydi kararı değişir miydi? Ödünç sayısı gerçek sayımdan geliyorsa değişmez. Popülerlik listesi kendi kendini besleyen bir döngüden geliyorsa değişir. Kıtlık uyarısı stoktan bağımsız gösteriliyorsa değişir — ve o zaman kararın gücü kullanıcının bilgisizliğinden geliyor demektir.

Özet

  • Sosyal kanıt, başkalarının davranışının bir bilgi kaynağı olarak kullanılmasıdır; değeri, o davranışların bağımsız yargılardan doğmasına bağlıdır.
  • Görünür sayım bilgi çağlayanı üretir: benzetimde çoğunluğun doğruluğu yüzde 98.4’ten 82.1’e düştü ve kırk kullanıcıdan yalnızca 3.5’i kendi işaretini kullanabildi.
  • Görünür sayımlı kırk kullanıcı, yedi bağımsız oya denk bilgi üretir; kalan kullanıcıların bilgisi sisteme hiç girmez.
  • Popülerlik listesi geri besleme döngüsü kurar: hesapta sonuçtaki ilk onun yalnızca biri gerçekten en nitelikli on kayıt arasındaydı; liste niteliği değil erken görünürlüğü ölçüyor.
  • Otorite işareti ancak kullanıcının kendi yargısından güvenilirse bilgi taşır; beş bağımsız kullanıcının çoğunluğu, 0.80 doğruluklu bir otoriteden daha isabetlidir.
  • Denetim üç soruyla yapılır: sayının doğrulanabilir dayanağı var mı, karardan önce mi gösteriliyor, kıtlık gerçek mi?

Sonraki Adım

Bu ders arayüzün kullanıcıya başkaları hakkında verdiği bilgiyi ele aldı. Arayüzün verdiği bir bilgi türü daha var ve doğrudan kullanıcının kendisiyle ilgili: nerede olduğu, ne kadar yol aldığı, ne kadar kaldığı. Sonraki ders görünür ilerlemenin akışı tamamlama üzerindeki etkisini hesaplar, geri bildirim gecikmesinin hangi eşiklerde davranışı değiştirdiğini ele alır ve ilerleme göstergesinin ne zaman bilgi ne zaman süs olduğunu ayırır.

İlerlemeni kaydetmek ve not almak için Giriş yap

Notlarım

Not almak için giriş yapmalısın.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat