Apprendimento automatico. In che modo l'apprendimento automatico aiuta le banche e i sistemi di pagamento Servizi di apprendimento automatico

Il servizio Azure Machine Learning è attualmente in anteprima pubblica disponibile per chiunque abbia un account Azure (o almeno un accesso di prova). Se ti stai chiedendo perché sono sempre stato così entusiasta di questa tecnologia, dai un'occhiata al mio post sul blog di un mese fa o continua a leggere per questo post in cui tratterò tutto.

In breve, per eseguire attività di analisi predittiva con Azure Machine Learning, è sufficiente seguire questi passaggi:

  1. Carica o importa online qualsiasi corrente o accumulata dati(ad es. i dati demografici del tuo cliente e la sua spesa totale)
  2. Costruisci e convalida modello(ad es. prevedere i costi in base ai dati demografici)
  3. Crea un servizio Web che utilizzi i tuoi modelli per prestazioni veloci predizioni in tempo reale (decidi quali offerte fornire a un nuovo cliente in base ai suoi dati demografici)

Servizio Azure ML (noto anche come Progetto Passavia) è rappresentato da due componenti concettuali: esperimenti e Servizi web e uno strumento di sviluppo chiamato ML Studio. Puoi invitare altre persone che hanno account Microsoft (Live ID), per la collaborazione nel tuo ambiente di lavoro ( spazi di lavoro) con ML Studio senza che loro debbano nemmeno pagare un abbonamento ad Azure per lavorare con te.

Esperimenti può essere rappresentato come configurazioni di flusso ( flusso di dati) cosa vorresti fare con le tue informazioni e i tuoi modelli. Come data scientist di Azure ML, puoi concentrarti sugli esperimenti e trascorrere tutto il tuo tempo in ML Studio semplicemente ricostruendo esperimenti, modificando parametri, algoritmi, criteri di convalida, apportando periodicamente modifiche ai dati e così via. ML Studio è un'applicazione Web e ha un aspetto simile al portale di gestione di Azure (metà 2014 al momento della stesura). L'interfaccia sembra pulita, carina e funziona bene non solo in IE, ma anche in Firefox e Chrome, anche se con alcune avvertenze, ma questa è solo la prima versione di anteprima.

ML Studio è il punto in cui inizi il tuo lavoro decidendo quali origini dati desideri utilizzare: set di dati che carichi o dati in tempo reale disponibili tramite il motore di ML Studio. lettore da una pagina Web, OData, SQL Azure, Microsoft Azure, Hive o BLOB di Azure. Quindi, potrebbe essere necessario crearne alcuni Trasformazioni di dati, come il raggruppamento, la ridenominazione delle colonne, l'unione, la deduplicazione o l'utile operazione di binning/discretizzazione. Inoltre, puoi utilizzare altre trasformazioni più interessanti, come i filtri per la risposta in ingresso finita e infinita ( Finito e Risposta in ingresso infinita) che vengono utilizzati nell'elaborazione del segnale. Possono anche essere applicati in modo più ampio a dati economici che possono essere visti come onde complesse (ad esempio, in particolare serie temporali). Fa parte del lavoro determinazione della stagionalità ed è spesso associato alla ricerca di frequenze simili a quelle musicali in queste stagionalità. Inoltre, se stai appena iniziando il tuo progetto e non sei sicuro di quale delle colonne di dati includere, i filtri di selezione automatica delle funzioni ( Selezione delle funzioni) può esserti utile presentandoti una buona selezione di correlazioni di misure. In pratica, tuttavia, nei passaggi successivi ti consigliamo di specificare manualmente la colonna impostata per la massima precisione.

Ora passiamo a ciò che stavamo aspettando: fare un vero Machine Learning - cosa significa Inizializzare (definire) un modello, Formazione ( Treno) modella alcuni dati, Verifica ( Valutare) la performance del modello e la sua validità e, se tutto ok, Punteggio ( Punto) modelli (effettuando previsioni sulla sua base). Azure ML offre molti algoritmi per Classificazioni compiti, tra cui multiclasse e Foreste decisionali a due classi, giungle decisionali(sviluppato da Microsoft Research), Regressione logistica, reti neurali, così come Perceptron delle medie a due classi, macchina dei punti di Bayes, alberi decisionali potenziati e Supporta le macchine vettoriali (SVM). Raggruppamento utilizza una variazione dell'approccio K-medie standard. Regressioni includere Lineare bayesiana, alberi decisionali potenziati, foreste decisionali, di certo Regressione lineare, Regressione della rete neurale, ordinale e Regressione di Poisson. E questo è solo nella versione 1.

Puoi usare utile Statistico funzioni nei loro esperimenti, compresi quelli elementari generali, ad esempio il calcolo delle deviazioni. Prova tu stesso, inizia semplicemente specificando l'attività Statistiche descrittive dei tuoi dati e Visualizza ( Visualizzazione) risultati (usa i punti di unione sulle attività). Goditi gli elementi boxplot nelle visualizzazioni risultanti - qualcosa che manca da tempo in tutti gli strumenti di Microsoft BI, persino in Excel...

Un ottimo esempio di come Azure ML porta l'esplorazione esterna agli esperimenti è disponibile nella sezione delle attività. Analisi del testo. Compito Riconoscimento di entità nominative consentirà l'elaborazione del testo di input (chiamato storie ad es. indirizzi e-mail, descrizioni di situazioni digitate o tweet) ed estrarne termini denominati, classificarli automaticamente come Persone, Luoghi o Organizzazioni. C'è anche il supporto per il progetto Vowpal Wabbit, che è supportato da Yahoo e Microsoft Research. Puoi usarlo per ottenere hash per entità su richiesta. Non vedo l'ora di avere più strumenti e funzionalità in quest'area in futuro, poiché Microsoft ha ovviamente un'enorme quantità di conoscenza archiviata all'interno di Bing.

Supporto per il linguaggio Deep R

E per di più, puoi usare Azure ML all'interno. Secondo il mio conteggio, oggi Azure ML contiene circa 410 pacchetti preinstallati oltre a R 3.1.0 (sorprendentemente, ultima versione). I pacchetti includono ggplot2(Sì!), plyr e dplyr, auto, set di dati, HMisc, MASS e tutti gli altri pacchetti di data mining più comunemente usati. Piace rpart, nnet, sopravvivenza, avvio eccetera.

