Back to "Noll PII Kundunderrättelse - Del 1: Filosofin"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

C# Privacy Product Segmentation

Noll PII Kundunderrättelse - Del 1: Filosofin

Wednesday, 24 December 2025

Vad den här serien bygger upp

Denna serie bygger ett fungerande e-handelssystem som visar att du kan ha sofistikerad kundinformation utan att lagra personuppgifter.

"Vad vi bygger " Hur det fungerar " |--------------|--------------| "Semantisk segmentering" Vector inbäddar grupp liknande intressen Personalisering i realtid på sessionssignaler, inte permanenta profiler på Full insyn på Användarna ser och justerar sina intressesignaturer "Noll PII " Beteendemönster, inte identiteter"

Urvalsprojektet (Mostlylucid.SegmentCommerce) är ett komplett, fungerande genomförande du kan köra lokalt.

Serien

  • Häfte 1 (den här artikeln): Filosofin – varför öppenhet slår opacitet
  • Häfte 1.1: Generera syntetiska provdata lokalt
  • Häfte 2: Sessionsprofiler, signaler och segmentdefinitioner
  • Häfte 3 (kommer): Utkorg mönster, jobb kö, och transparens UI

Den falska dikotomi

Industrin presenterar personalisering som ett binärt val:

Alternativ A: Sofistikerat men missriktat

  • Samla massor av signaler (vissa verkligt användbara)
  • Bygg permanenta profiler optimerade för målinriktning
  • Spårning av webbplatser, tredjeparts-ID och ofta invasiva fingeravtryck
  • Ogenomskinliga algoritmer användare kan inte inspektera eller kontrollera
  • Resultat: beteendemanipulering och reklamvärde, inte kundvärde

Alternativ B: Privacy-respecting men dum

  • Ingen spårning alls
  • Generiskt innehåll för alla
  • Ingen personalisering, inga rekommendationer
  • Resultat: Dålig användarupplevelse, lågt engagemang

Detta är en Falsk dikotomiDet saknas en arkitektur.

Personlighet utan identitet

Tänk om kunderna kunde:

  • Ser du deras egna intressesignaturer i realtid?
  • Förstå exakt varför de ser specifika rekommendationer?
  • Justera sina segment med enkla kontroller?
  • Lita på systemet för att de kan inspektera det?

Det här är inte teoretiskt, vi bygger det.

Den grundläggande insikten

Du behöver inte veta. vem någon är för att förstå Vad de är intresserade av just nu.

flowchart LR
    A[Identity] --> B[Permanent profile]
    B --> C[Recommendations]

    S[Session token] --> T[Interest signals]
    T --> U[Session signature]
    U --> C
    U --> D[Fades naturally]

    U --> P[Anonymous profile]
    P --> X[Unmasked identity]

    style B stroke:#c92a2a,stroke-width:4px
    style U stroke:#1971c2,stroke-width:4px
    style P stroke:#2f9e44,stroke-width:4px
    style D stroke:#868e96,stroke-width:2px
    style X stroke:#868e96,stroke-width:2px

En räntesignatur som:

"yoga • sustainability • minimalism • wellness • organic"

... berättar allt du behöver för personalisering utan att berätta något om personens identitet.

Det kan leva för en enda session, eller envisas som en anonym profil att användaren kan återställa eller exportera.

Tidigt är det enklaste sättet att hålla profilen stabil utan inloggning Fingeravtryck från klientsidan— men genomfört i en Noll-PII/noll-tracking-cookie Sätt.

I den nuvarande kodbasen (Mostlylucid.SegmentCommerce) webbläsaren beräknar ett fingeravtryck Hash Ordförande (inga råa signaler skickas, ingen lokal lagring, ingen spårning cookie) och postar det till /api/fingerprint. Servern sedan HMAC-ämnen som hash (så det är värdelöst utanför denna webbplats) och länkar den till den aktuella sessionen.

Vi använder fortfarande en väsentlig sessionscookie för kortlivade sessionstillstånd (vyer, karthändelser, etc.), men vi gör inte behöver en dedikerad "följ-du-för-alltid" tracking cookie för att få användbar kontinuitet. Senare i serien kan vi uppgradera till en inloggad identitet läge (högst förtroende) utan att ändra resten av segmenteringen design.

