För några dagar sedan kom nyheten om det Twitter släppte källkoden för uppsättningen "Rekommendationsalgoritm", som inkluderar tjänster och drivrutiner som används för att skapa ett rekommenderat meddelandeflöde som visas för användaren i starttidslinjen.
Förutom att tillhandahålla transparens och tillåta oberoende granskning av de algoritmer som används, Twitter har uttryckt sin vilja att acceptera pull-förfrågningar från communityn med förändringar som förbättrar algoritmer som efter granskning kan överföras till Twitters fungerande kodbas.
På Twitter 2.0 anser vi att vi har ett ansvar, som ett offentligt torg på Internet, att göra vår plattform transparent. Så idag tar vi det första steget i en ny era av transparens och öppnar upp mycket av vår källkod för det globala samhället.
Om den släppta koden, det nämns att skapandet av ett rekommendationsflöde är uppdelat i tre steg huvud:
- Extrahera de bästa tweetarna från olika källor (kandidatförsörjning). I detta skede används följande som källor: sökindexindexeringssystemet, som täcker meddelanden från personer som har ett abonnemang (In-Network); ett cr-mixer-lager för att extrahera meddelanden från olika hjälptjänster som täcker meddelanden från personer som inte är prenumererade (utanför nätverket); UTEG-komponenten (user-tweet-entity-graph) för att extrahera meddelanden baserat på den aktuella användarinteraktionsgrafen; Rekommendationsspårningstjänst (FRS) för att generera rekommendationer baserade på aktiviteten hos spårade användare. I flödet kommer ungefär hälften av inläggen från personer som har en prenumeration.
- Klassificering av utvalda tweets med hjälp av en maskininlärningsmodell. Två rankningssystem används: en lätt rankningsmodell som använder ett sökindex och ett tungt rankande neuralt nätverk för att välja ut de mest relevanta kandidaterna.
- Tillämpning av filter och heuristik för att kassera meddelanden blockerad, obscen eller redan sett. Hemmixerkomponenten används för att bilda fodret och siktfiltersystemet används för att filtrera. Dessutom öppnades det gamla timelineranker-systemet, som användes för att hämta tweets från sökindexet.
Grunden för Twitter-rekommendationer är en uppsättning kärnmodeller och funktioner som extraherar latent information från tweet-, användar- och engagemangsdata. Dessa modeller syftar till att svara på viktiga frågor om Twitter-nätverket, som "Vad är sannolikheten att du kommer att interagera med en annan användare i framtiden?" eller "Vilka är gemenskaperna på Twitter och vilka är de populära tweetarna inom dem?" Genom att svara korrekt på dessa frågor kan Twitter erbjuda mer relevanta rekommendationer.
Förutom det, koden för hjälpkomponenterna är också markerad som också är öppen:
- simclusters-ann: Används för att definiera gemenskaper med liknande intressen.
- TwHIN: detta har funktionen att skapa kunskapsdiagram om användare och tweets (prenumeranter, tweets valda av användaren, klick på annonser).
- förtroende-och-säkerhetsmodeller: modeller för att identifiera olämpligt, obscent och stötande innehåll.
- riktig graf: är en modell för att förutsäga interaktioner mellan olika användare.
- tvåpcred : en algoritm för att beräkna en användares rykte baserat på länkarna till deras inlägg (Page-Rank).
recos-injektor: är en händelseflödeskontroller som genererar indata för GraphJet-tjänster. - graf-funktionstjänst: Graffunktioner för att uppskatta interaktionen mellan två användare, till exempel hur mycket användare "A" uppskattar användare "B":s tweets.
- fartyg: är en högpresterande server för bearbetning av maskininlärningsmodeller (skriven i Rust).
- produktblandare: flödesgenerator med innehåll från olika källor.
- twml: är ett gammalt ramverk för maskininlärning (gaffel av TensorFlow v1).
Det är värt att nämna vad källan är öppen under AGPLv3-licensen. Implementeringen använde programmeringsspråken Scala (53,8%), Java (29,7%), Starlark (6,3%), Python (4,7%), C++ (2,4%) och Rust (1,5%).
Koden förknippad med maskininlärningsmodellerna som används på Twitter publiceras i ett separat arkiv (modellerna i sig publiceras inte av säkerhets- och integritetsskäl). Komponenterna för att generera reklamrekommendationer förblir också outgivna.
Om du är det intresserad av att kunna veta lite mer om det, Du kan kontrollera detaljerna i följande länk.