Se vuoi trovare un elenco di pacchetti che sono stati inclusi in Azure ML, crea un piccolo esperimento come quello mostrato qui, esegui del codice R e salva il CSV risultante sul tuo computer. La colonna 1 mostrerà tutti i pacchetti inclusi.

E se il tuo pacchetto R preferito (ad esempio, ROCR o nleqslv) non è elencato? In realtà, la documentazione può confonderti. Dice che "attualmente" non è possibile installare i tuoi pacchetti, tuttavia, la documentazione descrive quindi una soluzione alternativa che ti aiuta a includere il tuo pacchetto utilizzando un file zip. Puoi trovare una descrizione di questo approccio in fondo a questo link, che mostra come fare domanda install.packages() durante l'utilizzo del collegamento al file passato all'attività Esegui script R.

La chiave per comprendere l'importanza di R come parte di Azure ML, a mio avviso, non è solo che la piattaforma fornisce l'accesso al linguaggio de facto delle statistiche e dell'analisi (lingua-franca), ma anche quanto sia veloce e indolore. durante il trattamento dei tuoi dati. Ciò è particolarmente evidente sullo sfondo del fatto che R stesso non è uno strumento così conveniente per manipolare i dati. Quindi, invece di usare rispettato RODBC(abilitato) all'interno dello script R, potresti prendere in considerazione l'utilizzo di Azure ML per tutte le tue attività di elaborazione dati pesanti (scusate, fan plyr) e passare i dati allo script R come set di dati Azure ML tabella dati, che diventa disponibile come frame di dati nativo di R. I dati appariranno magicamente all'interno del tuo script come un oggetto chiamato set di dati. Puoi aggiungere più origini dati.

Non ho ancora terminato i miei test delle prestazioni, ma qualsiasi cosa che possa in qualche modo migliorare le prestazioni di R su grandi set di dati è il benvenuto. Inoltre, queste funzionalità sembrano un ovvio vantaggio di un provider cloud, rispetto a una soluzione in scatola convenzionale. E posso immaginare che Microsoft utilizzi una serie di trucchi per migliorare le prestazioni quando i set di dati di Azure sono collegati a un servizio Azure ML, anche tenendo presente il limite di 10 GB attualmente.

Con o senza R, puoi avere un esperimento funzionante che puoi utilizzare come elemento costitutivo all'interno della tua applicazione basata sul Web. Immagina di aver appena creato un sistema di raccomandazioni. In termini di Azure ML, hai un esperimento che usa un'attività di punteggio. Si definisce quale delle porte di input deve essere utilizzata Pubblica input per il tuo servizio web e di conseguenza cosa dovrebbe essere considerato Pubblica output. Saranno rappresentati come piccoli punti elenco verdi e blu sullo schema dell'attività. Esegui nuovamente l'esperimento ancora una volta e utilizza Studio ML per pubblicarlo come Servizio Web di Azure Machine Learning. Ora puoi consumare i risultati tramite API REST di Azure ML come un semplice servizio web o OData dell'endpoint. Questa API offre Servizio di risposta alle richieste (RRS) per l'accesso sincrono con bassa latenza per eseguire previsioni ed esecuzione asincrona Servizio di esecuzione in batch (BES) per riqualificare il modello con, ad esempio, i tuoi nuovi dati futuri. Questa API offre un codice di esempio generato automaticamente che puoi semplicemente copiare e incollare per usarlo in un'applicazione Python, R o C# o in qualsiasi altro luogo, poiché è tutto basato su REST e JSON.

È disponibile una piccola pagina di test interessante che ti consentirà di inserire i valori richiesti per un nuovo servizio e fare una previsione di test.

Il servizio ha anche funzionalità aggiuntive destinate all'uso pratico, ad esempio impedendo a Microsoft di aggiornare automaticamente qualsiasi componente (attività, ecc.) del tuo esperimento, modificando ciò che potrebbe cambiare o addirittura interrompere il tuo lavoro. La decisione giusta, Microsoft è qualcosa che qualsiasi professionista IT che gestisce i sistemi Web non ama affrontare. Puoi testare gli aggiornamenti del servizio nella gestione temporanea e configurare la sicurezza tramite una chiave di accesso API.

Prezzo

Quanto costa tutto? Tenendo presente il prezzo della versione di anteprima, sembra molto interessante. Esistono due tipi di costi, calcolo orario ( all'ora di calcolo attivo) e pagamento per chiamate API servizio web ( per chiamata all'API del servizio Web), entrambi i tipi di costi sono proporzionali. La retribuzione oraria è inferiore durante l'utilizzo di ML Studio ($ 0,38/ora) e leggermente superiore nella produzione con ML API Service ($ 0,75/ora). Le chiamate API non contano durante l'esecuzione di ML Studio e costano $ 0,18 per 1000 previsioni durante l'uso in produzione. Semmai, questo è un modello di prezzo interessante ed estremamente semplice, a differenza di altri che Microsoft ha avuto. Sono molto interessato a sapere cosa pensano i miei clienti sviluppatori sul fatto che esiste una grande opportunità per rivendere in modo efficace Azure ML come parte della propria applicazione Web, con solo uno sforzo minimo di manutenzione, senza dover creare l'intero sistema da soli .

Da dove cominciare?

Da dove cominciare? Visita azure.microsoft.com , iscriviti e crea un'area di lavoro in Nuovo/Servizi dati/Apprendimento automatico. Quindi vai al pannello Pannello e fare clic sul collegamento Accedi a ML Studio. Dopo aver esaminato le attività che definiranno l'Esperimento, ti consiglierò di scegliere uno dei tanti esempi, crearne una copia ed eseguirlo. Se funziona, segui i passaggi precedenti per pubblicarlo come primo servizio web di previsione.

Naturalmente, assicurati di non perdere i nostri prossimi video e articoli su questo argomento: iscriviti al sito per ricevere una newsletter con maggiori informazioni. Se vuoi iniziare rapidamente, dai un'occhiata alla nostra formazione sul data mining, in particolare i moduli di data mining, poiché questi concetti lo sono in particolare casi, input e colonne di output sarà sicuramente utile quando si lavora con Azure ML.

Ti auguro di divertirti con l'apprendimento automatico!