flowchart TB
    A[Session only]
    B[Fingerprint mode]
    C[Cookie mode]
    D[Identity mode]

    A -->|no persistence| A
    B -->|hash in browser| E[/api/fingerprint/]
    E -->|HMAC on server| F[PersistentProfile key]

    A -. upgrade .-> B
    B -. optional upgrade .-> D
    C -. optional upgrade .-> D

    style A stroke:#868e96,stroke-width:2px
    style B stroke:#1971c2,stroke-width:3px
    style C stroke:#fab005,stroke-width:3px
    style D stroke:#2f9e44,stroke-width:3px
    style F stroke:#1971c2,stroke-width:3px

Avgörande: envishet behöver inte betyda identitet. Profilen förblir fristående om inte användaren uttryckligen väljer att avmaska den.

Jämför det med traditionell profilering:

Name: John Smith
Email: [email protected]
Age: 34
Location: Seattle
Purchase history: [284 items tracked forever]
Browsing history: [Cross-site tracking across 47 domains]

Den första metoden ger dig bättre rekommendationer där Noll PII. Den andra inkräktar integritet och fortfarande får det fel (kom ihåg att en impuls köp fortfarande hemsöker din mat sex månader senare?).

Problemet vi löser

Du har själv upplevt dysfunktionen:

Vad användarna upplever:

  • "Maten känns konstig"
  • "Varför ser jag det här?"
  • "Varför försvinner inte det här?"
  • "Jag tittade på den en gång som en gåva till någon annan – sluta visa mig baby produkter"

Vad de inte får:

  • En mental modell för hur det fungerar
  • En känsla av kontroll
  • Förtroende

Vad branschen säger:

  • "Användare kommer inte att förstå algoritmen ändå"
  • "Öppenhet skadar omräkningskurserna"
  • "Sekretess och personalisering är oförenliga"
  • "Algoritmen är för komplex för att förklara"

Dessa påståenden kvarstår eftersom de överensstämmer med kommersiella incitament, inte med den tekniska verkligheten.

Varför Big Tech inte kommer att förklara deras algoritmer

Det är inte så att Google, Amazon, Meta, eller TikTok Kan inte Förklara hur deras rekommendationssystem fungerar. De kan absolut. Algoritmerna är inte magiska – de är matematik, statistik och maskininlärning som kan förklaras på klarspråk.

De väljer att inte göra det, eftersom öppenhet skulle undergräva de ekonomiska antaganden som dessa system bygger på.

Det strukturella problemet

Kärnfrågan är inte teknisk komplexitet – det är att dessa system optimerar för olika resultat än vad användarna antar.

Att samla signaler för att göra en produkt mer användbar är inte problemet. Problemet är när samma signaler återanvänts för målinriktning och beteendemanipulering.

Engagemang maximering ofta strider mot användarvärdet. Ad placering driver vad du ser. Beteende nudging håller dig rullning.

Öppenhet skulle göra dessa konflikter uppenbara, så opacitet blir ett inslag, inte en begränsning.

Det kommersiella incitamentet för opacitet

Det finns omfattande kommersiella och PR-relaterade skäl för att undvika öppenhet:

1. Datainsamlingens omfattning

  • Spårning över platsen, köp av datamäklare, beteendemässiga slutsatser
  • Den fulla omfattningen skulle chockera de flesta användare

2. Optimeringsmål

  • System optimerade för engagemang förstärker ofta upprördhet
  • Ad-intäkterna står ofta i konflikt med användarvärdet
  • Obalansen mellan angivna och faktiska mål

3. Profil Permanens

  • Data som samlats in över år utan naturligt förfall
  • Engångsåtgärder som behandlas som permanenta preferenser
  • Ingen skillnad mellan nyfikenhet och engagemang

"Det är för komplext" ursäkten

Vid tryck gömmer sig Big Tech bakom: "Algoritmen är för komplex för att vanliga användare ska kunna förstå."

Denna inramning är vilseledande. Användare förstår redan:

  • Räntesatser och lånevillkor (komplex matematik)
  • Näringsmärkning (statistiska aggregat)
  • Väderleksprognoser (probabilistiska modeller)
  • Kreditbetyg (multifaktoralgoritmer)

De kunde också förstå rekommendationer – om företagen valde att förklara dem.

