LinkedIn Engineering Engineering
-
- Acasa
- Blog
- Date
- Sursa deschisa
- Incredere
- Infrastructura
- Cautare … Stergeti introducerea cautarii
Qi He
Qi He
- Vezi toate postarile
- Vizualizati profilul LinkedIn
6 octombrie 2016
Autori: Qi He, Bee-Chung Chen, Deepak Agarwal
O versiune mai scurta a acestui post a aparut pentru prima data pe Pulse, principala noastra platforma de publicare de pe LinkedIn. In aceasta versiune, ne vom adanci in detaliile tehnice din spatele constructiei graficului nostru de cunostinte.
La LinkedIn, folosim pe scara larga tehnologia de invatare automata pentru a ne optimiza produsele: de exemplu, clasarea rezultatelor cautarii, reclame si actualizari in fluxul de stiri sau recomandarea membrilor, locuri de munca, articole si oportunitati de invatare membrilor. O componenta importanta a acestei stive tehnologice este un grafic de cunostinte care furnizeaza semnale de intrare pentru modelele de invatare automata si conducte de informatii de date pentru a alimenta produsele LinkedIn. Aceasta postare ofera o prezentare generala a modului in care construim acest grafic de cunostinte.
Graficul de cunostinte LinkedIn
Graficul de cunostinte al LinkedIn este o baza de cunostinte extinsa bazata pe „entitati” de pe LinkedIn, cum ar fi membrii, locurile de munca, titlurile, abilitatile, companiile, locatiile geografice, scolile etc. Aceste entitati si relatiile dintre ele formeaza ontologia lumii profesionale si sunt utilizate de LinkedIn pentru a-si imbunatati sistemele de recomandare, cautarea, generarea de bani si produsele de consum, precum si analiza afacerilor si a consumatorilor.
Crearea unei baze de cunostinte mari este o mare provocare. Site-uri web precum Wikipedia si Freebase se bazeaza in principal pe contributiile directe ale voluntarilor umani. Alte lucrari conexe, cum ar fi Google Knowledge Vault si Microsoft Satori, se concentreaza pe extragerea automata a faptelor de pe internet pentru construirea bazelor de cunostinte. Spre deosebire de aceste eforturi, obtinem graficul de cunostinte al LinkedIn in primul rand dintr-o cantitate mare de continut generat de utilizatori de la membri, recrutori, agenti de publicitate si administratori de companii si il completam cu date extrase de pe internet, care sunt zgomotoase si pot avea duplicate. Graficul de cunostinte trebuie sa se extinda pe masura ce noii membri se inregistreaza, sunt postate noi locuri de munca, noi companii, competente si titluri apar in profilurile membrilor si in descrierile posturilor etc.
Pentru a rezolva provocarile cu care ne confruntam atunci cand construim graficul de cunostinte LinkedIn, aplicam tehnici de invatare automata, care este in esenta un proces de standardizare a datelor privind continutul generat de utilizatori si surse de date externe, in care invatarea automata este aplicata constructiei taxonomiei entitatii, relatiei entitatii inferenta, reprezentare a datelor pentru consumatorii de date din aval, extragere de informatii din grafic si achizitie interactiva de date de la utilizatori pentru validarea inferentei noastre si colectarea datelor de instruire. Graficul de cunostinte al LinkedIn este un grafic dinamic. In grafic se adauga entitati noi si se formeaza continuu noi relatii. Relatiile existente se pot schimba, de asemenea. De exemplu, maparea de la un membru la titlul sau actual se modifica atunci cand are un nou loc de munca.
Construirea taxonomiei entitatii
Pentru LinkedIn, o taxonomie a entitatii consta din identitatea unei entitati (de exemplu, identificatorul acesteia, definitia, numele canonic si sinonimele in diferite limbi etc.) si atributele unei entitati. Entitatile sunt create in doua moduri:
-
Entitatile organice sunt generate de utilizatori, unde atributele informationale sunt produse si intretinute de utilizatori. Exemple includ membri, locuri de munca premium, companii create de administratorii lor etc.
-
Entitatile create automat sunt generate de LinkedIn. Intrucat acoperirea membrilor unei entitati (numarul de membri care au aceasta entitate) este esentiala pentru valoarea pe care datele o pot conduce atat la generarea de bani, cat si la produsele de consum, ne concentram pe crearea de entitati noi pentru care sa putem asocia membrii. Extractand profiluri de membri pentru candidatii entitatii si utilizand surse de date externe si validari umane pentru a imbogati atributele candidatilor, am creat zeci de mii de abilitati, titluri, locatii geografice, companii, certificate etc., carora le putem asocia membrii.
Pana in prezent, exista 450 de membri, 190 de milioane de locuri de munca istorice, 9 milioane de companii, peste 200 de tari (in care peste 60 de persoane au date geolocationale granulare), competente de 35 000 de limbi in 19 limbi, scoli de 28 de kilometri, 1,5 000 de domenii de studiu, 600 de grade, 24 de titluri in 19 limbi si peste 500 de certificate, printre alte entitati.
Entitatile reprezinta nodurile din graficul de cunostinte LinkedIn. Trebuie sa curatam entitatile organice generate de utilizatori, care pot avea nume fara sens, atribute invalide sau incomplete, continut invechit sau niciun membru mapat la ele. Generam inductiv reguli pentru a identifica entitati organice inexacte sau problematice. Pentru entitatile create automat, procesul de generare include:
-
Generati candidati. Fiecare entitate are un nume canonic, care este o expresie engleza in majoritatea cazurilor. Candidatii la entitati sunt fraze obisnuite in profilurile de membri si descrierile posturilor bazate pe reguli intuitive.
-
Dezambiguati entitatile. O fraza poate avea semnificatii diferite in contexte diferite. Prin reprezentarea fiecarei fraze ca un vector al celor mai frecvente fraze co-aparute in profilurile membrilor si descrierile posturilor, am dezvoltat un algoritm de clustering pentru a grupa fraze. O fraza ambigua poate aparea in mai multe clustere si poate reprezenta entitati diferite.
-
De-duplicati entitatile. Mai multe fraze pot reprezenta aceeasi entitate daca sunt sinonime intre ele. Prin reprezentarea fiecarei fraze ca un vector de cuvinte (de exemplu, produs de un model word2vec instruit pe profilurile membrilor si descrierile posturilor), rulam un algoritm de grupare combinat cu validari manuale de la taxonomisti la entitati de-duplicat. Tehnici similare sunt, de asemenea, utilizate pentru a grupa entitati daca taxonomia are o structura ierarhica.
-
Traduceti entitati in alte limbi. Avand in vedere natura legii puterii acoperirii membrilor de catre entitati, expertii lingvistici de la LinkedIn traduc manual entitatile de top cu acoperiri ridicate ale membrilor in limbi internationale pentru a obtine o precizie ridicata, iar modelele de traducere automata bazate pe PSCFG sunt aplicate pentru a traduce automat entitati cu coada lunga pentru a realiza o rechemare ridicata.
Figura de mai jos afiseaza un exemplu de entitate de titlu „Inginer software” in taxonomia titlului. Taxonomia titlurilor are o structura ierarhica: titluri similare, cum ar fi „Programator” si „Dezvoltator web” sunt grupate in acelasi supertitlu de „Dezvoltator software”, iar supertitolele similare sunt grupate in aceeasi functie de „Inginerie”.
Entity attributes are categorized into two parts: relationships to other entities in a taxonomy, and characteristic features not in any taxonomy. For example, a company entity has attributes that refer to other entities, such as members, skills, companies, and industries with identifiers in the corresponding taxonomies; it also has attributes such as a logo, revenue, and URL that do not refer to any other entity in any taxonomy. The former represents edges in the LinkedIn knowledge graph, which will be discussed in the next section. The latter involves feature extraction from text, data ingestion from search engine, data integration from external sources, and crowdsourcing-based methods, etc.
Toate atributele entitatii au scoruri de incredere, fie calculate de un model de invatare automata, fie atribuite la 1,0 daca atributele sunt verificate de om. Scorurile de incredere prezise de masini sunt calibrate folosind un set de validare separat, astfel incat aplicatiile din aval pot echilibra cu usurinta compromisul intre acuratete si acoperire interpretandu-l ca probabilitate.
Relatia de deducere a entitatii
Exista multe relatii valoroase intre entitati din ecosistemul LinkedIn. Pentru a numi cateva, asocierile de la membri la alte entitati (de exemplu, abilitatile pe care le are un membru) sunt cruciale pentru directionarea anunturilor, cautarea persoanelor, cautarea recrutorilor, feedul si analiza afacerilor si a consumatorilor; maparile de la locuri de munca la alte entitati (de exemplu, abilitatile pe care le necesita un loc de munca) conduc recomandari si cautare de locuri de munca; si similitudinea intre entitati sunt caracteristici importante in modelele de relevanta.
Unele relatii entitare sunt generate de membri. De exemplu, un membru isi selecteaza direct compania, iar un administrator de companie atribuie o industrie companiei, ambele din serviciile de tip tip LinkedIn. Aceste relatii de entitati generate de membri le numim „explicite”. Unele relatii entitare sunt prezise de LinkedIn. De exemplu, atunci cand un membru introduce „linkedin_” ca nume de companie in profil, prezicem ca adevaratul sau identificator de companie este asociat cu „LinkedIn”. Aceste relatii de entitati prevazute de LinkedIn le numim „deduse”. Cu toate acestea, nu toate relatiile explicite sunt demne de incredere; o problema notabila este „greseala unui membru”, unde membrii se mapeaza la o entitate incorecta. In figura de mai jos, o mica firma de design numita „uber”, cu 1-10 angajati, are 96 de membri asociati,
Am dezvoltat un cadru de procesare a continutului aproape in timp real pentru a deduce relatiile entitatii. In total, in graficul de cunostinte LinkedIn coexista trilioane de relatii generate de membri si deduse de LinkedIn. Figura de mai jos prezinta un exemplu de deducere a abilitatilor pentru membri. Igor, vicepresedinte al datelor la LinkedIn, are un set de abilitati explicite pe care le-a introdus el insusi, cum ar fi „Sisteme distribuite”, „Hadoop” etc. Un model de invatare automata bazat pe caracteristici de text si alte caracteristici ale metadatelor entitatii deduce alte abilitati, cum ar fi „Management de produs”, „Management”, „Consultanta” etc. pentru el.
Instruim un clasificator binar pentru fiecare tip de relatie de entitate: o pereche de entitati apartin unei relatii de entitati date intr-un mod binar (de exemplu, apartin sau nu) pe baza unui set de caracteristici. Colectarea datelor de formare de inalta calitate pentru aceasta sarcina supravegheata este o provocare. Folosim relatiile selectate de membri din serviciul nostru tipic de cap ca exemple pozitive de formare. Prin adaugarea aleatorie a zgomotului ca exemple negative de antrenament, instruim modele de predictie per entitate. Aceasta metoda functioneaza bine pentru entitatile populare. Pentru a instrui un model comun care acopera entitati in coada lunga a distributiei si pentru a atenua erorile de selectie a membrilor, folosim crowdsourcing-ul pentru a genera date etichetate suplimentare.
Relatiile deduse sunt, de asemenea, recomandate membrilor proactiv pentru a-si colecta feedback-ul („acceptati”, „refuzati” sau „ignorati”). Cele acceptate devin automat relatii explicite. Toate tipurile de feedback ale membrilor sunt colectate ca date de instruire noi, care pot consolida urmatoarea iteratie a clasificatorilor.
Reprezentarea datelor
Taxonomiile entitatii si relatiile entitatii alcatuiesc colectiv versiunea standardizata a datelor LinkedIn intr-o structura grafica. Echipate cu acest lucru, toate produsele din aval pot vorbi aceeasi limba la nivel de date. Echipele de aplicatii obtin graficul de cunostinte brute printr-un set de API-uri care genereaza identificatorii entitatii luand fie text, fie alti identificatori de entitate ca intrare. Diverse rezultate ale clasificatorului sunt reprezentate in diferite formate structurate si sunt difuzate prin biblioteci Java, API-uri REST, evenimente de flux Kafka (un sistem de mesagerie distribuita cu randament ridicat) si fisiere HDFS in mod constant cu controlul versiunii de date. Aceste mecanisme de livrare a datelor din graficul de cunostinte brute sunt utile pentru afisarea, indexarea si filtrarea entitatilor in produse.
De asemenea, incorporam graficul de cunostinte intr-un spatiu latent (fundalul acestei cercetari poate fi gasit aici). Ca rezultat, vectorul latent al unei entitati cuprinde semantica sa in taxonomii de entitati multiple si relatii de entitati multiple (clasificatori) in mod compact. Dupa incorporarea tuturor abilitatilor si titlurilor in acelasi spatiu latent de inalta dimensiune folosind tehnici de invatare profunda, figura de mai jos vizualizeaza abilitati precum „ActionScript”, „Scripturi HTML” si „PHP” in imediata apropiere a titlului „Dezvoltator web” dupa reducerea dimensionalitatii. Dupa cum se poate observa, proximitatile semantice dintre entitati din graficul de cunoastere original sunt inca pastrate dupa incorporare.
In acest exemplu, modelul are un singur obiectiv, care este de a prezice vectorul latent al titlului unui membru bazat pe operatii aritmetice simple pe vectorii latenti ai abilitatii membrului. Este deosebit de util sa se deduca relatia entitatii de la membru la titlu. Prin optimizarea modelului pentru mai multe obiective simultan, putem invata apoi reprezentari latente mai generic. Reprezentarea entitatilor eterogene ca vectori in acelasi spatiu latent ofera o modalitate concisa de utilizare a graficului de cunostinte ca sursa de date din care putem extrage diverse tipuri de caracteristici pentru a alimenta modele de relevanta. Acest lucru este deosebit de util pentru modelele de relevanta, deoarece reduce semnificativ activitatea de inginerie a caracteristicilor pe graficul de cunostinte.
Extragerea de statistici din grafic
Cunostinte suplimentare pot fi deduse pe langa graficul de cunostinte standardizat, generand informatii pentru analiza afacerilor si a consumatorilor. De exemplu, prin efectuarea OLAP pentru a agrega selectiv date grafice din diferite puncte de vedere, putem genera informatii in timp real, cum ar fi numarul de membri care au o abilitate data intr-o anumita locatie (aprovizionare), numarul angajarilor de locuri de munca care necesita o calificare data in aceeasi locatie (cerere) si, in cele din urma, diferenta de calificare sofisticata dupa luarea in considerare atat a cererii, cat si a ofertei. De asemenea, putem constrange analiza datelor intr-un anumit interval de timp pentru a obtine informatii retrospective. Figura de mai jos enumera primele zece cele mai solicitate competente usoare care pot ajuta persoanele aflate in cautarea unui loc de munca sa se deosebeasca de ceilalti candidati pe baza analizelor de date din actualizarile profilului membrilor, intre iunie 2014 si iunie 2015.
Statisticile ii ajuta pe lideri si vanzari sa ia decizii de afaceri si sa sporeasca implicarea membrilor cu LinkedIn. De exemplu, informatiile de mai sus incurajeaza membrii sa adauge aceste abilitati usoare la profilurile lor sau sa le invete in cursurile online LinkedIn.
Descoperirea datelor statistice dintr-un grafic de cunostinte standardizat este un proces de extragere a datelor bazat pe experienta. Poate dezvalui relatii nediscernute intre entitati, ceea ce reprezinta un alt mod de a completa graficul de cunostinte LinkedIn. Asa cum se arata in figura de mai jos, exemplul de perspectiva de mai sus defineste un nou tip de relatie de entitate de la membru la abilitati („abilitati pe care poate doriti sa le invatati).
Concluzie
Construirea graficului de cunostinte LinkedIn include constructia taxonomiei nodului (entitatii), inferenta marginii (relatia entitatii) si reprezentarea graficului. Agregarile din partea de sus a graficului ofera informatii suplimentare, dintre care unele pot contribui inapoi la completarea graficului. Aceasta postare este doar inceputul impartasirii experientelor noastre si exista multe altele pe care dorim sa le discutam in viitor, cum ar fi aplicatiile si perspectivele graficului de cunostinte, tehnici avansate de invatare automata in clasificarea si reprezentarea entitatilor si infrastructura backend.
Multumiri
Multumesc lui Hong Tam pentru ca a furnizat cazul de studiu „uber” in relatia de entitate dedusa, Uri Merhav pentru ca a furnizat cazul de studiu „Dezvoltator web” in reprezentarea datelor, Link Gan pentru ca a oferit „Top 10 Most In-Demand Soft Skills” extragerea de informatii si intreaga echipa LinkedIn de standardizare a datelor pentru construirea bazelor acestei lucrari incredibile.
Subiecte
- invatare automata,
- stiinta datelor,
- grafic de cunostinte
-
Poveste asemanatoare
Crearea #DataScienceHappiness
-
Poveste asemanatoare
Scalarea productivitatii invatarii automate la LinkedIn
- Inapoi sus
- LinkedIn.com
- Blog
- Date
- Sursa deschisa
- Incredere
- Infrastructura
-
LinkedIn Corporation © 2021
- Despre
- Politica privind cookie-urile
- Politica de Confidentialitate
- Acordul Utilizatorului
- Accesibilitate
-
- Stare de nervozitate
- YouTube
- RSS
pornostar roberta gemma francesca di caprio porno
roberta missoni casting francesca di caprio pornostar
video porno festini francesca di caprio xxx
salieri.com francesca dicaprio porn
italian girl fuck francesca dicaprio porno
gran figa italiana francesca nencetti
doppia anale di malena francesca nencetti porn
porno smeraldi francesca nencetti porno
video bergamo sex francesca nencetti pornostar
amateurs xxx francesca nencetti video
porno mario salieri francesco malcom xxx
roccosiffredi xxx freddy gong
malena e rocco porn free film porno streaming
sporcaccioni alla riscossa free hd porn streaming
la signora ha fatto il pieno centoxcento free italian porn
milena mastromarino anal free italian porn movies
bergamosex free italian porn video
alex magni con trans free italian porn videos
max felicitad free italian xxx
italian porn new free italiano porn