Abbiamo a che fare quotidianamente con i compiti di contabilità e di elaborazione delle richieste dei clienti. Negli anni abbiamo accumulato un gran numero di soluzioni documentate e abbiamo pensato a come utilizzare questa quantità di conoscenza. Abbiamo cercato di costruire una base di conoscenza, utilizzare la ricerca integrata in Service Desk, ma tutte queste tecniche hanno richiesto molto impegno e risorse. Di conseguenza, i nostri dipendenti hanno utilizzato i motori di ricerca su Internet più spesso delle proprie soluzioni, cosa che, ovviamente, non potevamo lasciare così. E siamo venuti in soccorso di tecnologie che non esistevano 5-10 anni fa, ma ora sono ampiamente utilizzate. Riguarda il modo in cui utilizziamo l'apprendimento automatico per risolvere i problemi dei clienti. Abbiamo utilizzato algoritmi di apprendimento automatico nel problema di trovare incidenti simili che si sono già verificati in passato per applicare le loro soluzioni a nuovi incidenti.

Compito dell'operatore dell'help desk

Help desk (Service Desk) - un sistema per la registrazione e l'elaborazione delle richieste degli utenti che contengono descrizioni di guasti tecnici. Il compito dell'operatore dell'Help Desk è quello di elaborare queste chiamate: fornisce istruzioni per la risoluzione dei problemi o le risolve personalmente, tramite accesso remoto. Tuttavia, è necessario prima elaborare una ricetta per risolvere il problema. In questo caso, l'operatore può:

  • Usa la base di conoscenza.
  • Utilizza la ricerca integrata nel Service Desk.
  • Prendi una decisione da solo, in base alla tua esperienza.
  • Utilizza un motore di ricerca di rete (Google, Yandex, ecc.).

Perché è necessario l'apprendimento automatico

Quali sono i prodotti software più sviluppati che possiamo applicare:

  • Servizio reception sulla piattaforma 1C: Impresa. Esiste solo una modalità di ricerca manuale: per parole chiave o utilizzando la ricerca full-text. Esistono dizionari di sinonimi, la possibilità di sostituire le lettere nelle parole e persino l'uso di operatori logici. Tuttavia, questi meccanismi sono praticamente inutili con un tale volume di dati come quello che abbiamo: ci sono molti risultati che soddisfano la query, ma non esiste un ordinamento efficace per rilevanza. Esiste una base di conoscenza, che richiede ulteriori sforzi per essere supportata, e la ricerca in essa è complicata dall'inconveniente dell'interfaccia e dalla necessità di comprenderne la catalogazione.
  • JIRA da Atlasiano. Il Service desk occidentale più famoso è un sistema con una ricerca avanzata rispetto ai concorrenti. Esistono estensioni personalizzate che integrano la funzione di ranking della ricerca BM25 che Google ha utilizzato nel suo motore di ricerca fino al 2007. L'approccio BM25 si basa sulla valutazione dell'"importanza" delle parole negli hit in base alla loro frequenza di occorrenza. Più la parola corrispondente è rara, più influisce sull'ordinamento dei risultati. Ciò consente di migliorare leggermente la qualità della ricerca quando grande volume richieste, tuttavia, il sistema non è adeguato al trattamento della lingua russa e, in generale, il risultato è insoddisfacente.
  • Motori di ricerca su Internet. La ricerca stessa delle soluzioni richiede in media dai 5 ai 15 minuti, mentre la qualità delle risposte non è garantita, così come la loro disponibilità. Succede che una lunga discussione sul forum contenga diverse istruzioni lunghe, e nessuna di esse va bene, e ci voglia un'intera giornata per controllarle (alla fine può volerci molto tempo senza alcuna garanzia di risultati).
La principale difficoltà della ricerca in base al contenuto delle chiamate è che i sintomi di essenzialmente gli stessi malfunzionamenti sono descritti con parole diverse. Inoltre, le descrizioni spesso contengono gergo, errori grammaticali e forme di invio, come La maggior parte delle domande vengono ricevute tramite e-mail. I moderni sistemi di Help Desk soccombono a tali difficoltà.

Quale soluzione abbiamo trovato?

In parole povere, l'attività di ricerca suona così: per una nuova richiesta in arrivo, è necessario trovare le richieste più simili per significato e contenuto dall'archivio ed emettere le soluzioni loro assegnate. Sorge la domanda: come insegnare al sistema a comprendere il significato generale del ricorso? La risposta è l'analisi semantica del computer. Gli strumenti di machine learning consentono di costruire un modello semantico dell'archivio delle chiamate estraendo la semantica dalle descrizioni testuali singole parole e intere richieste. Questo ci permette di valutare numericamente la misura di prossimità tra le applicazioni e selezionare le corrispondenze più vicine.

La semantica ti permette di prendere in considerazione il significato di una parola a seconda del suo contesto. Ciò consente di comprendere i sinonimi, rimuovere l'ambiguità delle parole.

Tuttavia, prima di applicare l'apprendimento automatico, i testi dovrebbero essere pre-elaborati. Per fare ciò, abbiamo costruito una catena di algoritmi che ci permette di ottenere la base lessicale del contenuto di ogni chiamata.

L'elaborazione consiste nel ripulire il contenuto delle chiamate da parole e simboli non necessari e nel suddividere il contenuto in lessemi separati - token. Poiché i ricorsi si presentano sotto forma di e-mail, un'attività separata consiste nel ripulire i moduli di posta che differiscono da lettera a lettera. Per fare ciò, abbiamo sviluppato il nostro algoritmo di filtraggio. Dopo la sua applicazione, ci rimane il contenuto testuale della lettera senza parole introduttive, saluti e firme. Quindi, i segni di punteggiatura vengono rimossi dal testo e le date e i numeri vengono sostituiti con tag speciali. Questa tecnica di generalizzazione migliora la qualità dell'estrazione delle relazioni semantiche tra i token. Successivamente, le parole passano attraverso la lemmatizzazione, il processo di portare le parole a una forma normale, che migliora anche la qualità a causa della generalizzazione. Quindi vengono eliminate le parti del discorso con un basso carico semantico: preposizioni, interiezioni, particelle, ecc. Successivamente, tutti i token delle lettere vengono filtrati dai dizionari (il corpus nazionale della lingua russa). Per il filtraggio dei punti vengono utilizzati dizionari di termini informatici e slang.