Komplexitet är inte barriären.

Lösningen: Genomskinlig segmentering

Att bygga ett noll-PII kundinformationssystem börjar med en grundläggande princip: användare bör förstå vad som händer och varför.

Du behöver inte en whitepaper. Du behöver en enkel engelsk mental modell som användare kan internalisera på trettio sekunder.

Vad är ett segment? (I mänskliga termer)

Det här är vad jag inte ska säga:

"Ett kluster härlett från inbäddningar i ett högdimensionellt vektorutrymme, härlett från likhetspoäng över vektorer..."

Så här fungerar det:

"Vi grupperar produkter och intressen i små, överlappande segment baserat på hur människor interagerar med dem. Du är förmodligen i dussintals segment på en gång – och de förändras ständigt baserat på vad du faktiskt gör."

Tre nyckelbegrepp att kommunicera:

  1. Segment är vätska - De är inte kategorier man blir inlåst i.
  2. Du är i många på en gång - Intresset för vandringsredskap hindrar dig inte från att också vara intresserad av matlagning
  3. De förändras över tid - Förra månadens intressen definierar dig inte för alltid.
graph TB
    User[Anonymous user] --> Action1[Views yoga mat]
    Action1 --> Sig1[Signature updated]

    Sig1 --> Action2[Views cookbook]
    Action2 --> Sig2[Signature updated]

    Sig2 --> Action3[Hides product]
    Action3 --> Sig3[Signature updated]

    Sig3 --> Sig4[Decays over time]
    Sig4 --> Sig5[Fades without reinforcement]

    Sig3 --> Segment1[Segment: wellness]
    Sig4 --> Segment2[Segment: general]
    Sig5 --> Segment3[Segment: cold start]

    style Sig3 stroke:#1971c2,stroke-width:4px
    style Segment1 stroke:#2f9e44,stroke-width:3px
    style Segment2 stroke:#fab005,stroke-width:3px
    style Segment3 stroke:#868e96,stroke-width:2px

Denna inramning skiljer omedelbart ditt system från den läskiga "du tittade på denna gång, nu ska vi visa det för dig för evigt" beteende användare har kommit att förvänta sig. Detta är närmare hur människor faktiskt beter sig än statiska "profiler" någonsin varit.

Vad som egentligen är viktigt

Öppenhet innebär att vara specifik om vad åtgärder påverkar segmentering – och hur länge. En enkel tabell gör underverk här:

på åtgärd på signalstyrka på varaktighet på anteckningar på |--------|----------------|----------|-------| Enkla klick/vy på grund av svaghet minuter–timmar på grund av nyfikenhet, inte åtagande Mångfaldiga vyer över tiden och medelhöga dagar och växande intresse Explicit "Jag är intresserad" på Spara/bokmärke på Starka veckor+ på Uppsåtlig signal "Orelevant" / Göm dig undertryck på lång sikt respektera signalen Ingen förstärkning på grund av förfall på grund av att räntorna minskar på ett naturligt sätt

Enbart denna tabell omvandlar användarupplevelsen från "mysteriös algoritm" till "rättvist system som jag kan påverka".

Differentiatorn för förfall

Detta är den enskilt största skillnaden mellan segmentering och profilering.

Här är där noll-PII segmentering lyser: intressen bleknar om inte förstärkta.

"En sen natts bläddring kommer inte att följa dig på veckor. Om du inte fortsätter med något, vi antar att du har gått vidare."

Traditionella spårningssystem bygger permanenta profiler. Varje åtgärd ackumuleras för alltid, vilket skapar en alltmer förvrängd bild av vem du är.

Ett sönderfallsbaserat system är i grunden annorlunda:

  • Den senaste tidens verksamhet betyder mer än gammal verksamhet
  • Engångs nyfikenhet blir inte en del av din identitet.
  • Systemet anpassar sig naturligt när dina intressen förändras

Du behöver inte förklara den exponentiella förfall funktion eller halveringstid beräkningar. Användare behöver trygghet, inte matematik.

Användarbyrå: Visa dem deras signatur

Här är vad radikalt skiljer detta tillvägagångssätt: kunder kan se och justera sina egna intressesignaturer.

Tänk dig ett enkelt gränssnitt som visar:

Your Current Interests (this session)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌱 Sustainable Products     ████████░░ 80%
🧘 Yoga & Wellness          ███████░░░ 70%
📚 Minimalism              █████░░░░░ 50%
🏃 Athletic Gear           ████░░░░░░ 40%
🌿 Organic Foods           ███░░░░░░░ 30%

[Remove] [Adjust] [Add Interest]

These fade over time unless you keep engaging.
Last updated: 2 minutes ago

Denna nivå av öppenhet ger användarna följande:

  • Synlighet"Det är därför jag ser de här rekommendationerna."
  • Kontroll: "Jag är faktiskt inte intresserad av sportutrustning längre" [Ta bort]
  • Förtroende: "Systemet visar mig vad det vet och låter mig korrigera det"
  • Byrån: "Jag kan forma min upplevelse utan att skapa ett konto"

Jämför detta med traditionella system där du har Ingen aning vilken profil de har byggt om dig, Inte en chans. inspektera den, och ingen kontroll för att justera den.

Kontroller som bygger upp tillit

Även med minimal implementering, kan du erbjuda kapacitet som nästan inga e-handelssystem ger:

Grundläggande kontroller:

  • "Göm denna post" → Omedelbar dämpning + negativ signal till det segmentet
  • "Ej relevant" → Explicit negativ återkoppling som justerar segmentstyrka
  • "Visa mig varför" → Visar vilket intresse som utlöste denna rekommendation

Avancerade kontroller (för senare):

  • Explicit intresse taggning: "Jag handlar efter en gåva" (tillfälligt läge som inte påverkar din signatur)
  • Segmentstyrka visualisering: Se sönderfallskurvan i realtid
  • Prisminskningspreferenser: "Kom bara ihåg mina intressen för dagar/veckor/session"
  • Exportera din signatur: Ladda ner din nuvarande intressevektor som JSON

Den viktigaste insikten: Detta är inte bara funktioner – de är Tillitssignaler. De kommunicerar: "Detta system svarar på dig. Du inte utsättas för det."

Sekretess genom öppenhet

Traditionella system håller algoritmer ogenomskinliga för att undvika att avslöja omfattningen av datainsamling, beteendeinferens och hur denna information är monetariserad (målsättning, nudges, tilldelning).

Vi kan vara radikalt transparenta eftersom det finns inget invasivt att dölja:

  • Inga personuppgifter lagrade (kan inte läcka det du inte har)
  • Ingen spårning mellan platser (endast sessionsscoped)
  • Inga permanenta profiler (avböjning efter konstruktion)
  • Ingen koppling av identitet (semantiska intressen, inte identitet)
  • Ingen dataförsäljning (inget att sälja)
  • Ingen målinriktning för annonsörer (inga profiler till mål)

När användarna inspekterar sin intressesignatur ser de rena semantiska begrepp: "sustainable products • yoga • minimalism" snarare än demografiska slutsatser eller beteendeprognoser.

Denna öppenhet är inte bara etisk. Det är en konkurrensfördel. Eftersom du kan säga vad konkurrenter inte kan:

"Här är exakt hur våra rekommendationer fungerar. Inspektera det. Kontrollera det. Lita på det."

Varför öppenhet låser upp bättre funktioner

När du kan förklara din algoritm öppet, kan du bygga funktioner som målinriktat system kan inte:

Funktioner Öppenhet möjliggör

1. Realtidsränta Dashboard

  • Visa användares nuvarande signatur
  • Uppdatera det live när de bläddrar
  • Kan inte göra detta om din algoritm förlitar sig på läskig spårning

2. Explicit kontroll

  • "Minska räntan med 50 %"
  • "Jag handlar för en gåva" (tillfälligt sammanhang)
  • Kan inte erbjuda detta om du är profilering för annonsörer

3. Rekommendation Förklaringar

  • "Du ser det här för att du tittade på X"
  • "Detta kom från ditt "hållbara levande" intresse"
  • Kan inte förklara om den verkliga orsaken är "reklam betalar extra"

4. Algoritmisk revision

  • Användare kan verifiera att systemet är rättvist
  • Ingen dold diskriminering eller partiskhet
  • Kan inte tillåta inspektion om du gör demografisk målinriktning

5. Dataportabilitet

  • Exportera din intressesignatur som JSON
  • Importera den i en ny session
  • Kan inte erbjuda detta om du spårar identitet över webbplatser