Esempi di risultati dell'elaborazione:

Come strumento di apprendimento automatico, utilizziamo Vettore di paragrafo (word2vec)è una tecnologia per l'analisi semantica delle lingue naturali, che si basa su una rappresentazione vettoriale distribuita delle parole. Sviluppato da Mikolov et al in collaborazione con Google nel 2014. Il principio di funzionamento si basa sul presupposto che le parole che si trovano in contesti simili abbiano un significato simile. Ad esempio, le parole "Internet" e "connessione" si trovano spesso in contesti simili, ad esempio "Internet sul server 1C è scomparsa" o "La connessione sul server 1C è scomparsa". Il paragrafo Vector analizza i dati testuali delle frasi e conclude che le parole "internet" e "connessione" sono semanticamente vicine. L'adeguatezza di tali conclusioni è maggiore, più dati di testo verranno utilizzati dall'algoritmo.

Entrando nei dettagli:

Sulla base dei contenuti elaborati, per ogni ricorso vengono compilati "borse di parole". Il sacco di parole è una tabella che riflette la frequenza di occorrenza di ogni parola in ogni hit. Le righe sono i numeri del documento e le colonne sono i numeri delle parole. All'incrocio ci sono numeri che mostrano quante volte la parola ricorre nel documento.

Ecco un esempio:

  • scompaiono il server Internet 1C
  • Server di connessione persa 1C
  • server autunnale 1C

Ed ecco come appare la borsa delle parole:

Usando una finestra scorrevole, viene determinato il contesto di ogni parola in circolazione (i suoi vicini più vicini a sinistra ea destra) e viene compilato un campione di formazione. Sulla base di esso, una rete neurale artificiale impara a prevedere le parole in circolazione, a seconda del loro contesto. Le caratteristiche semantiche estratte dalle chiamate formano vettori multidimensionali. Nel corso dell'apprendimento, i vettori si dispiegano nello spazio in modo tale che la loro posizione rifletta le relazioni semantiche (quelli che hanno un significato vicino sono vicini). Quando la rete risolve in modo soddisfacente il problema di predizione, si può dire che ha estratto con successo il significato semantico delle affermazioni. Le rappresentazioni vettoriali consentono di calcolare l'angolo e la distanza tra di loro, il che aiuta a valutare numericamente la misura della loro vicinanza.

Come abbiamo eseguito il debug del prodotto

Poiché esiste un gran numero di opzioni per l'allenamento delle reti neurali artificiali, è sorto il compito di trovare i valori ottimali dei parametri di addestramento. Cioè, quelli in cui il modello determinerà in modo più accurato gli stessi problemi tecnici descritti con parole diverse. Poiché l'accuratezza dell'algoritmo è difficile da valutare automaticamente, abbiamo creato un'interfaccia di debug per la valutazione manuale della qualità e strumenti per l'analisi:

Per analizzare la qualità dell'apprendimento, abbiamo anche utilizzato la visualizzazione delle relazioni semantiche utilizzando T-SNE, un algoritmo di riduzione della dimensionalità (basato sull'apprendimento automatico). Consente di visualizzare vettori multidimensionali su un piano in modo tale che la distanza tra i punti di riferimento rifletta la loro vicinanza semantica. Gli esempi rappresenteranno 2000 hit.

Di seguito è riportato un esempio di buon addestramento del modello. Puoi vedere che alcuni degli inviti sono raggruppati in cluster che riflettono il loro tema generale:

La qualità del prossimo modello è molto inferiore al precedente. Il modello è poco allenato. La distribuzione uniforme indica che i dettagli delle relazioni semantiche sono stati appresi solo in termini generali, cosa che è stata già rivelata nella valutazione manuale della qualità:

Infine, una dimostrazione del programma di riqualificazione del modello. Sebbene vi sia una divisione in argomenti, il modello è di qualità molto bassa.

L'effetto dell'introduzione del machine learning

Grazie all'uso di tecnologie di apprendimento automatico e ai nostri algoritmi di pulizia del testo, abbiamo ottenuto:

  • Un'aggiunta al sistema informativo standard del settore, che consente di risparmiare notevolmente tempo nella ricerca di soluzioni per le attività quotidiane del service desk.
  • Ridotta dipendenza dal fattore umano. Il più rapidamente possibile, l'applicazione può essere risolta non solo da chi l'ha già risolta in precedenza, ma anche da chi non ha alcuna familiarità con il problema.
  • Il cliente riceve un servizio migliore, se prima la soluzione di un problema sconosciuto a un ingegnere richiedeva da 15 minuti, ora ci vogliono fino a 15 minuti se qualcuno ha già risolto questo problema prima.
  • Comprendere che è possibile migliorare la qualità del servizio espandendo e migliorando il database delle descrizioni dei problemi e delle soluzioni. Il nostro modello viene costantemente riqualificato man mano che nuovi dati diventano disponibili, il che significa che la sua qualità e il numero di soluzioni pronte sono in crescita.
  • I nostri dipendenti possono influenzare le proprietà del modello, partecipando costantemente alla valutazione della qualità della ricerca e delle soluzioni, che ci consente di ottimizzarlo su base continua.
  • Uno strumento che può essere reso più complesso ed evoluto per ottenere più valore dalle informazioni disponibili. Inoltre, prevediamo di coinvolgere altri outsourcer in partnership e modificare la soluzione per risolvere problemi simili per i nostri clienti.

Esempi di ricerca di chiamate simili (ortografia e punteggiatura degli autori conservati):

Chiamata in arrivo L'appello più simile dall'archivio % somiglianza
“Re: PC Diagnostics PC 12471 si riavvia dopo aver collegato un'unità flash. Controlla i registri. Diagnosticare, capire qual è il problema”. “Il PC si riavvia, quando l'unità flash USB è collegata, il PC viene riavviato. pk 37214 Verificare qual è il problema. PC in garanzia. 61.5
“Il server esterno non si avvia dopo lo spegnimento. BSOD" "Dopo aver riavviato il server, il server non carica i segnali acustici" 68.6
"La fotocamera non funziona" “Le telecamere non funzionano” 78.3
“RE:Le lettere di pipistrello non vengono inviate, la cartella è piena. Re: Posta non accettata Cartella overflow in THE Bat! cartella superiore a 2 GB 68.14
"Errore all'avvio di 1C - Impossibile ottenere un certificato del server delle licenze. Allego lo schermo. (computer 21363)” 1C CRM non si avvia, 1C non si avvia sui PC 2131 e 2386, seguente errore: Impossibile ottenere un certificato del server delle licenze. Impossibile trovare il server delle licenze nella modalità di ricerca automatica." 64.7

Inizialmente, la soluzione è stata progettata architettonicamente come segue:

La soluzione software è scritta completamente in Python 3. La libreria che implementa i metodi di machine learning è scritta parzialmente in c/c++, che permette di utilizzare versioni ottimizzate dei metodi che velocizzano circa 70 volte rispetto alle implementazioni Python pure. Al momento, l'architettura della soluzione si presenta così:

È stato inoltre sviluppato e integrato un sistema per l'analisi della qualità e l'ottimizzazione dei parametri dei modelli di allenamento. È stata inoltre sviluppata un'interfaccia di feedback con l'operatore, che gli consente di valutare la qualità della scelta di ogni soluzione.

Questa soluzione può essere applicata a un largo numero compiti relativi al testo, siano essi:

  • Ricerca semantica di documenti (per contenuto del documento o parole chiave).
  • Analisi del sentimento dei commenti (identificazione del vocabolario emotivamente colorato nei testi e valutazione emotiva delle opinioni in relazione agli oggetti a cui si fa riferimento nel testo).
  • Estrazione del sommario dei testi.
  • Suggerimenti per la costruzione (filtro collaborativo).

La soluzione è facilmente integrabile con i sistemi di gestione documentale, poiché per il suo funzionamento è necessario solo un database con testi.

Saremo lieti di presentare le tecnologie di apprendimento automatico ai colleghi nel campo IT e ai clienti di altri settori, contattaci se sei interessato al prodotto.

Direzioni per lo sviluppo del prodotto

La soluzione è in fase di alpha test ed è in fase di sviluppo attivo nelle seguenti aree:

  • Creazione di un servizio cloud
  • Arricchimento del modello basato su soluzioni di supporto tecnico di dominio pubblico e in collaborazione con altre società di outsourcing
  • Realizzazione di un'architettura distribuita della soluzione (i dati restano al cliente, mentre la creazione del modello e l'elaborazione delle richieste avviene sul nostro server)
  • Ampliamento del modello ad altre aree disciplinari (medicina, diritto, manutenzione delle apparecchiature, ecc.)

Oggi, l'interesse per i data scientist ha raggiunto il punto in cui solo la persona più umile non si chiamerebbe Data Scientist se almeno un paio di volte ha addestrato la regressione logistica o gli insiemi di alberi. L'analisi dei dati e l'apprendimento automatico in particolare non sono solo parole di fantasia. Questa è una vera magia che può trasformarsi il mondo e in Yandex puoi davvero sentirlo, incontrare persone che sono forti in questo, imparare e imparare a fare molte cose nuove.

Se sai già che i modelli di addestramento per la classificazione, la regressione, il clustering e il ranking sono un vantaggio misurabile per i servizi che utilizzano questi modelli e i loro utenti finali, che il modello non solo "predice l'obiettivo", ma ottimizza alcune metriche importanti per allineati con gli obiettivi aziendali, allora sarai sicuramente interessato a noi. Se non hai ancora dovuto partecipare alla costruzione di una connessione tra l'apprendimento automatico e le esigenze aziendali, ma ti piacerebbe molto, anche questo posto vacante merita la tua attenzione.

In Yandex.Taxi è stato creato un gruppo per implementare metodi di apprendimento automatico nel più grande servizio di taxi in Russia. Abbiamo bisogno di analisti che:

  • innamorato dell'analisi dei dati e conosce i principi e i metodi di base del machine learning (possono distinguere l'overfitting dall'underfitting, la logregressione dall'SVM, il boosting dal bagging, la precisione dall'accuratezza);
  • capire perché un analista ha bisogno di statistiche matematiche;
  • vogliono che il loro lavoro influisca sui milioni di viaggi che i nostri utenti fanno ogni settimana.

Requisiti obbligatori:

  • conoscenza della statistica matematica e della teoria della probabilità;
  • conoscenza dei più diffusi metodi di apprendimento supervisionato (modelli lineari, tree ensembles, kNN, naive bayes classifier) ​​e comprensione di quando è opportuno applicarli e come diagnosticarne il lavoro;
  • la conoscenza delle metriche di qualità spesso utilizzate nel machine learning, la comprensione delle differenze tra di esse, la capacità di interpretare i diversi valori delle metriche;
  • buon background tecnico: uso sicuro di Python e familiarità con le librerie per lavorare con i dati - numpy, scipy, matplotlib, pandas, sklearn, esperienza nell'uso di xgboost e votopal wabbit;
  • conoscenza in inglese a livello di lettura della letteratura tecnica.

Ben arrivato:

  • istruzione superiore matematica o tecnica;
  • esperienza nella risoluzione di problemi nel campo dell'analisi dei dati e del machine learning;
  • esperienza nell'applicazione della statistica matematica applicata, ad esempio, stima degli intervalli di confidenza degli indicatori target, significatività statistica dei risultati dei test A/B;
  • capire come valutare il potenziale impatto economico dell'implementazione di un modello di apprendimento automatico e come associare le metriche di qualità a questo effetto;
  • capire come valutare la qualità dei modelli offline (su dati storici) e online (in produzione);
  • familiarità con Linux;
  • familiarità con Map Reduce;
  • conoscenza degli algoritmi classici e delle strutture dati;
  • conoscenza di SQL;
  • capacità di leggere codice C++;
  • esperienza in una posizione simile.

C'era una volta, ti ho detto come ho seguito un corso di machine learning su Coursera. Il corso è tenuto da Andrew Ng, che spiega tutto in termini così semplici che anche lo studente più diligente capirà materiale piuttosto complesso. Da allora il tema del machine learning mi è diventato vicino, e periodicamente guardo progetti sia nel campo dei Big Data (leggi la colonna precedente) che nel campo del machine learning.

Oltre all'enorme numero di startup che utilizzano algoritmi di machine learning da qualche parte dentro di sé, sono già disponibili diversi servizi che offrono l'apprendimento automatico come servizio! Cioè, forniscono un'API che puoi utilizzare nei tuoi progetti, senza approfondire il modo in cui i dati vengono analizzati e previsti.