Egenskaper Opacitet kräver

Lägg märke till vad Big Tech Kan inte bygga utan att erkänna sin praxis

  • "Se varför du ser denna annons" (den ärliga svaret är ofta microtargeting)
  • "Justera din profil" (svårt om profilen är byggd av ogenomskinlig slutledning)
  • "Verifiera vår algoritm är rättvis" (svår att granska om optimeringsmålet är engagemang)
  • "Exportera dina data" (okomfortabelt när en långlivad dossier finns)

De är utlåst Att bygga upp förtroende, eftersom öppenhet skulle avslöja övervakningen.

När segmentering tydligt förklaras, kan du lager funktioner som sammansatta förtroende:

  • Ramificering blir "hjälp till att trimma dina segment" (inte manipulering)
  • Omröstning/feedback blir "justerad segmentstyrka" (explicit kontroll)
  • Förklaringar bli "detta kom från segment X" (spårbart resonemang)
  • Förfall blir synlig (inte mystisk)
  • Förtroende föreningar över tid

Du bygger inte funktioner i isolering. sammanhängande system där varje del förstärker den mentala modellen användare redan har – och kan verifiera.

Teknisk förhandsgranskning

Del 2 omfattar det fullständiga genomförandet. Här är arkitekturen med en blick:

Two-Tier-profiler

flowchart LR
    Session[Session Profile<br/>in-memory only] -->|high intent| Persistent[Persistent Profile<br/>database]
    Session -->|expires| Gone[Lost forever]
    
    style Session stroke:#1971c2,stroke-width:3px
    style Persistent stroke:#2f9e44,stroke-width:3px
    style Gone stroke:#868e96,stroke-width:2px
  • Sessionsprofiler: Endast In-minne. Samla signaler under ett besök. Aldrig envisas med databasen.
  • Persistenta profiler: Bara skapad när användare visar hög intention (cart lägger till, inköp). Fortfarande noll PII-bara beteendemönster nyckel i en ogenomskinlig hash.

Fuzzy segment (inte binära Buckets)

Segment är inte "in eller ut". luddiga medlemskap med poäng (0-1):

Profil på Tech Enthusiast på Bargain Hunter på Cart övergivener |---------|-----------------|----------------|----------------| Obligatoriskt: 0.85 Obligatoriskt: 0.10 Obligatoriskt: 0.10 Obligatoriskt: 0.20 Obligatoriskt: 0.10 Obligatoriskt: 0.10 Obligatoriskt: 0.10 Obligatoriskt: 0.10 Obligatoriskt: 0.20 Obligatoriskt: 0.10 Obligatoriskt: 0.10 Obligatoriskt: 0.10 Obligatoriskt: 0.10 Obligatoriskt: 0.10 Obligatoriskt: 0.10 Obligatoriskt: 0.10 Ob. Obligatoriskt: 0.30 0.75 0.60 Obligatoriskt: 0.30 Obligatoriskt: 0.75 Obligatoriskt: 0.60 Obligatoriskt: 0.30 Obligatoriskt: 0.75 Obligatoriskt: 0.60 Obligatoriskt: 0.30 Obligatoriskt: 0.75 Obligatoriskt: 0.60 Obligatoriskt: 0.60 Obligatoriskt: 0.30 0.95 0.05 0.00 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.00 0.00 0.00 0.00 0.00 0.00 0.000 0.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.

Och varje poäng är Förklarande—Användarna kan se exakt varför de är i ett segment.

Signalminskning

Räntor bleknar om de inte förstärks:

Day 0: View product → Signal: 1.0
Day 7: No activity → Signal: 0.5  
Day 14: No activity → Signal: 0.25
Day 21: → Effectively gone

Att en natts bläddring inte definierar dig för alltid.

Vad händer härnäst?

Häfte 1.1: Generera syntetiska provdata lokalt (Ollama + ComfyUI)

Häfte 2: Sessionsprofiler, signaler och segmentdefinitioner – det fullständiga genomförandet

Häfte 3 (kommer): Utkorg mönster, jobb kö, och transparens UI


När personaliseringen byggs från process istället för identitet, upphör integriteten att vara en begränsning – den blir en egendom i systemet.

logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.