API di previsione di Google

Uno dei primissimi ad offrire Machine Leaning as a Service è stato Google! Già abbastanza per molto tempo chiunque può utilizzare l'API di Google Prediction (letteralmente "API per le previsioni"). Fino a una certa quantità di dati, puoi utilizzarla in modo assolutamente gratuito creando semplicemente un account sull'API di Google Prediction. Quali sono le previsioni? L'attività può essere diversa: determinare il valore futuro di un determinato parametro in base ai dati disponibili o determinare se un oggetto appartiene a uno dei tipi (ad esempio, la lingua del testo: russo, francese, inglese).

Dopo la registrazione, hai accesso a un'API RESTful a tutti gli effetti, sulla base della quale puoi creare, ad esempio, un sistema di suggerimenti, rilevare spam e attività sospette, analizzare il comportamento degli utenti e molto altro. Sono già comparsi interessanti progetti, costruiti sulla base di un uso intensivo delle API di Google Prediction, ad esempio Pondera Solutions, che utilizza il machine learning di Google per costruire un sistema antifrode.

Come esperimento, puoi utilizzare modelli di dati già pronti: identificatori di lingua per creare un sistema che determini in quale lingua è scritto il testo in entrata o identificatori di sentimento per determinare automaticamente il sentimento dei commenti lasciati dagli utenti. Penso che in futuro parleremo dell'API di Google Prediction in modo più dettagliato.

BigML

Oggi voglio toccare un altro progetto simile che ha attirato la mia attenzione relativamente di recente: BigML. In effetti, fornisce esattamente la stessa API Rest per il proprio motore ML, ma con un vantaggio importante per un principiante: la presenza di un'interfaccia abbastanza visiva. E l'ultimo fatto semplifica notevolmente il compito di iniziare quando è necessario capire cosa è cosa da zero.

Gli sviluppatori hanno fatto di tutto affinché una casalinga potesse gestire il sistema. Al momento della registrazione, hai a disposizione diversi esempi di dati di origine, incluso il set di dati Fisher's Irises spesso utilizzato nei libri di testo, considerato un classico per risolvere il problema di classificazione. Il set descrive 150 fiori di iris di tre diversi tipi, con una descrizione delle caratteristiche. Sulla base di questi dati è possibile costruire un sistema che determinerà se un fiore appartiene a una delle specie in base ai parametri inseriti.

Sperimentare

Tutte le azioni vengono eseguite in un pannello di amministrazione chiaro (non descriverò le sfumature, tutto sarà estremamente accessibile).

  1. Selezioniamo un file CSV che memorizza le righe che descrivono le caratteristiche dei diversi tipi di fiori come fonte di dati (Source).
  2. Successivamente, utilizziamo questi dati per creare un set di dati, indicando che il tipo di fiore dovrà essere previsto. BigML analizzerà automaticamente il file e, dopo averlo analizzato, costruirà vari grafici, visualizzando i dati.
  3. Sulla base di questo Dataset, con un clic, viene costruito un modello su cui si baseranno le previsioni. Inoltre, BigML visualizza nuovamente il modello, spiegando la logica del suo lavoro. Puoi anche esportare il risultato come script per Python o qualsiasi altro linguaggio.
  4. Dopo che il modello è pronto, diventa possibile fare previsioni (Predizioni). E fallo in diverse modalità: imposta immediatamente tutti i parametri del fiore o rispondi alle domande del sistema, che, in base alla situazione, chiederà solo ciò di cui ha bisogno.

Lo stesso potrebbe essere fatto senza l'interfaccia utente, ma comunicando con BigML tramite l'applicazione console BigMLer o tramite l'API REST, comunicando dalla console con il solito curl.

Due compiti principali

Non c'è nulla di soprannaturale all'interno di BigML e dell'API di Google Prediction. E gli sviluppatori intelligenti potranno implementare da soli motori simili, in modo da non pagare servizi di terze parti (e non caricare su di essi dati che spesso non possono essere caricati).

È probabile che il termine "apprendimento automatico" ti venga in mente più di una volta. Anche se è spesso usato come sinonimo intelligenza artificiale, infatti l'apprendimento automatico è uno dei suoi elementi. Allo stesso tempo, entrambi i concetti sono nati al Massachusetts Institute of Technology alla fine degli anni '50.

Oggi incontri l'apprendimento automatico ogni giorno, anche se potresti non saperlo. Gli assistenti vocali Siri e Google, il riconoscimento facciale su Facebook e Windows 10, i consigli su Amazon, le tecnologie che impediscono alle auto robotiche di urtare gli ostacoli nascono grazie ai progressi del machine learning.

I sistemi di apprendimento automatico sono ancora molto lontani dal cervello umano, ma hanno già risultati impressionanti nelle loro risorse, ad esempio sconfiggere persone negli scacchi, gioco da tavolo vai a poker.

Negli ultimi anni, lo sviluppo dell'apprendimento automatico ha ricevuto un forte impulso grazie a una serie di innovazioni tecnologiche, un aumento della potenza di calcolo disponibile e un'abbondanza di dati di formazione.

Software di autoapprendimento

Allora, cos'è l'apprendimento automatico? Cominciamo con quello che non è. Questi non sono normali programmi per computer scritti a mano.

A differenza del software tradizionale, che è ottimo per eseguire istruzioni ma non è in grado di improvvisare, i sistemi di apprendimento automatico si programmano essenzialmente da soli, sviluppando istruzioni da soli riassumendo le informazioni conosciute.

Un classico esempio è il riconoscimento del modello. Mostra all'apprendimento automatico abbastanza immagini di cani etichettati come "cane" e gatti, alberi e altri oggetti etichettati "non un cane" e comincerà a riconoscere bene i cani nel tempo. E per questo non avrà bisogno di spiegare esattamente come appaiono.

Il filtro antispam nel tuo programma di posta elettronica è un buon esempio di apprendimento automatico in azione. Dopo aver elaborato centinaia di milioni di campioni di messaggi indesiderati e necessari, il sistema viene addestrato per evidenziare i segnali tipici delle e-mail di spam. Lo fa non perfettamente, ma in modo abbastanza efficace.

Insegnare con e senza insegnante

Questo tipo di apprendimento automatico è chiamato apprendimento supervisionato. Ciò significa che qualcuno ha introdotto l'algoritmo in un'enorme quantità di dati di allenamento, rivedendo i risultati e regolando le impostazioni fino a raggiungere l'accuratezza di classificazione desiderata su dati che il sistema non aveva ancora "visto". È come premere il pulsante "non spam" nel tuo programma di posta elettronica quando un filtro intercetta accidentalmente il messaggio che desideri. Più spesso lo fai, più accurato diventa il filtro.

Tipiche attività di apprendimento supervisionato sono la classificazione e la previsione (o analisi di regressione). Lo spam e il riconoscimento delle immagini sono attività di classificazione e la previsione del prezzo delle azioni è un classico esempio di regressione.

Nell'apprendimento non supervisionato, il sistema scansiona enormi quantità di dati, ricordando che aspetto hanno i dati "normali" per essere in grado di riconoscere anomalie e schemi nascosti. L'apprendimento non supervisionato è utile quando non sai esattamente cosa stai cercando, nel qual caso il sistema può essere costretto ad aiutarti.

I sistemi di apprendimento senza supervisione possono rilevare schemi in grandi quantità di dati molto più velocemente degli esseri umani. Ecco perché le banche li utilizzano per rilevare transazioni fraudolente, gli esperti di marketing per identificare i clienti con attributi simili e i software di sicurezza per riconoscere attività dannose sulla rete.

Esempi di problemi di apprendimento senza supervisione sono il raggruppamento e la ricerca di regole di associazione. Il primo è utilizzato, in particolare, per la segmentazione della clientela, ei meccanismi di emissione delle raccomandazioni si basano sulla ricerca di regole di associazione.

Limiti dell'apprendimento automatico

Ogni sistema di machine learning crea il proprio diagramma di collegamento, che rappresenta qualcosa come una "scatola nera". Non sarai in grado di capire esattamente come viene eseguita la classificazione dall'analisi ingegneristica, ma questo non importa, la cosa principale è che funziona.

Tuttavia, un sistema di apprendimento automatico è valido solo se i dati di addestramento sono accurati: se gli dai "spazzatura" come input, il risultato sarà appropriato. Se l'addestramento non è corretto o la dimensione del campione di addestramento è troppo piccola, l'algoritmo potrebbe produrre risultati errati.

HP ha avuto problemi nel 2009 quando il sistema di riconoscimento facciale per la webcam su un laptop HP MediaSmart non è stato in grado di riconoscere i volti afroamericani. E nel giugno 2015, un algoritmo di Google Foto di scarsa qualità ha chiamato "gorilla" due neri americani.

Un altro esempio è il famigerato bot Twitter di Microsoft Tay, che è stato sperimentato nel 2016 per vedere se l'intelligenza artificiale potesse "fingere" di essere umana imparando dai messaggi reali delle persone. In meno di un giorno, i troll di Twitter hanno trasformato Tay in un famigerato xenofobo: ecco un tipico esempio di dati di allenamento danneggiati.

Glossario di termini

L'apprendimento automatico è solo la punta dell'iceberg dell'intelligenza artificiale. Altri termini strettamente correlati ad esso includono reti neurali, deep learning e cognitive computing.

Rete neurale. Questa è un'architettura di computer che imita la struttura dei neuroni del cervello; ogni neurone artificiale si connette agli altri. Le reti neurali sono costruite a strati; i neuroni in uno strato alimentano i dati a molti neuroni nel successivo, e così via fino a raggiungere lo strato di output. È all'ultimo livello che la rete fornisce le sue ipotesi, ad esempio l'aspetto di quell'oggetto a forma di cane, accompagnando la risposta con un punteggio di confidenza.

Esistono diversi tipi di reti neurali per risolvere diversi tipi di problemi. Le reti con molti livelli sono chiamate reti profonde. Le reti neurali sono uno degli strumenti di machine learning più importanti, ma non l'unico.

Apprendimento approfondito. Questo è essenzialmente l'apprendimento automatico con steroidi, utilizzando reti multistrato (profonde) per prendere decisioni basate su informazioni imprecise o incomplete. Il sistema di deep learning DeepStack ha battuto 11 lo scorso dicembre giocatori professionisti nel poker ricalcolando la strategia dopo ogni giro di puntate.

Informatica cognitiva. Questo è un termine coniato in IBM dai creatori supercomputer Watson. IBM vede la differenza tra il cognitive computing e l'intelligenza artificiale in quanto i primi non sostituiscono la mente umana, ma la integrano, ad esempio aiutando i medici a fare diagnosi più accurate, i consulenti finanziari a emettere di più raccomandazioni informate, avvocati - per trovare più rapidamente precedenti adeguati, ecc.

Quindi, nonostante tutto il brusio dell'intelligenza artificiale, non è esagerato affermare che l'apprendimento automatico e le tecnologie correlate stanno davvero cambiando il mondo che ci circonda e così velocemente che, quasi, le macchine diventeranno completamente autocoscienti.

- Dan Tynan. Che cos'è l'apprendimento automatico? Software derivato dai dati. mondo delle informazioni. 9 agosto 2017

A Mosca è in corso la creazione di una rete neurale per riconoscere le letture dei contatori d'acqua dalle fotografie

A Mosca è in corso un esperimento per creare un servizio elettronico basato su reti neurali. Il Dipartimento di Informatica della capitale sta lavorando a un algoritmo che semplificherà la trasmissione delle letture dei contatori d'acqua. Gli sviluppatori intendono insegnare al servizio a determinare automaticamente dalla foto cosa mostra il contatore.

Si prevede di addestrare la rete neurale al riconoscimento rapido e accurato delle letture entro la fine di quest'anno. Per fare ciò, deve elaborare diverse migliaia di fotografie di contatori caldi e freddi. acqua fredda, che sarà inviato dagli stessi cittadini, che hanno accettato di prendere parte all'esperimento.

Al termine della formazione, la rete neurale sarà in grado di riconoscere i numeri in tutte le immagini che l'occhio umano può distinguere. Se il tasso di errore rimane elevato, le foto aggiuntive verranno mostrate al sistema.

Sulla base di questa rete neurale, potrebbe apparire un servizio che consentirà di non inserire manualmente i dati del contatore. Il sistema riconoscerà automaticamente le letture e le trasferirà al Centro Unificato di Informazione e Regolamento per la formazione dei documenti di pagamento.

MoneyCare utilizza l'apprendimento automatico per prevedere l'approvazione del prestito

Il broker di prestiti indipendente MoneyCare ha creato un modello predittivo basato sul servizio cloud di Microsoft Azure Machine Learning. La soluzione permette di stimare la probabilità di una risposta positiva della banca alla richiesta di prestito.


Al fine di migliorare la conversione delle domande di prestito, l'azienda ha deciso di ridurre la quantità di dati personali al minimo richiesto, nonché di creare un modello che prevede la probabilità di una risposta positiva da parte della banca. La determinazione del set di dati minimo e la costruzione del prototipo sono stati affidati agli esperti Columbus da MoneyCare.

Nella scelta di una piattaforma di machine learning, MoneyCare ha scelto il servizio cloud Azure Machine Learning, che consente di creare e distribuire rapidamente modelli predittivi con funzionalità complete come soluzioni di analisi.

Nella prima fase del progetto è stato realizzato in Azure Machine Learning un prototipo di classificatore, il cui compito è selezionare oltre il 60% delle domande di prestito con una probabilità di approvazione superiore all'80%. In questo caso sono stati utilizzati metodi come l'analisi discriminante, l'analisi di regressione, il clustering, la classificazione basata sulla separabilità e gli algoritmi di riduzione della dimensionalità.

La seconda fase del progetto è stata la formazione dei dipendenti MoneyCare sui principi del lavoro e un workshop congiunto per migliorare il prototipo. Sono state effettuate consulenze sull'impostazione di modelli, attività tipiche di machine learning e sono stati determinati i passaggi successivi per migliorare il prototipo.

Il governo della regione di Murmansk applicherà l'apprendimento automatico nella gestione dei documenti

Il Dipartimento di Tecnologia della programmazione dell'Università statale di San Pietroburgo, insieme alla società di Digital Design, ha esplorato la possibilità di utilizzare algoritmi di apprendimento automatico nei sistemi di gestione elettronica dei documenti. L'oggetto dello studio era l'EDMS del governo della regione di Murmansk. Come database sono stati utilizzati più di 250mila documenti spersonalizzati di corrispondenza ufficiale.

È stata testata la possibilità di utilizzare algoritmi intelligenti nell'EDMS che ripetono i principi di una rete neurale. I compiti principali di tale rete sono determinare la categoria del documento, compilare automaticamente i suoi attributi principali, determinare, sulla base dell'analisi del testo del file allegato, gli esecutori più probabili e creare bozze di testi di istruzioni per loro.

È stato determinato che, utilizzando algoritmi intelligenti, è possibile automatizzare l'ordinamento dei documenti in base al contenuto dei file allegati e comporre un nucleo semantico per ciascuna categoria, cercare documenti simili o identici, determinare le dipendenze di alcuni attributi di documenti su altri, e persino automatizzare la costruzione di un modello probabilistico per prevedere i valori degli attributi. Nel corso dello studio è stato possibile ottenere un'accuratezza del 95% nel determinare la categoria di un documento in base al contenuto del testo. Nella fase successiva, verranno effettuati test su un gruppo ristretto di utenti chiave dell'EDMS del governo della regione di Murmansk, che elaborano grandi volumi di documenti.

"Khlynov" ha ottimizzato il servizio degli sportelli automatici

Khlynov Bank ha cambiato il servizio degli ATM, utilizzando i servizi di machine learning dal cloud di Microsoft Azure. Di conseguenza, la banca è stata in grado di utilizzare i 250 milioni di rubli precedentemente "congelati".

Poiché la rete di clienti della banca è in continua evoluzione, sono necessari nuovi approcci per archiviare e lavorare con i fondi dei clienti. All'inizio del progetto, il saldo mensile medio sulle carte Khlynov era di circa 800 milioni di rubli. Un terzo di questo denaro è stato riservato agli sportelli automatici per il prelievo dai titolari di carta.

L'utilizzo dei servizi di machine learning dal cloud di Microsoft Azure ha consentito alla banca di ridurre il volume del contante riservato negli sportelli automatici al 16-20% del saldo mensile medio delle carte: è aumentato a 1,2 miliardi di rubli e l'importo riservato è pari a 200 -230 milioni di rubli. La banca ha potuto utilizzare i fondi liberati per altri compiti operativi, in particolare per prestiti ai propri clienti.

L'algoritmo creato in collaborazione con l'integratore Rubicon, utilizzando metodi di apprendimento automatico, ha consentito alla banca di ridurre di oltre 1,5 volte il numero di viaggi mensili di incasso. Ciascuno di questi viaggi costa 3 mila rubli e ogni mille rubli trasportati è soggetto a una commissione dello 0,026%.

Nel prossimo futuro, Khlynov Bank prevede di introdurre ulteriori strumenti di analisi predittiva dal cloud di Microsoft Azure per utilizzare in modo produttivo le informazioni accumulate in oltre 25 anni di lavoro con i clienti.

Gazprom Neft utilizzerà l'intelligenza artificiale di Yandex

Gazprom Neft e Yandex hanno firmato un accordo di cooperazione nell'attuazione di progetti promettenti nel settore petrolifero e del gas. Utilizzando le tecnologie dei Bigdati, macchinaformazione e intelligenza artificiale, le società prevedono di perforare pozzi, simulare i processi tecnologici di raffinazione del petrolioe, ottimizzare altri processi di produzione.


L'accordo prevede un esame indipendente delle soluzioni tecnologiche esistenti da parte degli specialisti di Yandex Data Factory, lo sviluppo e l'attuazione congiunti di progetti di ricerca e tecnologici, nonché lo scambio di informazioni scientifiche e tecniche, conoscenze e formazione dei dipendenti.

L'industria del petrolio e del gas è una delle più promettenti in termini di utilizzo di nuove tecnologie, poiché ha accumulato grandi quantità di dati e da tempo sono state applicate soluzioni semplici per ottimizzare la produzione e il business. Pertanto, sono state create buone opportunità per ottenere un effetto tangibile dall'implementazione di soluzioni basate sull'apprendimento automatico e sull'intelligenza artificiale.