IT202100015593A1 - Metodo di classificazione dei messaggi sullo schermo di un dispositivo elettronico intelligente sulla base di una profilazione dell’utente. - Google Patents

Metodo di classificazione dei messaggi sullo schermo di un dispositivo elettronico intelligente sulla base di una profilazione dell’utente. Download PDF

Info

Publication number
IT202100015593A1
IT202100015593A1 IT102021000015593A IT202100015593A IT202100015593A1 IT 202100015593 A1 IT202100015593 A1 IT 202100015593A1 IT 102021000015593 A IT102021000015593 A IT 102021000015593A IT 202100015593 A IT202100015593 A IT 202100015593A IT 202100015593 A1 IT202100015593 A1 IT 202100015593A1
Authority
IT
Italy
Prior art keywords
user
mail
neural network
category
training
Prior art date
Application number
IT102021000015593A
Other languages
English (en)
Inventor
Thomas Benedetti
Laura Palmese
Original Assignee
Ianustec S R L
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ianustec S R L filed Critical Ianustec S R L
Priority to IT102021000015593A priority Critical patent/IT202100015593A1/it
Publication of IT202100015593A1 publication Critical patent/IT202100015593A1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Computer Hardware Design (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

?Metodo di classificazione dei messaggi sullo schermo di un dispositivo elettronico intelligente sulla base di una profilazione dell?utente?
DESCRIZIONE CAMPO DELLA TECNICA
La presente invenzione riguarda metodi e sistemi per fornire un?esperienza utente semplificata nella gestione dei messaggi mediante dispositivi elettronici intelligenti.
STATO DELLA TECNICA
Con la sempre crescente diffusione delle reti informatiche, dei sistemi di comunicazione e dei dispositivi che consentono di comunicare facilmente con qualsiasi persona in qualunque luogo ed in qualsiasi momento, vengono scambiate quantit? sempre maggiori di informazioni di tipo elettronico.
Nonostante la sempre maggiore diffusione di numerosi sistemi di comunicazione alternativi attraverso Internet, come ad esempio i sistemi di messaggistica istantanea, l?invio di una e-mail riveste ancora oggi un ruolo di primo piano nella gestione della comunicazione tra le persone sia in ambito privato che in ambito professionale dove all'interno di numerosi contesti aziendali, la posta elettronica ? diventata di fatto uno standard con cui scambiare le informazioni tra colleghi.
Il crescente uso dei servizi di posta elettronica, in ambito privato e soprattutto in ambito lavorativo, ha reso sempre pi? evidente i problemi relativi alla gestione della crescente quantit? di messaggi ricevuti quotidianamente provenienti da una pluralit? di fonti e mittenti differenti e.g. un mittente di lavoro oppure un mittente extra-lavorativo.
Tra questi, un problema di particolare importanza riguarda l?utente e la sua necessit? di riuscire a gestire una moltitudine di informazioni contenute nelle e-mail, dovendo ad esempio stabilirne l?importanza, elaborarne i contenuti, riorganizzarle secondo un proprio criterio personale, decidere a quali rispondere piuttosto che ignorarle, tale per cui oggigiorno la gestione delle suddette attivit? hanno comportato, dal punto di vista di un utente, alla trasformazione della casella di posta elettronica da strumento di supporto a fonte di stress e, in ambito aziendale, a diventare un ostacolo alla produttivit?.
Infatti, in ambito aziendale, durante lo svolgimento della propria attivit? lavorativa, un dipendente si trova costretto ad interrompersi dallo svolgimento dei propri compiti pi? volte al giorno per cercare di gestire un grande di flusso di e-mail in entrata e in uscita. Tale flusso risulta sempre pi? difficile da organizzare in modo efficace ed efficiente e costringe il dipendente a trascorrere una parte non trascurabile della propria giornata lavorativa in attivit? non produttive quali la gestione, l?archiviazione, la cancellazione e l?invio di una risposta ai messaggi ricevuti, che si traducono in cali di performance e qualit? del lavoro prodotto.
Anche in ambito privato ? presente una situazione analoga, dove seppur non si possa parlare di produttivit? come in un contesto aziendale, un utente potrebbe risultare infastidito e stressato a causa delle continue notifiche ?push? ricevute sul proprio dispositivo, ovvero quel tipo di notifiche che avvisano l?utente dell?arrivo di nuovi messaggi anche quando l?applicazione di posta elettronica ? chiusa.
La necessit? di riuscire a gestire ed organizzare gli account di posta in modo efficace ed efficiente, in modo che tornino ad essere percepiti come uno strumento di utilit? in grado di adattarsi nel tempo alle mutate esigenze di un utente, ? un problema ancora irrisolto.
Allo stato attuale esistono soluzioni parziali legate al problema di gestione delle informazioni. Ad esempio, alcuni provider di posta si limitano ad offrire la possibilit? di creare delle cartelle (dove l?onere della gestione per mezzo di attivit? manuali di riorganizzazione e archiviazione delle e-mail ricade ancora sull?utente), o eventualmente la possibilit? di impostare alcuni filtri per limitare la posta indesiderata ricevuta, come ad esempio i messaggi promozionali. Altri provider di posta pi? evoluti forniscono funzionalit? pi? complesse, oltre a quelle descritte in precedenza, per organizzare la casella di posta secondo un sistema di etichettatura personalizzabile, per descrizione e colore, opzionalmente associabili a delle funzionalit? di filtri avanzati, secondo alcune opzioni predeterminate, che permettono la creazione di regole tali per cui ad una determinata e-mail siano associati un colore e un?etichetta specifica.
Pi? in generale quindi gli attuali provider consentono di personalizzare una casella di posta elettronica introducendo delle funzionalit? di filtro e delle funzionalit? di gestione delle cartelle e delle etichette che sono tuttavia statiche e non modificabili in base al contesto, e funzionanti sulla base di input chiari, ben definiti e opportunamente parametrizzati. L? attivit? di configurazione e di gestione quotidiana ? ancora completamente manuale e demandata all?utente a cui ? ancora richiesto un significativo dispendio di tempo ed energie per adeguare continuamente la gestione dello strumento e personalizzandolo sulla base delle proprie esigenze che possono cambiare nel tempo.
Un altro problema oggi presente riguarda la fruizione del servizio di posta elettronica offerto dai provider per mezzo di app su dispositivi intelligenti quali ad esempio dispositivi portatili, dispositivi mobile, dispositivi touch o dispositivi handheld dato che non ? possibile personalizzare la fruizione del servizio di notifiche. Ne consegue che l?utente pu? semplicemente decidere di attivare o meno tale servizio. Tuttavia, quando attivato, per come fruibile oggi, contribuisce al peggioramento dell?esperienza utente per tali dispositivi dato che ogni nuovo messaggio ricevuto, indipendentemente dal tipo o dall?importanza del messaggio, ? direttamente notificato sullo schermo, distraendo ed interrompendo l?utente dalla propria attivit?, per effettuare una delle operazioni precedentemente descritte (gestire, archiviare, cancellare e rispondere, etc.).
SOMMARIO DELL'INVENZIONE
Lo scopo della presente invenzione ? quello di migliorare l?esperienza utente nella gestione delle e-mail sia all?interno di un account di posta elettronica che per mezzo dei vari dispositivi intelligenti dotati di uno schermo grazie alla possibilit? di definire un grado di personalizzazione di una pluralit? di categorie (di cartelle o di etichette) secondo una priorit? definita dall?utente a cui sono associate le singole e-mail, oltre che ad una gestione delle notifiche, superando i problemi precedentemente descritti. Dette categorie definite secondo una priorit? dell?utente possono inoltre essere modificate nel tempo rendendo possibile l?adeguamento del sistema al mutare delle esigenze dell?utente.
? oggetto della presente invenzione un metodo per l?automazione del processo di classificazione, organizzazione e priorizzazione delle e-mail di un account di posta elettronica che tenga in considerazione sia le preferenze di un utente contenute all?interno di un profilo utente, in forma di parametri, sia le caratteristiche dei messaggi (da intendersi sia come contenuto che come attributi di un?e-mail) e che queste siano contestualizzate sulla base del profilo utente nonch? della personalizzazione di un servizio di notifiche verso diverse tipologie di dispositivo.
La soluzione descritta nel seguito consente di classificare catalogare e assegnare una priorit? alle e-mail in base al contenuto, alla lingua e al contesto specifico di ciascuna e-mail, in particolare consentendo una contestualizzazione dinamica dei risultati forniti sulla base di un profilo utente comprendente una pluralit? di preferenze rappresentate per mezzo di parametri in grado di esprimere una scelta di valori multipli per ognuno di essi, grazie ai quali si ottiene un adattamento dinamico dei risultati forniti rispetto a quanto indicato nelle preferenze dall?utente.
Si noti inoltre come l?applicazione del metodo, descritto nel seguito, rende possibile personalizzare le notifiche ricevute su un dispositivo intelligente permettendo di ricevere le notifiche per quelle e-mail che rientrano in determinate caratteristiche ritenute importanti dall?utente (ad esempio secondo un?importanza assegnata, secondo la lingua, etc.).
L?importanza attribuita ad una e-mail ? una scelta personale dell?utente che pu? riguardare sia le e-mail provenienti da account di posta di tipo aziendale che di tipo privato, ed in generale da e-mail provenienti da una pluralit? di account di posta diversi, potendo scegliere per quali messaggi si intende ricevere una notifica e di redirigere la ricezione di detta notifica su uno o pi? dispositivi diversi secondo un concetto di priorit? assegnata ad ogni e-mail.
Secondo la presente invenzione lo scopo viene raggiunto tramite un metodo implementato al computer per classificare le e-mail secondo un profilo utente comprendente le fasi di:
acquisire uno o pi? parametri di configurazione utente sotto forma di valori vettoriali ottenuti mediante una funzione di mappatura come primi dati di ingresso;
processare una pluralit? di e-mail da un account utente di posta elettronica;
acquisire uno o pi? parametri relativi alle caratteristiche dell?e-mail individuati per ognuna delle e-mail processate mediante un algoritmo come secondi dati di ingresso;
generare, per mezzo di una rete neurale addestrata, una predizione di categoria di appartenenza ed attribuire un?etichetta per ogni e-mail in detta pluralit? di e-mail secondo detti primi e secondi dati di ingresso forniti alla rete neurale;
fornire al provider dell?account di posta dell?utente le istruzioni per catalogare ed archiviare ogni mail appartenente alla pluralit? di mail processate da detto account di posta;
visualizzare sullo schermo di un dispositivo intelligente le notifiche di e-mail secondo le categorie definite mediante le preferenze di un utente; e
caratterizzato dal fatto che il risultato della funzione di mappatura rappresenta la creazione di un profilo utente secondo un modello comprensibile da una rete neurale, determinato sulla base della combinazione di una pluralit? di parametri di configurazione utente, dove la funzione di mappatura ? il risultato ottenuto mediante l?addestramento di una ulteriore rete neurale di mappatura addestrata a riconoscere le possibili combinazioni di detti parametri secondo un criterio di calcolo di un coefficiente di similarit?, senza che si renda necessaria alcuna operazione preliminare o fase di addestramento volta ad estrapolare le informazioni contenute nei parametri utente o ad istruire al riconoscimento di tali parametri come appartenenti ad uno specifico utente.
In questo modo, la gestione dello schermo da parte dell?utente ? migliorata perch? sono messe in evidenza le informazioni rilevanti secondo una gestione di priorit? impostata dell?utente. Questo comporta, ad esempio in viaggio, di dover gestire un numero inferiore di notifiche rispetto al numero totale di e-mail ricevute, diminuendo statisticamente gli errori associati alla gestione di una grande mole di dati. Ad esempio, in caso di schermo tattile oppure di computer portatile, la gestione di un gruppo omogeneo di notifiche selezionate a partire dal numero totale di e-mail ricevute, consente di diminuire statisticamente l?errore di selezionare una notifica sbagliata ad esempio a causa di un sobbalzo o frenata improvvisa del mezzo di trasporto e.g. pullman, treno etc.
Secondo una forma preferita di realizzazione la fase di fornire al provider dell?account di posta dell?utente le istruzioni per catalogare ed archiviare le e-mail avviene sulla base di una priorit? assegnata ad ogni e-mail e definita dall?utente.
Un esempio di definizione delle priorit? ? un valore numerico associato alle categorie definite dall?utente in fase di inizializzazione secondo un criterio ascendente dove il valore pi? basso indicher? un messaggio di importanza critica mentre il valore alto indicher? un messaggio identificato come spam.
Un secondo esempio di definizione delle priorit? ? un valore numerico associato alle categorie definite dall?utente in fase di inizializzazione secondo un criterio discendente dove il valore pi? basso indicher? un messaggio identificato come spam mentre il valore pi? alto indicher? un messaggio di importanza critica.
Fornire una priorit? in modo automatico consente di ridurre ulteriormente le informazioni rilevanti da processare e, quindi, gli inconvenienti sopra indicati.
Secondo una forma preferita di realizzazione la fase di visualizzare sullo schermo di un dispositivo intelligente la notifica di un?e-mail avviene sulla base di una priorit? assegnata ad ogni e-mail.
BREVE DESCRIZIONE DEI DISEGNI
Forme di realizzazione preferite della presente invenzione verranno descritte nel seguito, a puro titolo esemplificativo, con riferimento ai disegni allegati, in cui:
- La Fig.1 mostra, mediante blocchi funzionali, il flusso logico della presente invenzione;
- La Fig.2 mostra, mediante blocchi funzionali, la rete neurale utilizzata per le predizioni delle categorie di appartenenza delle e-mail;
- La Fig.3 mostra una rappresentazione schematica del modulo linguistico appartenente alla rete neurale di Fig.2;
- La Fig.4 mostra una rappresentazione esemplificativa del processo di tokenizzazione e di embedding del modulo linguistico di Fig.3;
- La Fig.5 mostra, mediante blocchi funzionali, una rappresentazione alternativa della rete neurale di Fig.2 in cui ? presente un terzo blocco inerente agli attributi delle e-mail per effettuare le predizioni delle categorie di appartenenza delle e-mail;
- La Fig.6 mostra, mediante blocchi funzionali, una rappresentazione alternativa della rete neurale di Fig.2 in cui sono presenti una pluralit? di moduli linguistici per la gestione multilingua del testo delle e-mail;
- La Fig.7 mostra uno schema architetturale della presente invenzione.
- La Fig.8 mostra una tabella contenente alcuni test comparativi tra il metodo oggetto dell?invenzione e altre alternative disponibili.
- La Fig. 9 mostra una comparazione dei risultati ottenuti con un modello di classificazione categoriale rispetto ad un modello di classificazione percentuale.
DESCRIZIONE DETTAGLIATA DELL?INVENZIONE
La seguente descrizione dettagliata delle forme di realizzazione preferite si riferisce ai disegni allegati che ne costituiscono una parte e mostrano, a titolo esemplificativo, specifiche forme di realizzazione della presente invenzione. La seguente descrizione non ? pertanto da intendersi in senso limitativo, e la portata delle invenzioni ? definita solo dalle rivendicazioni allegate.
La Fig.1 mostra, mediante blocchi funzionali, il flusso logico della presente invenzione. I blocchi nella parte sinistra di Fig.1 rappresentano gli input del sistema e pi? in particolare due processi paralleli costituiti da un blocco di Interazione utente e un blocco di Email utente. Il blocco di Email utente svolge la funzione di lettura automatica delle e-mail di un utente da un determinato account di posta elettronica, ad esempio gestito tramite un applicativo noto.
Il blocco di Interazione utente definisce le attivit? in carico all?utente secondo due processi: l?interazione con il proprio account di servizio della presente soluzione (Bec)e la riclassificazione delle e-mail. Per quanto riguarda l?interazione con l?account di servizio (Bec), la registrazione avviene tramite una pagina web o app mobile e prevede che l?utente dichiari le proprie generalit? e caratteristiche su campi prestabiliti. Alcuni esempi di informazioni richieste sono l?indicazione del provider di posta elettronica e il numero di categorie di messaggi che intende utilizzare e la lingua che intende utilizzare. Un?ulteriore informazione richiesta all?utente riguarda il tipo di e-mail contenute all?interno dell?account di posta elettronica che prevede la scelta di una singola opzione tra quelle proposte. Un esempio di possibili opzioni disponibili sono: 100% privata, 70% privata, 50% privata ? 50% lavorativa, 70% lavorativa, 100% lavorativa. Nel caso in cui l?indicazione sulla tipologia di email contenute all?interno della casella di posta elettronica contenga una qualsiasi percentuale lavorativa all?utente sono richiesti ulteriori informazioni quali la figura aziendale, la funzione aziendale e il settore aziendale. Un esempio di possibili opzioni disponibili per la figura aziendale tra cui l?utente pu? effettuare una scelta multipla sono: CEO/Titolare, Dirigente, Manager, Impiegato, Operaio. Un esempio di possibili opzioni disponibili per la funzione aziendale tra cui l?utente pu? effettuare una scelta multipla sono: Direzione Generale, HR, Amministrazione/Finanza/Ufficio Legale, IT, Acquisti, Logistica, Marketing e Vendite, Ricerca e Sviluppo, Produzione. Un esempio di possibili opzioni disponibili per il settore aziendale tra cui l?utente pu? effettuare una scelta multipla sono: Alimentare, Automotive, Bevande/Alcolici, Cura della persona, Distribuzione, Media/Editoria, Farmaceutico/Sanitario, Telecomunicazioni. L?utente ha la possibilit? di poter accedere a questo account anche in momenti successivi per modificare una o pi? delle caratteristiche precedentemente configurate.
I blocchi nella parte centrale di Fig.1 rappresentano due processi paralleli: un processo di predizione ed un processo di training.
Per quanto riguarda il processo di predizione, una volta che l'utente ? stato inizializzato mediante le fasi di configurazione descritte in precedenza (fase in cui all?utente sono richieste alcune informazioni relative all?account di posta elettronica), il processo di predizione interroga costantemente la casella di posta elettronica dell?utente per verificare la presenza di nuove e-mail da leggere. Nel momento in cui ? presente una o pi? e-mail da leggere, una rete neurale analizza l?e-mail rispetto al contesto, mettendola pertanto in relazione con le caratteristiche inserite dall?utente durante il processo di Interazione utente, e restituisce la predizione della categoria pi? appropriata e associandogli la relativa etichetta e priorit?, definite dall?utente nella fase di Interazione utente, per ognuna di dette e-mail.
Il processo di addestramento della rete neurale ? stato concepito per funzionare a regime secondo un approccio di apprendimento continuo. Secondo tale approccio le e-mail che sono gi? state oggetto di predizione, e che pertanto hanno gi? assegnata un?etichetta, vengono periodicamente riprocessate, secondo una cadenza temporale variabile in funzione del numero degli utenti gestiti, allo scopo di ottenere nuove predizioni di categoria da confrontare con quelle gi? attribuite. Quando la predizione di categoria effettuata durante una fase di apprendimento continuo non corrisponde a quella gi? assegnata, subentra un processo di regolazione del modello di rete neurale. La differente attribuzione di categoria rispetto ad una precedente predizione pu? essere dovuta all?operativit? dell?utente che ha effettuato una riclassificazione manuale quando riteneva il risultato della predizione errato. Il metodo di apprendimento della rete neurale, sia a regime che in fase di addestramento iniziale, ? di tipo supervisionato. Per addestramento di una rete neurale si intende quella fase in cui la rete neurale impara a svolgere il suo lavoro, che per la presente invenzione ? di classificazione. L?addestramento supervisionato consente di istruire una rete neurale in modo da consentirle di elaborare automaticamente previsioni sui valori di uscita rispetto ad un input sulla base di una serie di esempi ideali dal quale imparare. Detti esempi ideali sono costituiti da coppie di input e di output, che servono a far capire alla rete come deve reagire di fronte a specifici dati in ingresso. A differenza della fase di addestramento che, come sar? dettagliatamente descritto nel seguito, prevede un?iterazione con l?intero dataset delle e-mail degli utenti, durante il normale esercizio, il processo di addestramento itera solamente sulle email gi? lette da parte dell?utente. Questo consente un adattamento continuo e costante del contesto utente rispetto alle sue categorie di classificazione e un?efficienza computazionale dovuta al processamento delle sole nuove e-mail ricevute senza il rischio di ricadere nel ?catastrofical forgetting?, ovvero la tendenza di una rete neurale a ?dimenticare? completamente le informazioni apprese quando vengono apprese nuove informazioni.
Infine, nella parte destra di Fig.1 ? rappresentato il blocco di output, ovvero il processo di organizzazione e notifica il cui compito ? quello di inviare al provider dell?account di posta elettronica le informazioni relative alla categoria, priorit? ed etichetta di ogni e-mail analizzata organizzando la casella di posta e la sua visualizzazione da parte dell?utente secondo le preferenze definite dall?utente.
Questo blocco riceve in input la predizione della categoria alla quale l?e-mail deve appartenere e gli attribuisce una appropriata etichetta, che pu? diventare una cartella all?interno dell?account di posta dell?utente secondo una scala di priorit? decisa dall?utente sia in termini di numero di cartelle utilizzate sia sull?uso di un criterio di attribuzione della priorit? di tipo ascendente piuttosto che discendente. In questo modo si effettua una riorganizzazione automatica delle e-mail ancora da leggere che agevolano l?utente nella gestione quotidiana delle proprie e-mail secondo i criteri stabiliti dall?utente stesso come ad esempio la separazione tra messaggi di tipo privato e di tipo lavorativo, per lingua o priorit?. Ulteriormente, qualora l?utente abbia configurato tra le caratteristiche in ingresso al sistema anche il servizio di notifica push per una o pi? categorie di e-mail su uno o pi? dispositivi intelligenti dotati di schermo, il processo provvede ad inviare dette notifiche secondo i criteri di categoria e priorit? stabiliti.
Dette notifiche non sono necessariamente inviate per ogni email rilevante. Nel caso in cui, all?interno del processo di classificazione, vi siano pi? e-mail da notificare con stessa o diversa categoria, ? possibile inviare verso il dispositivo dell?utente una sola notifica riepilogativa.
Il processo di notifica consente all?utente di scegliere una gestione indipendente tra una pluralit? di dispositivi consentendo un?elevata flessibilit? nella gestione del contesto al quale un account di posta appartiene.
Pertanto, a puro scopo esemplificativo, l?utente pu? scegliere, per una stessa casella e-mail (si supponga di considerare una casella di posta di tipo aziendale), di ricevere le notifiche relative ad una prima categoria X ed una seconda categoria Y su un dispositivo aziendale A e di ricevere comunque su un secondo dispositivo privato B le sole notifiche relative alla categoria X perch? ritenute dall?utente di estrema importanza e quindi associate ad una priorit? massima.
Algoritmo di decodifica delle caratteristiche utente
L?adattamento dinamico della predizione della categoria di appartenenza di un?e-mail per un determinato utente ? possibile grazie alla realizzazione di una profilazione dell?utente stesso. La profilazione consente all?utente di configurare le proprie preferenze con la massima flessibilit? attraverso una scelta, per ogni preferenza, del valore che identifica il proprio contesto tra una pluralit? di valori presenti in un elenco predeterminato, eventualmente anche mediante una scelta multipla quando non ? possibile definire una preferenza per mezzo di un unico valore, per ogni caratteristica.
Ad esempio, in un contesto aziendale, l?utente pu? non possedere una figura aziendale univoca poich? svolge sia mansioni di tipo impiegatizio che di tipo manageriale.
Un secondo esempio, sempre legato ad un contesto aziendale, pu? riguardare le funzioni aziendali qualora le attivit? svolte dall?utente potrebbero ricadere sia nella gestione del personale che in quelle di amministrazione.
Un algoritmo di decodifica dedicato permette di mappare le caratteristiche testuali selezionate dall'utente in fase di inizializzazione e tradurle in valori comprensibili da una rete neurale senza che detta rete debba effettuare operazioni preliminari legate ad una fase di addestramento per il corretto riconoscimento delle possibili combinazioni delle preferenze per un determinato utente.
E? possibile dividere le caratteristiche utente secondo due categorie:
- un primo caso in cui i possibili valori delle caratteristiche hanno un significato semantico non equidistante l?uno dall?altro o esiste un legame gerarchico che li relaziona. Un esempio di tale categoria ? la Figura aziendale dove l?amministratore delegato pu? essere vicino a un direttore, mentre un operaio ? vicino a un impiegato e a un capo-reparto. (Categoria 1).
- un secondo caso in cui non esiste una distanza attribuibile rispetto ai possibili valori che la caratteristica pu? avere. Un esempio di tale categoria ? la Funzione aziendale dove non ? possibile stabilire una relazione di vicinanza tra le Risorse umane e la divisone IT o la logistica con un grado di accuratezza tale da renderlo utilizzabile. Non ? possibile quindi calcolare a priori una distanza semantica o comunque la distanza calcolabile non ha un grado di accuratezza accettabile. (Categoria 2).
Secondo una forma di realizzazione della presente invenzione, l?algoritmo pu? essere pertanto visto come un blocco funzionale che va ad interporsi tra le caratteristiche testuali selezionate dall'utente e la rete neurale riducendone il costo computazionale.
Questo ? possibile poich? i valori di riferimento utilizzati dall?algoritmo per la decodifica delle caratteristiche utente sono stati ricavati addestrando una seconda rete neurale in configurazione gemella. Detta rete in configurazione gemella possiede identici strati di input della rete utilizzata per effettuare le predizioni di categoria e gli strati di output sono uniti mediante un?operazione di prodotto ed utilizzati come input di un?ulteriore rete densa, addestrata a predire i valori di similarit?, ad esempio in un intervallo compreso tra 0 e 1, tra le coppie di valori della caratteristica forniti come ingresso, considerando in ingresso i possibili valori che le categorie possono assumere, attribuendo un valore numerico a ogni attributo della caratteristica rispettandone la tipologia. Gli strati di input della rete densa sono due strati di embedding i cui valori della matrice sono i vettori dei valori della caratteristica che si sta addestrando. L?output fornito rappresenta la relazione esistente fra detti possibili valori.
Pertanto, durante questo processo di apprendimento si ? ricavata la relazione presente tra i vari n-gram, ovvero la relazione presente tra il valore della caratteristica presa in esame e il suo contesto, sfruttando la rappresentazione vettoriale creatasi nello strato di embedding.
Per similarit? si intende la ?forza? della relazione tra le coppie di valori, espresse sotto forma di valori vettoriali, per una data caratteristica determinata mediante operazioni matematiche, quali ad esempio il calcolo della distanza euclidea, il calcolo della distanza di Manhanttan o il calcolo della distanza di Minkowski, effettuato sui vettori. Maggiore ? la somiglianza, pi? ? grande questa ?forza?, e di conseguenza pi? simili sono i valori vettoriali della coppia di valori della caratteristica. Questa ?forza? pu? essere espressa mediante un coefficiente di similarit?.
Secondo una forma preferita di realizzazione i valori di similarit? sono determinati utilizzando il calcolo della similarit? del coseno, o cosine similarity.
Per contesto si intende il valore della caratteristica vicina a sinistra e destra, ovvero quella che precede e succede l?attributo preso in esame. Per focalizzare la misurazione di similarit? rispetto alla caratteristica vicina, si ? scelto come valore di contesto (n-gram) 1, cio? ? stato preso come valore di confronto il valore subito adiacente a sinistra ed a destra rispetto al valore preso in esame. La differenza tra la categoria di tipo 1 e tipo 2, ? dovuta alla rappresentazione del contesto. Nel primo caso, la rappresentazione del contesto ? sempre rappresento da valori via via crescenti o decrescenti, mentre nel secondo caso ogni valore ha lo stesso valore di similarit? rispetto a tutti gli altri.
Partendo dal presupposto che agli algoritmi di Machine Learning occorre un?elevata quantit? di dati per l?apprendimento, per una stessa categoria si sono create due scale di valori, una ordinata in maniera ascendente e una in maniera discendente. Successivamente si ? creato un dataset composto da coppie di valori da confrontare e il valore di similarit? 0 o 1 desiderato. Tuttavia, le due tipologie di categorie hanno dataset strutturati in maniera differente. Per la tipologia 1, e stato creato un dataset di allenamento composto da due gruppi di dati: le coppie che devono avere una similarit? tendente ad 1 e tutte le altre coppie di valori che non sono simili tra loro, quindi 0. Si ? scelto un bilanciamento di tipo 1:2 per queste coppie, cio? per 1 coppia di valori con similarit? a 1 sono state scelte altre 2 coppie con combinazioni casuali etichettando la similarit? desiderata a 0. Per la categoria di tipo 2, non gerarchica, si ? creato un dataset con solo coppie di valori con similarit? a 1, ottenuto utilizzando il criterio del coefficiente di similarit? per le possibili combinazioni di interesse nelle varie categorie.
Sono stati quindi eseguiti due processi di addestramento separati, una per la tipologia 1 ed uno per la tipologia 2. Nel processo di addestramento ogni coppia di valori ? stata passata alla rete come input in modo che fosse calcolata la similarit? e ne venisse predetto il valore. Il processo di back-propagation ha poi regolato i pesi della rete secondo la funzione di perdita (MSE) utilizzata per confrontare il valore predetto con il valore del dataset.
Nei normali processi di apprendimento delle reti neurali si tende ad evitare l?overfitting, ovvero il troppo adattamento della rete ai dati di addestramento, dato che in seguito la rete non avrebbe la capacit? di generalizzare e predire correttamente quando sono utilizzati dati di input mai utilizzati nella fase di addestramento. In questo caso invece, siccome lo scopo dell?addestramento di questa rete non ? la predizione, ma quello di poter sfruttare la rappresentazione vettoriale creatasi nei due strati di embedding per decodificare successivamente le caratteristiche utente, l?overfitting non ? stato evitato, anzi, si ? proceduto affinch? la rete arrivasse al 100% di accuratezza rispetto ai dati di addestramento.
Il risultato di questo addestramento ha portato alla corretta rappresentazione vettoriale degli attributi della caratteristica, estratti dagli strati di embedding. ? importante per? sottolineare che non si ? dato importanza alla posizione di ogni singolo punto all?interno dello spazio vettoriale, ma solo alla distanza e quindi alla relazione che c?? tra gli altri punti. Infatti, nella categoria 1 ci? che ? importante ? che le distanze tra i punti rispettino la gerarchia essendo ogni punto equidistante tra quelli che immediatamente lo circondano ma con distanze va via crescenti rispetto ad attributi della categoria che hanno una similarit? pi? distante. Nella categoria 2 il risultato che si ? voluto ottenere, sempre ignorando la posizione di ogni singolo punto nello spazio, ? quello di garantire che la distanza di ogni caratteristica verso le rimanenti fosse sempre la medesima ed equidistante.
Ragionando per similarit?, rispetto alla categoria 1, per un valore preso in esame, un valore di similarit? =1 per s? stesso e per i valori via via decrescenti rispetto agli altri attributi, rispettando la gerarchia. Ad esempio, rispetto al valore 5 della caratteristica si potrebbe avere: 1 rispetto a 5, 0.9887 rispetto a 6, 0.9886 rispetto a 4, 0.9730 rispetto a 7, 0.9727 rispetto a 3. Per quanto riguarda il secondo tipo di categoria invece, prendendo come esempio sempre il valore 5 della caratteristica, abbiamo una similarit? di 1 rispetto a s? stesso 5, ma per tutti gli altri valori una similarit? prossima all?1 (0.9998).
Pi? specificatamente la rappresentazione di una pluralit? di valori per una stessa caratteristica utente, una volta che il valore vettoriale per ogni attributo della caratteristica ? stato salvato, richiede che venga effettuato un calcolo per ottenere un singolo vettore per la caratteristica dell?utente. Pi? in dettaglio, si effettua una media dei vettori e il vettore risultante medio sar? quello utilizzato per inizializzare lo strato di embedding nella gestione della caratteristica presa in esame. Durante la fase di addestramento della rete, le coordinate del vettore verranno aggiornate secondo il processo precedentemente descritto.
Successivamente, durante la messa in esecuzione del metodo, l?utente avr? sempre la possibilit? di modificare i valori delle caratteristiche. Nel caso in cui la modifica della caratteristica riguardi l?aggiunta di un nuovo attributo, ad esempio da 1 a 2 o da 2 a 3, si proceder? col ricalcolare un nuovo vettore medio considerando per? non pi? i valori originali della caratteristica ma i valori del vettore gi? inizializzato e soggetto a processo di addestramento e aggiornato fino a quel momento effettuandone la media con il vettore della caratteristica aggiunta. In questo modo sar? possibile effettuare una predizione corretta di una e-mail senza la necessit? di ulteriori fasi di addestramento.
Questo approccio nella gestione delle caratteristiche dell?utente ha permesso di decodificare le caratteristiche da un valore testuale in un vettore all?interno di uno spazio multidimensionale, con molteplici benefici.
Un primo beneficio riguarda la possibilit? di poter effettuare un?inizializzazione ponderata e non casuale della caratteristica dell?utente, dato che un?inizializzazione casuale prevede che nel tempo la rete neurale adatti il valore corrispondente della caratteristica per avere sempre un?accuratezza nella predizione, e questo richiederebbe ovviamente un tempo maggiore prima di poter essere utilizzata.
Un secondo beneficio riguarda la possibilit? di permettere alla rete neurale di classificazione del servizio di poter spostare ogni punto delle caratteristiche utente liberamente nello spazio per arrivare alla predizione corretta della classificazione della e-mail.
Infine, un terzo beneficio riguarda la possibilit? di poter esprimere una pluralit? di valori per una stessa caratteristica, come descritto in precedenza.
Questo tipo di processo pu? essere applicato a qualsiasi caratteristica non numerica.
La rappresentazione vettoriale (embedding) ? il metodo che risponde meglio alle esigenze legate alla rappresentazione delle caratteristiche utente. Infatti, nonostante siano pochi i possibili valori che una caratteristica pu? assumere, altri tipi di algoritmi non si sarebbero adattati con altrettanta efficacia. Ad esempio, un algoritmo di tipo one-hot encoding avrebbe richiesto il calcolo di tutte le possibili combinazioni per mantenere la possibilit? della scelta multipla. Un algoritmo to-categorical standard-scaler avrebbe avuto lo stesso problema per mantenere la scelta multipla delle caratteristiche oltre che avrebbe portato una gerarchia intrinseca ai valori della variabile (1-2-3 etc.). Infine, anche l?utilizzo di un algoritmo to-categorical come processo di tokenizzazione per uno strato di embedding non avrebbe permesso un?inizializzazione ponderata dello stesso, quindi sarebbe stato inizializzato in maniera semi casuale ma comunque in maniera non adatta per rappresentare la caratteristica dell?utente.
Rete neurale di predizione
La Fig.2 mostra mediante blocchi funzionali, una forma di realizzazione preferita in cui ? utilizzato l?algoritmo di decodifica delle caratteristiche utente come strato interposto tra le caratteristiche di un utente e la rete neurale di predizione della categoria di appartenenza delle e-mail.
Dette predizioni sono determinate relazionando il contesto del testo della e-mail (ad esempio: il suo contenuto, la lingua utilizzata per comporre il messaggio, gli attributi dell?e-mail) alle caratteristiche di uno specifico utente che ha ricevuto l?email allo scopo di riuscire ad effettuare una predizione di categoria che, per una medesima e-mail, potrebbe ricevere una predizione di categoria differente rispetto a due diversi utenti con una configurazione delle caratteristiche utente diversa.
La trattazione del testo ? una parte necessaria a capire il significato della e-mail, ma la parte rilevante ? che il fatto che il testo viene pesato in funzione delle caratteristiche dell'utente e di come vuole che venga catalogato riuscendo cos? a gestire una pluralit? di utenti con un?unica rete neurale.
Come visibile da Fig.2 la rete neurale ? sviluppata secondo due blocchi paralleli che contribuiscono alla fase di predizione della categoria: un primo blocco relativo alle caratteristiche dell?utente ed un secondo blocco relativo al modello linguistico.
In Fig.2 il blocco di sinistra rappresenta il modello di rappresentazione utente il cui compito ? quello di tradurre le caratteristiche dell?utente in valori numerici gestibili dalla rete neurale per mezzo di un algoritmo di decodifica. L?input di questo blocco sono le preferenze configurate dall?utente (ad esempio il numero di cartelle definite dall?utente, il provider della casella di posta elettronica, la scala di priorit? di tipo ascendente/discendente, etc.) mentre l?output sar? costituito da un insieme di caratteristiche relative all?utente che saranno gestite in fase di predizione come parametri di configurazione utente.
Il blocco di destra rappresenta invece modello linguistico il cui compito ? quello di trattare il testo della e-mail (sia l?oggetto che il corpo del messaggio) allo scopo di rilevare il significato della e-mail stessa. L?input di questo blocco sono l?oggetto ed il corpo della mail da analizzare mentre l?output sar? costituito da un insieme di caratteristiche relative alla email che saranno gestite in fase di predizione come parametri relativi alle caratteristiche della e-mail.
Entrambi i blocchi saranno descritti in modo dettagliato nel seguito.
L? insieme delle caratteristiche individuate dai due blocchi sono utilizzate nel processo di predizione dove passeranno attraverso una rete densa il cui l?ultimo strato ? quello di classificazione e la cui uscita rappresenta la classificazione diretta dell'e-mail.
Secondo una forma di realizzazione preferita la classificazione diretta dell?e-mail ? realizzata con un modello in grado di effettuare una predizione di percentuale di rilevanza. Infatti, passando ad un modello che predice la percentuale di rilevanza della e-mail, anzich? la sua classificazione diretta, l?uscita del modello ? unica il cui valore pu? essere espresso mediante un valore tra 0 e 1 o in termini percentuali con un valore compreso tra 0% e 100%. Il modello a predizione di percentuale fornisce la percentuale di rilevanza a cui segue una fase di calcolo che mette in relazione il numero di etichette disponibili, per quel dato utente, con la percentuale in uscita dal modello in modo da consentire di definire l?etichetta, pi? adatta per l?utente, da associare all?e-mail. Pi? in particolare la decodifica in categorie e-mail, a partire dall?uscita del modello, ? effettuata per mezzo di due algoritmi differenti a seconda che l?utente abbia scelto una scala di priorit? crescente (dove ad esempio il valore 1 rappresenta messaggi considerati spam e il valore 5 rappresenta un messaggio a priorit? critica) o una scala di priorit? decrescente (dove ad esempio in tal caso il valore 1 rappresenta un messaggio a priorit? critica mentre il valore 5 rappresenta un messaggio considerato spam).
Il risultato di quest?operazione restituisce la cartella a cui l?e-mail dovr? essere attribuita all?interno della casella utente.
Pertanto, il numero di cartelle dell?utente date come input diventa superfluo e potr? essere rimosso ottimizzando il costo computazionale del modello.
In caso di scala crescente la categoria predetta sar? individuata come 1 (il valore in uscita dal modello * indice_massimo_priorit?).
In caso di scala decrescente la categoria predetta sar? individuata come 1 indice_massimo_priorit? - (output_rete * indice_massimo_priorit?).
Per indice massimo di priorit? si intende il numero di priorit? disponibili, legate alla scelta di numero di categorie effettuata dall?utente in fase di inizializzazione, su base 0.
Ad esempio, se un utente, in fase di configurazione, ha indicato di voler utilizzare 5 categorie, i suddetti algoritmi considereranno 5 priorit? disponibili, con un indice_massimo_priorit? = 4.
Un primo esempio di calcolo effettuato dall?algoritmo di classificazione per un utente che abbia scelto di utilizzare 5 categorie con una scala crescente di priorit? e ad esempio un valore d?uscita dal modello pari a 0,73 ?:
1 (0,73 * 4) = 3,92.
L?algoritmo effettua inoltre un arrotondamento al valore intero pi? vicino e, di conseguenza, l?e-mail verr? associata alla quarta categoria delle 5 disponibili.
Un secondo esempio di calcolo in cui il numero di categorie e la scala di priorit? sono le medesime dell?esempio precedente mentre invece il valore d?uscita dal modello sar? pari a 1 ?:
1 (1 * 4) = 5.
L?algoritmo in questo caso assegner? l?email alla quinta categoria.
Un terzo esempio di calcolo effettuato dall?algoritmo di classificazione per un utente che abbia scelto di utilizzare 5 categorie con una scala decrescente di priorit? e un valore d?uscita dal modello pari a 0,73 ?:
1 4 ? (0,73 * 4) = 2,08.
L?algoritmo effettua anche in questo caso un arrotondamento al valore intero pi? vicino e, di conseguenza, l?e-mail verr? associata alla seconda categoria delle 5 disponibili.
Infine, un quarto esempio di calcolo in cui il numero di categorie e la scala di priorit? sono le medesime del terzo esempio mentre invece il valore d?uscita dal modello sar? pari a 1 ?:
1 4 ? (1 * 4) = 1.
L?algoritmo in questo caso assegner? l?e-mail alla prima categoria.
Confrontando gli errori di classificazione emersi dal modello multi-categoriale con gli errori emersi dal modello predizione di percentuale di rilevanza ? emerso che per la classificazione multicategoriale una classificazione errata pu? essere ricadere anche su molto distante dalla categoria corretta (ad esempio 1 invece che 5) mentre nel caso del modello a percentuale di rilevanza l?errore ricade nelle immediate vicinanze della categoria corretta (ad esempio 3 invece che 4. Nell?immagine sotto sono rappresentati i risultati in valori assoluti e percentuali di accuratezza; a sx ? rappresentato il modello percentuale (rosso in immagine) mentre a dx il modello categoriale (viola in immagine). Si nota infatti che nel modello percentuale la distribuzione delle classificazioni errate ? concentrata nelle immediate vicinanze della categoria corretta.
Il passaggio da una classificazione multi-categoriale a una classificazione percentuale consente inoltre di effettuare una predizione oggettiva trattando il concetto di massima e minima rilevanza. Ad esempio, una violazione della sicurezza, a prescindere dal numero di categorie disponibili per ogni utente, avr? sempre una rilevanza massima. Inoltre, un modello a predizione di percentuale permette all'utente di scegliere la scala di classificazione (ascendente o discendente ragionando in termini di priorit?) e consente inoltre di modificare il numero di cartelle configurate all'interno della propria casella di posta senza che il modello venga inficiato in termini di predizione da questa scelta.
A valle del processo di predizione della categoria un processo di generazione delle cartelle/etichette si occuper? di allineare la casella dell?utente fornendo le necessarie istruzioni per catalogare ed archiviare le e-mail processate.
Questa interazione con il provider della casella di posta elettronica ? realizzata mediante sotto processi a seconda della tipologia a cui appartiene il provider di posta elettronica.
Una prima tipologia che prevede un accesso esclusivamente mediante delle API (Application Programming Interface, ovvero un insieme di funzionalit? che consentono a terze parti di interagire con prodotti e/o servizi altrimenti inaccessibili) per la gestione della casella di posta.
Una seconda tipologia che consente una gestione tramite i protocolli IMAP per i quali ? possibile una connessione diretta attraverso la quale ? possibile utilizzare i comandi di gestione all?interno di un account di posta elettronica.
Modello caratteristiche utente
Come mostrato in Fig.2, il primo blocco che contribuisce alla fase di predizione della categoria ? il blocco relativo alle caratteristiche dell?utente dato che la classificazione dell?email deve avvenire secondo le caratteristiche del testo in relazione per? ad uno specifico utente che ha ricevuto tale email. Pertanto, la rete neurale gestisce e considera all?interno del processo di predizione le caratteristiche che l?utente dichiara in fase iniziale.
Questo adattamento dinamico della predizione della categoria di appartenenza di un?e-mail per un determinato utente ? possibile grazie alla realizzazione di una profilazione dell?utente stesso. La profilazione consente all?utente di configurare le proprie preferenze con la massima flessibilit? attraverso una scelta, per ogni preferenza, del valore che identifica il proprio contesto tra una pluralit? di valori presenti in un elenco predeterminato, eventualmente anche mediante una scelta multipla quando non ? possibile definire una preferenza per mezzo di un unico valore, per ogni caratteristica.
Ad esempio, in un contesto aziendale, l?utente pu? non possedere una figura aziendale univoca poich? svolge sia mansioni di tipo impiegatizio che di tipo manageriale.
Un secondo esempio, sempre legato ad un contesto aziendale, pu? riguardare le funzioni aziendali qualora le attivit? svolte dall?utente potrebbero ricadere sia nella gestione del personale che in quelle di amministrazione.
Per consentire all?utente la massima flessibilit? possibile nell?inserire pi? valori per una stessa caratteristica, nel caso in cui non ? possibile effettuare una selezione univoca, un algoritmo di decodifica dedicato si interpone tra le caratteristiche dell?utente e la rete neurale vera e propria. Tale algoritmo svolge una funzione di mappatura delle caratteristiche dell?utente espresse come parametri in formato testuale in valori numerici utilizzabili da una rete neurale. L? algoritmo di decodifica dedicato permette di mappare le caratteristiche testuali selezionate dall'utente in fase di inizializzazione e tradurle in valori comprensibili da una rete neurale senza che detta rete debba effettuare operazioni preliminari legate ad una fase di addestramento per il corretto riconoscimento delle possibili combinazioni delle preferenze per un determinato utente. Con riferimento all?esempio descritto in precedenza, il caso di un utente con una figura aziendale ibrida e non univoca, questo algoritmo consente all?utente di inserire entrambe le figure aziendali che ricopre (quella impiegatizia e quella manageriale) durante la fase di configurazione delle proprie preferenze dato che sar? poi proprio compito dell?algoritmo tradurle in una caratteristica univoca per il modello di rete neurale di gestione delle caratteristiche utente.
Inoltre, la possibilit? da parte dell?utente di definire una pluralit? di caratteristiche tramite una scelta multipla di valori permette di raggiungere come risultato una maggiore flessibilit? nell?adattarsi in modo pi? preciso al contesto utente gi? durante una fase di prima classificazione, senza quindi la necessit? di effettuare un addestramento per il particolare utente. Questo accorgimento permette di aumentare notevolmente il livello di accuratezza della predizione. Di contro, l?assenza di un tale algoritmo sarebbe penalizzante per due motivi. In primo luogo, obbligherebbe l?utente a poter inserire un solo valore per ogni caratteristica non consentendo una modellazione che rispecchi il contesto reale dell?utente. In secondo luogo, qualora si trovi anche un modo alternativo per inserire in fase di inizializzazione dei valori multipli per delineare le caratteristiche di un utente, la predizione dovrebbe tenere conto di tutte le possibili combinazioni per riuscire a mappare correttamente detto caso da cui ne consegue che un tale tipo di processo sarebbe decisamente costoso e poco efficiente.
L?algoritmo di decodifica quindi (hard-coded on top alla rete neurale) consente di gestire queste tipologie di caratteristiche in modo tale da riuscire a tradurre i valori multipli di queste caratteristiche vettoriali inserite dall?utente in un ingresso comprensibile alla rete neurale stessa.
Questi valori vettoriali vengono scritti in uno strato di embedding, dove a differenza del modulo linguistico in cui lo strato di embedding ? condiviso, qui ogni caratteristica ? gestita in modo indipendente mediante un proprio strato di embedding. Questo consente di mantenere la flessibilit? del modello e un livello di accuratezza elevato, dato che in fase di addestramento ogni caratteristica, essendo proiettata in un proprio spazio vettoriale a s? stante, pu? essere variata in maniera indipendente l'una dall' altra. Pertanto, la rete neurale ha la possibilit? di spostare le caratteristiche in una qualunque posizione del piano e con un qualunque spostamento che ritiene necessario per arrivare alla predizione corretta. Inoltre, dette caratteristiche indipendenti consentono di avere un modello altamente flessibile dal momento che in questo modo ? possibile aumentare il numero delle caratteristiche mappate senza impattare sull?architettura complessiva del modello o inficiarne la memoria fino a quel momento allenata.
Un?ulteriore caratteristica in input per il modello delle caratteristiche utente ? il numero di cartelle/etichette che l'utente desidera gestire nella propria casella di posta elettronica in modo tale che la rete neurale consideri questa informazione nella fase di predizione.
Come descritto in precedenza questo tipo di informazione ? rilevante nel momento in cui la predizione determina direttamente la categoria di appartenenza dell?e-mail dato che il numero di etichette disponibili nella casella dell?utente contribuisce a dare un peso alla predizione. Viceversa, diventa poco significativo in un modello a predizione di percentuale secondo le considerazioni gi? effettuate.
Una volta che il modello delle caratteristiche utente ha elaborato ogni ingresso, l'output di ogni ramo della rete ? concatenato l'uno con l'altro per mantenere elevata l?accuratezza della predizione. Le operazioni di concatenazione consentono di preservare le caratteristiche rilevate. Si consideri ad esempio un primo gruppo di pipeline che individua prime caratteristiche [1,2,3] mentre un secondo gruppo di pipeline individua seconde caratteristiche [3,2,1]. L?operazione di concatenazione produce come risultato [1,2,3,3,2,1]. Altre operazioni effettuate sulle caratteristiche rilevate, come ad esempio l?operazione di somma, produrrebbe come risultato [4,4,4]. Sebbene il risultato dell?operazione di somma permetta di ridurre il numero di parametri da 6 a 3, questo non ? pi? univocamente associato alle caratteristiche rilevate dato che altre possibili combinazioni di valori possono condurre allo stesso risultato.
Modello linguistico
La Fig.3 mostra una rappresentazione schematica del modello linguistico.
In particolare, il modello linguistico prende in esame una parte dell'oggetto della e-mail e una parte del testo (snippet). Questa scelta permette di ottenere un equilibrio fra l'accuratezza del modello linguistico e il costo computazionale di addestramento del modello, aumentando l'efficienza del modello stesso, e garantendo allo stesso tempo un elevato livello di privacy agli utenti oltre alla caratteristica che i dati non siano persistenti.
Secondo una forma di realizzazione preferita la lunghezza del testo appartenente all?oggetto della e-mail preso in esame ? al pi? di 30 parole mentre la lunghezza del testo appartenente al corpo del messaggio ? al pi? lungo 70 parole.
Secondo una forma di realizzazione l?oggetto ed il testo della e-mail sono trattati separatamente al fine di rilevare le loro caratteristiche indipendentemente l?uno dall?altro.
L?oggetto e il corpo della e-mail sono rispettivamente indirizzati verso un proprio algoritmo di pre-processing che ha il compito di analizzare il testo, pulirlo dalle sue parti superflue e convertire ogni parola in un token. Per parola si intende qualunque stringa che sia circondata da spazi, non necessariamente una parola di senso compiuto. Un token ? un numero progressivo che viene associato ad ogni parola. Il processo di tokenizzazione considera l?intera parola e laddove questa non esista ? associato il token zero (0). Si ha quindi una relazione 1:1 tra una particolare parola ed il numero che la rappresenta.
Secondo un?altra forma di realizzazione il processo di tokenizzazione suddivide la parola in pi? parti consentendo di mappare con un token anche le parti di una parola se questa esiste nel vocabolario, (WordPieceTokenizer), permettendo di aumentare la precisione dei punti nello spazio vettoriale.
Il risultato ottenuto dagli algoritmi di pre-processing (dell?oggetto e del testo della e-mail) sono l?input di uno stato di embedding condiviso. La soluzione di utilizzare un unico strato condiviso anche in questo caso ? dettato da motivi di efficientamento del costo computazionale. Detto strato di embedding durante la fase di inizializzazione a t0 ? valorizzato in maniera randomica in modo standard e uniforme.
Il compito dello strato di embedding ? di rappresentare ogni parola trattata dall?algoritmo di pre-processing come un vettore multidimensionale. La posizione delle parole all?interno del piano vettoriale ? in funzione di quanto il suo significato ? simile rispetto alle altre parole che la circondano. In questo modo ? possibile associare un concetto di similarit? semantica tra le parole, che sono quindi rappresentate come un insieme di numeri (le sue coordinate). Con questa conversione ? quindi possibile gestire un testo come input di una rete neurale. Il significato di ogni parola viene dedotto in funzione del contesto in cui la parola si trova, cio? rispetto alle parole che la circondano all?interno di una frase.
La Fig.4 mostra una rappresentazione esemplificativa del processo di tokenizzazione e di embedding del modulo linguistico di Fig.3.
In particolare, nella parte sinistra della figura ? rappresentato un esempio di tokenizzazione, ovvero l?associazione di un numero progressivo per ogni parola tra quelle rimanenti dopo le fasi di analisi e pulizia. Alcuni esempi di operazioni comprese nelle fasi di pulizia e analisi sono ad esempio la rimozione delle parole inutili (stop-words), della punteggiatura, e la conversione di una parola nella sua forma base (stemming). Al centro della figura ? mostrato lo schema di ebbendding effettuato nel relativo strato di embedding condiviso del modulo linguistico per le parole analizzate che produrranno come output, nella parte destra della figura, l?insieme dei numeri che rappresentano la similarit? semantica per detta parola tokenizzata.
L'output dello strato di embedding, come mostrato in Fig.2, ? collegato a due gruppi di pipeline parallele per il rilevamento delle caratteristiche (feature detection). Un primo gruppo di pipeline gestisce il rilevamento delle caratteristiche dell'oggetto, mentre un secondo gruppo gestisce il rilevamento delle caratteristiche dello snippet. Ogni gruppo ? costituito da almeno 2 pipeline (potenzialmente da 2 a n) di filtri convoluzionali, ognuno dei quali ha un grado diverso di risoluzione del rilevamento delle caratteristiche.
L?output di ogni gruppo di pipeline ? concatenato l?uno all?altro per preservare ogni caratteristica individuata. L?output dei due gruppi di pipeline ? ulteriormente concatenato per le medesime considerazioni di efficientamento descritte per il modulo delle caratteristiche utente. Questo strato denso di caratteristiche rappresenta l'output del modello linguistico che sar? successivamente concatenato all'output del modello che tratta le caratteristiche utente ed entrambi andranno a l?ingresso della rete densa il cui ultimo strato determina la classificazione dell?e-mail, come gi? descritto all?interno della Fig.2.
Secondo una forma di realizzazione, quando in fase di classificazione ? processata una parola che non ? presente nel vocabolario creato fino a quel dato momento, alla parola ? attribuito un id zero (0), a cui corrisponde comunque un vettore nella matrice di embedding. In fase di addestramento del modello linguistico il vocabolario viene sempre aggiornato tenendo conto delle nuove parole.
Modello attributi e-mail
In Fig.5 ? mostrata una forma di realizzazione alternativa in cui ? presente anche un terzo blocco relativo al modello attributi delle e-mail che va ad aggiungersi al blocco relativo al modello linguistico ed al blocco relativo alle caratteristiche dell?utente.
Questo blocco gestisce gli attributi delle e-mail dato che, oltre al blocco del modello linguistico che rileva le caratteristiche del testo, ? necessario rilevare e gestire alcuni attributi della e-mail stessa in modo tale da capire l?importanza che ricopre detta e-mail in relazione al suo contesto. Anche queste caratteristiche saranno gestite in fase di predizione come parametri relativi alle caratteristiche della e-mail.
Gli attributi identificati per assolvere a questo compito sono:
- il mittente;
- l?indicazione che l?utente ? l?unico destinatario della email;
- l?indicazione che l?utente ? tra i destinatari principali; - ?indicazione che l?utente ? tra i destinatari per conoscenza;
- l?indicazione che l?e-mail contiene un allegato
- l?indicazione che l?utente ? nominato esplicitamente nel corpo dell?e-mail;
Secondo un?ulteriore forma preferita della presente invenzione
un ulteriore attributo ? rappresentato dall?indicazione che l?email fa parte di una conversazione oppure ? una e-mail a s? stante.
La scelta di questi ulteriori attributi consente di scendere ad un livello pi? profondo di comprensione del contesto della email mantenendo tuttavia un ottimo bilanciamento del costo computazionale. La gestione dell?attributo relativo al mittente, il limitarsi al dominio dell?e-mail del mittente non avrebbe consentito un?accuratezza tale da discriminare due utenti diversi con lo stesso dominio (aspetto rilevante soprattutto in ambito aziendale dove il dominio ? il medesimo).
Per abbassare il costo computazionale, gli attributi della email sopra elencati, a differenza del mittente che segue un processo differente descritto nel seguito, sono stati riconvertiti per mezzo di un processo di conversione in variabili categoriali binarie. Un esempio di tali valori pu? essere rappresentato con i valori 0 o 1. Ognuna di queste variabili costituisce un ingresso per il modello.
Una volta analizzato il mittente e gli altri attributi dell?email, i singoli output sono concatenati, come avviene per il modello linguistico, sempre allo scopo di mantenere indipendenti tutte le caratteristiche elaborate in modo tale che forniscano un peso specifico e indipendente alla predizione consentendo un?elevata accuratezza.
Il processo di gestione dell?attributo legato al mittente presenta alcune problematiche che non ne consentivano la semplice riconversione in valori numerici binari. Alcune di queste problematiche sono il potenziale elevato numero dei mittenti e l?impossibilit? di attribuire a priori un peso in termini di importanza a un particolare mittente. Si ? reso quindi necessario trovare un diverso modo per gestire un elevato numero di mittenti riuscendo a considerare ognuno di essi in modo indipendente cos? da riuscire ad attribuirgli un peso per la fase di predizione.
Pi? in dettaglio si ? optato per proiettare tramite uno strato di embedding ogni mittente come un punto all?interno di uno spazio vettoriale multidimensionale, dove in fase di inizializzazione al tempo t0 il mittente ? inizializzato in maniera randomica dato che in tale istante non ? possibile conoscere la rilevanza del mittente. Durante la fase di addestramento, lo spazio vettoriale dimensionale permette ai mittenti di spostarsi al suo interno. Infatti, la rete neurale ha la possibilit? di variare liberamente e con un elevato grado di accuratezza le coordinate vettoriali di ogni mittente. In questo modo utenti con e-mail con contesto simile si troveranno ad avere una posizione vicina all?interno dello stesso spazio vettoriale.
Per consentire questi spostamenti, ad ogni mittente viene associato un identificativo univoco (token) che ? un id progressivo che rimane invariato nel tempo a cui corrisponde un punto all?interno dello spazio vettoriale.
Questo consente che il numero di ingressi del modello rimane invariato a prescindere dal numero di mittenti dato che ? costituito da un singolo token (id progressivo) che identifica ogni mittente, mentre il numero di neuroni in output dello strato di embedding ? sempre costante nel tempo e corrisponde alla dimensione dello spazio vettoriale che si ? scelto per rappresentare i mittenti. In secondo luogo, la gestione di questo attributo tramite uno spazio vettoriale consente un elevato grado di accuratezza dato che la rete neurale in fase di addestramento ha la libert? di spostare un punto per la distanza che ritiene necessaria all?interno dello spazio vettoriale.
Secondo una forma di realizzazione alternativa, per mezzo di un apposito algoritmo, ? possibile effettuare l?inizializzazione non pi? in maniera randomica ma per similarit?, considerando ad esempio il dominio. Questo porterebbe dei miglioramenti all?accuratezza in fase di inizializzazione to rispetto ad inizializzazione randomica anche se la sola considerazione del dominio non consente di arrivare ad un elevato grado di accuratezza.
Se, durante la fase di classificazione un utente dovesse ricevere una e-mail da un mittente non ancora mappato in fase di addestramento, a questo mittente viene attribuito un identificativo (token) etichettato come sconosciuto a cui ? associato un punto all?interno dello spazio vettoriale.
La rete neurale considerando che effettua l?analisi del testo dell?e-mail in pi? parti e utilizza ulteriori caratteristiche oltre al mittente riesce a mantenere un elevato grado di accuratezza nonostante la presenza di un token sconosciuto.
Gestione multilingua
In Fig.6 ? mostrata una forma di realizzazione alternativa della rete neurale mostrata in Fig.2 in cui sono presenti una pluralit? di moduli linguistici per la gestione multilingua del testo delle e-mail. In particolare, sono mostrati una pluralit? di moduli linguistici, uno per ogni lingua specifica in grado di gestire la rete neurale, anzich? un unico modulo linguistico.
Questo consente di poter classificare un?e-mail scritta potenzialmente in qualsiasi lingua. La scelta di implementare una pluralit? di moduli linguistici anzich? uno unico universale permette di ottenere un?elevata precisione nel riconoscimento del testo oltre al fatto che una soluzione modulare di questo tipo consente una scalabilit? a livello di soluzione architetturale dato che la gestione di una nuova lingua comporterebbe l?introduzione di un nuovo modulo sull?architettura pre-esistente avviene in modo non impattante in modo del tutto trasparente per gli utenti che non la utilizzerebbero.
Per orientare la gestione di una e-mail verso l?appropriato modulo linguistico si ? reso necessario introdurre a monte della pluralit? di moduli linguistici un sistema di rilevazione automatica della lingua (Neural Languages Recognition System) in grado di indirizzare l?e-mail (oggetto testo) verso uno specifico modello linguistico. Il modello linguistico di riferimento ? individuato in base alle lingue disponibili per un dato utente. Quando il modulo nella lingua corrispondente non ? disponibile (ad esempio quando si riceve una e-mail scritta in cinese e non ? disponibile un modulo linguistico per gestire la lingua cinese) il sistema di rilevamento automatico indirizzer? l?e-mail verso il modulo linguistico relativo alla lingua che l?utente ha definito come lingua principale nella fase di registrazione.
Processo di addestramento
Il processo di addestramento della prima e/o seconda rete neurale pu? essere diviso in quattro fasi, dove le prime due sono necessarie per il corretto funzionamento della rete neurale mentre le successive due servono per ottenere un costante miglioramento on the job.
Le fasi sono:
- il processo di addestramento iniziale e miglioramento dell?accuratezza per il singolo utente;
- il processo di addestramento iniziale e miglioramento dell?accuratezza in gestione multiutente;
- il processo di addestramento on going e miglioramento dell?accuratezza in gestione multilingua;
- il processo di addestramento on going durante la fase di inferenza.
Processo di addestramento iniziale e miglioramento per il singolo utente
Il processo di addestramento iniziale ? stato di tipo incrementale partendo dalla catalogazione manuale da parte di un utente di una casella e-mail iniziando a catalogare una serie di mail storiche e dove l?utente si ? configurato in autonomia il numero di cartelle che riteneva necessario ai fini della catalogazione. L?attivit? di catalogazione prevede un processo di lettura delle e-mail, dove ? stato chiesto all?utente di dare un?importanza all?oggetto e al testo, di effettuare una verifica degli attributi della e-mail e in questo contesto di attribuire una cartella a detta e-mail (simulando pertanto il processo che effettuerebbe l?algoritmo per individuare il contesto e l?importanza della mail stessa). La casella di posta elettronica presa in esame appartiene ad un ambito lavorativo dove le singole e-mail appartengono a differenti contesti. L?utente ? stato libero di agire senza alcun vincolo, schema o requisito particolare come ad esempio quello di effettuare un bilanciamento fra le cartelle o contesti e il numero di e-mail che etichettava. Questo perch? lo scopo ? stato quello di non agevolare in alcun modo l?operativit? dell?algoritmo. Al termine di questa attivit? sono state catalogate da un singolo utente circa tremila e-mail che nel contesto dell?utente specifico sono equivalse dieci giornate lavorative. La catalogazione di queste e-mail ? servita per effettuare una fase di addestramento supervisionato sulla rete neurale attivando il servizio di classificazione automatica ad addestramento concluso.
Dalle precedenti condizioni iniziali, l?algoritmo ha catalogato ogni nuova e-mail dell?utente, la cui bont? della predizione dipendeva fortemente dal contesto della e-mail. Quando la e-mail ricadeva in un di e-mail precedentemente catalogate manualmente dall?utente il risultato della classificazione era corretta, viceversa veniva predetta una classificazione errata. Le predizioni errate sono state successivamente ricatalogate manualmente dall?utente. Parallelamente alla fase di predizione e catalogazione delle e-mail in tempo reale, pi? volte al giorno ? stato effettuato un addestramento della rete prendendo in esame l?intera casella e-mail dell?utente contenente le e-mail classificate (sia manualmente che dall?algoritmo). Al termine di ogni ciclo di addestramento, il servizio di classificazione comunica al servizio di predizione la disponibilit? di un modello aggiornato e in questo caso il servizio di predizione/catalogazione instanziava immediatamente il nuovo modello utilizzando quindi i pesi aggiornati. L?iterazione continua di queste fasi pi? volte al giorno nel corso dell?addestramento ha permesso alla rete neurale di aumentare la qualit? dei risultati forniti dal modello linguistico e parallelamente di pesare il contesto di ogni singola e-mail per quel particolare utente migliorando l?accuratezza del modello in breve tempo.
Processo di addestramento iniziale e miglioramento in gestione multiutente
Raggiunto un livello di accuratezza pari al 98% per il singolo utente, ? stato chiesto ad un secondo utente con un contesto differente dall?utente precedente di procedere con un?attivit? di catalogazione delle proprie e-mail all?interno di un account di posta elettronica allo scopo di riuscire ad effettuare delle predizioni accurate per utenti provenienti da contesti diversi. Tuttavia, in questo secondo caso all?utente non ? stato chiesto di effettuare alcuna catalogazione manuale delle proprie e-mail ma unicamente di configurare un numero di categorie maggiore o minore rispetto a quelle dell?utente precedente, dove la scelta del numero di categorie era comunque libera ed arbitraria.
Alla rete neurale sono state veicolate le caratteristiche del secondo utente con i metodi descritti in precedenza e sono decodificate le sue caratteristiche con l?algoritmo hard-coded come previsto dal processo.
In fase iniziale la rete neurale aveva un?inizializzazione standard delle caratteristiche dell?utente, non un?inizializzazione casuale. Mixando questo tipo di logica con un modello linguistico pre-addestrato sulla base del primo utente, la qualit? della predizione riscontrata inizialmente non ? stata allo stesso livello dell?utente iniziale (98%), ma comunque abbastanza soddisfacente (circa 84%) considerando il fatto che gli utenti provenivano da contesti professionali diversi, che avevano soltanto alcuni attributi in comune e che il secondo utente non ? stata effettuata una fase di addestramento supervisionato. Si ? comunque rilevato uno dei comportamenti desiderati nella fase di predizione, ovvero che una e-mail di un particolare mittente inviata ad entrambi gli utenti processati fornisse classificazioni diverse, anche se per il secondo utente non si trattava di quella ottimale a causa della mancanza dell?addestramento.
Il processo per aumentare l?accuratezza multiutente, prevede una fase di addestramento completa, ovvero effettuata pi? volte al giorno per un determinato periodo venivano considerate tutte le email classificate degli utenti all?interno del dataset utilizzato per l?addestramento. Come per il caso del singolo utente, quando la classificazione risultava errata o non ottimale, all?utente veniva richiesto di ricatalogarle manualmente all?interno della propria casella di posta.
L?iterazione di questo processo per un determinato periodo ha portato la rete neurale creare un?accurata rappresentazione vettoriale delle caratteristiche utente e dei mittenti, oltre che continuare a migliorare il modello linguistico portando ad un aumento dell?accuratezza complessiva maggiore di quella rilevata per il singolo utente.
Processo di addestramento on going nella gestione del multilingua
In questa fase si ? voluto sfruttare al massimo il processo di addestramento senza doverlo compartimentare in funzione del modello linguistico da utilizzare, allo scopo che ogni utente possa sempre contribuire all?addestramento dell?intero servizio di predizione. Per fare ci? ? stato implementato un processo di addestramento incrociato rispetto alle lingue mediante un processo on-going che avviene solo nella fase di messa in produzione.
Nella fase di messa in produzione, durante una finestra di addestramento, le parti di e-mail prese in esame scritte in una particolare lingua, vengono tradotte in tempo reale in tutte le lingue configurate in quel momento ed ognuna di esse contribuir? ad allenare il modello linguistico della propria lingua di riferimento. In questo modo si ottiene una rete in grado di rilevare le caratteristiche di una e-mail parallelamente su lingue differenti.
Pi? in dettaglio, ? stato sviluppato un motore di traduzione neurale (Neural Translate Engine) che ha il compito di tradurre in tempo reale l?e-mail da processare e fornirla come input a tutti i modelli linguistici in modo da addestrarli tutti parallelamente ottenendo la possibilit? di riuscire a rilevare e gestire il contesto di una e-mail in maniera totalmente indipendente rispetto alla lingua con cui ? scritta.
Quindi porta al beneficio che, se per esempio un utente U1 riceve una e-mail scritta in una lingua L1 ed appartenente ad un contesto C, quando un utente U2 con caratteristiche simili ad U1 riceve per la prima volta una e-mail con contesto rilevato simile a C, ma scritta in una lingua L2 differente da L1, ricever? una classificazione corretta, nonostante questo tipo di e-mail non sia stato oggetto di addestramento per l?utente U2.
Processo di addestramento on going durante la fase di inferenza della rete
Con riferimento alla fase di inferenza della rete neurale, per ovviare a problemi legati alla privacy degli utenti evitando che siano salvati modo persistente delle informazioni e ai problemi di scalabilit? della soluzione qualora si continuasse ad usare i data set completi per l?addestramento con relativo aumento dei costi computazionali e del tempo necessario all?addestramento, l?addestramento continuo ? effettuato quotidianamente con un subset contenente le e-mail gi? lette di ogni utente tra un ciclo di addestramento ed il successivo allo scopo di aumentare l?accuratezza e la capacit? di predizione della rete neurale in maniera incrementale con il passare del tempo, mantenendo costante il tempo di addestramento e il costo computazionale.
Per poter comunque effettuare l?addestramento, ? necessario avere a disposizione un numero minimo complessivo di e-mail tra un ciclo e l?altro. Nel caso in cui le e-mail lette all?interno di un ciclo di addestramento non siano sufficienti, l?addestramento ? rinviato ad una finestra successiva. A regime, l?intervallo dei cicli di addestramento ? in relazione al numero di utenti che utilizzeranno il servizio. Inizialmente con pochi utenti si avranno cicli giornalieri, ma a regime con un numero di utenti maggiore ? possibile ridurre la finestra di addestramento anche a solo qualche ora tra un ciclo e l?altro. Idealmente, si potrebbe raggiungere un servizio di addestramento completamente parallelo rispetto al servizio di predizione dove la rete imparer? constatemene dalle e-mail appena lette dagli utenti cosicch? la rete avr? la capacit? di adattarsi istantaneamente al cambio di contesto dell?utente, come ad esempio una variazione delle caratteristiche di un utente o riclassificazione di alcune e-mail.
Schema architetturale
In Fig.7 ? mostrato uno schema architetturale della presente invenzione sviluppata secondo un?architettura Cloud Native in modo da essere scalabile sia in funzione del carico sia in funzione di future implementazioni. Inoltre, proprio per la natura del servizio che offre, deve essere altamente disponibile e affidabile al fine di garantire una continuit? di business.
Questa architettura consente di non essere limitato ad uno specifico provider e-mail, ma di riuscire ad adattarsi alla gestione e al funzionamento implementata da ogni provider.
L?architettura ? formata da una rete di micro-servizi, ognuno sviluppato per svolgere un compito (task) ben preciso. I microservizi possono essere divisi in due macrocategorie:
- Micro-servizi di front-end;
- Micro-servizi di servizio
A prescindere dalla loro categorizzazione, tutti hanno in comune il fatto che vivono ed operano parallelamente. Inoltre, per garantire la massima affidabilit? possibile, ogni micro-servizio ? replicato almeno due volte, ed ognuno risiede in una regione di disponibilit? (server-farm) differente.
I micro-servizi per front-end gestiscono l?interazione con l?utente tramite sito web e app mobile, utile per la registrazione e gestione del proprio account di servizio.
La differenza tra sito web ed app mobile ? che mentre il sito web crea direttamente l?output sia grafico che con i dati da database alla richiesta utente, l?applicazione mobile ha gi? al suo interno la parte grafica e utilizza chiamate API per recuperare i dati a database. Entrambi i servizi interagiscono con il database nel quale sono salvate alcune informazioni dell?utente come l?anagrafica o le sue caratteristiche testuali.
Il linguaggio di programmazione utilizzato per lo sviluppo di questi servizi ? principalmente Java script, utilizzando Nodejs come back-end.
Come per i micro-servizi, anche il database ? in cloud ed anch?esso ? replicato almeno due volte, dove uno consente sia la lettura che la scrittura, mentre le repliche permettono ai microservizi solo la lettura delle informazioni al loro interno allo scopo di preservare la consistenza dei dati.
I micro-servizi di servizio a loro volta possono essere categorizzati in interni ed esterni.
I micro-servizi di servizio interni gestiscono i task in maniera trasparente all?utente e servono generalmente per l?inizializzazione delle caratteristiche utente, per produrre la classificazione delle e-mail e l?addestramento del modello. La loro orchestrazione ? demandata a un servizio centrale di gestione delle code che incanala ogni task al micro-servizio pi? adatto che in quel momento ? in grado gestirlo al meglio. Una volta che il task ? stato eseguito viene notificato al gestore delle code che il risultato dell?elaborazione ? terminato e questo passa al chiamante quel risultato.
I micro-servizi di servizio esterni invece notificano e interagisco con l?utente, principalmente per leggere le e-mail e visualizzare il risultato dell?elaborazione.
Sempre a garanzia dell?affidabilit? e dell?efficienza, sia il gestore delle code che ogni micro-servizio ? replicato almeno due volte, inoltre viene garantito il fatto che ognuna viene istanziata in una server-farm differente.
I micro-servizi di servizio interni, nel dettaglio, per ogni task esiste un micro-servizio principale che riceve e rimanda le informazioni al gestore delle code. Una volta che arriva un task ad uno di questi micro-servizi il gestore lo incanala ad uno dei suoi micro-servizi figli (almeno due). La scelta ? automatica ed ? in funzione della disponibilit? e del carico presente in ogni figlio.
Per garantirne l?agilit? nella gestione e la privacy degli utenti, nessun micro-servizio salva dati in maniera persistente. Infatti, nel caso in cui un micro-servizio si blocchi verrebbe terminato all?istante ed al suo posto ne verrebbe generato uno nuovo. Cos? facendo il task non sarebbe stato concluso e i dati processati saranno persi. Di conseguenza il processo verr? ripetuto partendo dall?inizio, con la lettura delle e-mail nella casella utente con il ciclo successivo. In questo modo appunto nessuna e-mail ha necessit? di essere salvata a database.
I micro-servizi di servizio sono scritti principalmente in Python.
Per quanto riguarda nel dettaglio il processo di classificazione delle e-mail, non essendoci un sistema di comunicazione integrata con i Provider delle caselle di posta elettronica, non ? possibile sapere in tempo reale quando un utente riceve una nuova e-mail da classificare. Per questo motivo la casella di posta elettronica dell?utente viene letta in maniera ciclica da un particolare micro-servizio con un intervallo che pu? andare da qualche secondo a qualche minuto.
Essendoci due macrocategorie di provider e-mail, esistono due categorie di micro-servizi per gestire questo compito, uno per l?interazione tramite API, l?altro per l?interazione tramite IMAP. La finestra di tempo che intercorre tra una lettura della casella e-mail e l?altra ? in funzione di alcune metriche che vengono storicizzate, come ad esempio il numero di e-mail che statisticamente un particolare utente riceve tra un ciclo e l?altro. Questo permette di prevedere ogni quanto l?utente mediamente riceve una nuova e-mail, regolando di conseguenza l?interrogazione verso la sua casella e rendendo quindi il sistema pi? efficiente. Quando il micro-servizio ha rilevato e letto delle nuove e-mail, queste vengono passate in-memory tramite il gestore di code al servizio che gestisce la pulizia e tokenizzazione del testo. I dati di testo in chiaro vengono quindi eliminati, sostituendo ad ogni e-mail i relativi token di testo.
Una volta terminata la parte di pre-processing viene eseguita la parte di predizione, considerando la lingua rilevate e agli attributi della e-mail. Per quanto riguarda le caratteristiche utente all?interno della rete sono gi? presenti nel modello adibito a questo scopo. Una volta eseguita la predizione dal microservizio, viene invocato il servizio di classificazione che rilever? la categoria corretta in funzione della predizione e interagisce con la casella di posta dell?utente per etichettare o spostare l?e-mail nella relativa categoria. Come per la lettura dell?e-mail anche questo ? in funzione del tipo di provider.
Esistono quindi due diverse categorie di micro-servizio che hanno lo scopo di classificare l?e-mail, uno per l?interazione tramite API, l?altro tramite IMAP. Questo servizio inoltre verifica nel database se esiste qualche dispositivo per la quale l?utente vuole ricevere una notifica. Una volta rilevata la categoria pi? appropriata quindi, se esiste la necessit? di notificare all?utente una o pi? e-mail rilevanti, questo microservizio invocher? quello con il compito di gestire le notifiche. In questo caso l?invio delle notifiche ? gestito da un servizio di terze parti. Il micro-servizio con il compito di gestire l?invio delle notifiche invier? la richiesta al servizio terze parti, passando il corpo della notifica e l?id del dispositivo su cui inviarla, ed attender? l?esito dell?invio da parte del servizio di notifiche.
Gestione delle notifiche
Per quanto riguarda la gestione delle notifiche, ? usato un sistema centrale di dispaccio verso i dispositivi utente. Nel dettaglio, ogni volta che l?utente si autentica tramite un dispositivo mobile, viene salvato l?identificativo univoco del dispositivo a cui poi viene successivamente inviata la tipologia di notifiche da gestire su quel particolare dispositivo. Una volta avvenuta la predizione e la classificazione, all?interno della casella di posta dell?utente, laddove ci sia almeno un dispositivo che ne richiede la notifica, verr? inviato un messaggio a questo servizio centralizzato passando i riferimenti del dispositivo da notificare e il corpo della notifica da inviare. Il servizio centrale invier? la notifica richiesta con una priorit? massima.
Il concetto di priorit? ? necessario per poter gestire la coda di notifiche ancora da processare. Essendo un sistema di terze parti, questo tipo di parametro ? obbligatorio e serve per far discriminare il life-time che la notifica deve avere.
Una volta che la notifica viene recapitata e ricevuta dal dispositivo, l?utente interagendo con essa, ha la possibilit? di essere reindirizzato alla casella di posta dell?utente oppure direttamente sulla specifica e-mail notificata oppure ancora sulla cartella. Resta in carico all?utente la capacit? di personalizzare la notifica secondo quanto consente il dispositivo (esempio suoneria, vibrazione, grafica, etc.).
La possibilit? di poter ricevere notifiche su un qualsiasi dispositivo rende il dispositivo a sua volta integrabile con altri sistemi. Ad esempio, ? possibile predisporre delle integrazioni con servizi come IFTTT in modo da poter poi notificare tramite Virtual Home Assistant e simili.
Test comparativi
La Fig.8 mostra dei test comparativi fra il metodo oggetto dell?invenzione e alcune alternative disponibili. In particolare, la modifica dei parametri non riguarda gli strati di embedding. Infatti, aumentando la dimensione degli strati di embedding il modello aumenter? il numero complessivo di parametri che risulta ininfluente ai fini della comparazione.
Per la comparazione sono stati variati il numero di parametri e l'architettura del blocco linguistico e dei blocchi di gestione utente e attributi della mail a valle degli strati di embedding.
Il test ? stato effettuato con una scheda grafica GeForce RTX 2080 Super with Max-Q Design 8GB.
In sintesi, il metodo della presente invenzione, evidenziato in grigio, ? paragonato con un metodo basato su un classificatore di testo base, senza blocchi di gestione delle caratteristiche utente ed attributi delle e-mail, due ulteriori alternative e, per ciascuna, due diverse quantit? di rilevatori di caratteristiche; e un metodo in cui il modello linguistico illustrato in precedenza ? sostituito con l?algoritmo neurale BERT reso accessibile da Google Inc.
Inoltre, con riferimento all?alternativa comparativa basata su un classificatore di testo base, tale modello non gestisce le caratteristiche utente, quindi sarebbe necessario un preaddestramento perch? un utente appena registrato possa beneficiare subito del servizio.
In aggiunta, con riferimento all?alternativa comparativa BeC BERT, l'architettura del modello linguistico di BeC ? stata completamente sostituita dal modello BERT di Google. Restano invariati il modello della gestione degli attributi e-mail e gestione caratteristiche utente. Inoltre, BERT ha richiesto una modifica del BATCH_SIZE originale in quanto mandava in out-ofmemory la GPU.
In Fig.9 sono mostrati dei risultati comparativi tra il modello di classificazione categoriale (a destra) ed il modello di classificazione percentuale (a sinistra). Pi? in particolare la figura mostra una matrice di verit? per entrambi i metodi dove sulle ascisse sono rappresentati i valori di categoria predetti mentre sulle ordinate sono rappresentati i valori di categoria reali.
Nel caso di classificazione categoriale, una classificazione errata pu? risultare anche molto distante dalla categoria corretta, ad esempio predicendo l?appartenenza alla categoria 1 quando invece la categoria corretta ? la 5, come evidenziato nel riquadro della matrice in alto a destra di Fig.9.
Nel caso di classificazione percentuale, una classificazione errata pu? risultare nell?immediato intorno della categoria corretta, ad esempio predicendo l?appartenenza alla categoria 3 quando la categoria corretta ? invece la 4, come evidenziato nel riquadro della matrice in alto a sinistra di Fig. 9.

Claims (10)

RIVENDICAZIONI
1. Un metodo implementato al computer per classificare ed archiviare le e-mail secondo un profilo utente comprendente le fasi di:
- acquisire uno o pi? parametri di configurazione utente sotto forma di valori vettoriali ottenuti mediante una funzione di mappatura come primi dati di ingresso;
- processare una pluralit? di e-mail da un account utente di posta elettronica;
- acquisire uno o pi? parametri relativi alle caratteristiche dell?e-mail individuati per ognuna delle e-mail processate mediante un algoritmo come secondi dati di ingresso;
- generare, per mezzo di una rete neurale addestrata, una predizione di categoria di appartenenza ed attribuire un?etichetta per ogni e-mail in detta pluralit? di e-mail secondo detti primi e secondi dati di ingresso forniti alla rete neurale;
- fornire al provider dell?account di posta dell?utente le istruzioni per catalogare ed archiviare ogni mail appartenente alla pluralit? di mail processate da detto account di posta;
- visualizzare sullo schermo di un dispositivo intelligente le notifiche di e-mail secondo le categorie definite mediante le preferenze di un utente; e
caratterizzato dal fatto che
il risultato della funzione di mappatura rappresenta la creazione di un profilo utente secondo un modello comprensibile da una rete neurale, determinato sulla base della combinazione di una pluralit? di parametri di configurazione utente, dove la funzione di mappatura ? il risultato ottenuto mediante l?addestramento di una ulteriore rete neurale di mappatura addestrata a riconoscere le possibili combinazioni di detti parametri secondo un criterio di calcolo di un coefficiente di similarit?, senza che si renda necessaria alcuna operazione preliminare o fase di addestramento volta ad estrapolare le informazioni contenute nei parametri utente o ad istruire al riconoscimento di tali parametri come appartenenti ad uno specifico utente.
2. Il metodo secondo la rivendicazione 1 in cui la fase di fornire al provider dell?account di posta dell?utente le istruzioni per catalogare ed archiviare le e-mail avviene sulla base di una priorit? definita dall?utente e assegnata a ciascuna e-mail.
3. Il metodo secondo la rivendicazione 1 in cui il processo di identificazione dei parametri relativi alle caratteristiche utente e l?identificazione dei parametri relativi alle caratteristiche delle e-mail sono processi concorrenti.
4. Il metodo secondo la rivendicazione 1 in cui la fase di generare la predizione di categoria, per mezzo di una rete neurale addestrata, comprende una sottofase di analisi del testo di una e-mail per mezzo di un sistema di rilevamento automatico allo scopo di determinare l?informazione relativa alla lingua utilizzata nella composizione del testo, detta informazione di lingua consentendo di redirigere la mail verso uno specifico modulo linguistico di lingua per generare la predizione di categoria secondo detta lingua.
5. Il metodo secondo la rivendicazione 1 in cui la fase di visualizzare sullo schermo di un dispositivo intelligente la notifica di un?e-mail avviene in modo diverso sulla base della priorit? e delle categorie disponibili definite dall?utente a cui associare ciascuna e-mail.
6. Il metodo secondo la rivendicazione 1 in cui il dispositivo intelligente dotato di schermo ? uno fra un laptop, uno smartphone o un tablet in modo tale che le notifiche possano essere ricevute in situazioni di mobilit?.
7. Il metodo secondo la rivendicazione 1 in cui all?interno della fase di identificare le caratteristiche delle e-mail, dette caratteristiche sono individuate mediante un?analisi indipendente dell?oggetto e di uno snippet del testo.
8. Il metodo secondo la rivendicazione 1 in cui il dispositivo intelligente dotato di schermo ? uno fra un laptop, uno smartphone o un tablet in modo tale che le notifiche possano essere ricevute in situazioni di mobilit?.
9. Il metodo secondo la rivendicazione 1 in cui il dispositivo intelligente dotato di schermo ? un dispositivo con schermo touch.
10. Il metodo secondo le rivendicazioni 5 e 6 in cui il dispositivo intelligente dotato di schermo ? un dispositivo di tipo handheld.
IT102021000015593A 2021-06-15 2021-06-15 Metodo di classificazione dei messaggi sullo schermo di un dispositivo elettronico intelligente sulla base di una profilazione dell’utente. IT202100015593A1 (it)

Priority Applications (1)

Application Number Priority Date Filing Date Title
IT102021000015593A IT202100015593A1 (it) 2021-06-15 2021-06-15 Metodo di classificazione dei messaggi sullo schermo di un dispositivo elettronico intelligente sulla base di una profilazione dell’utente.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102021000015593A IT202100015593A1 (it) 2021-06-15 2021-06-15 Metodo di classificazione dei messaggi sullo schermo di un dispositivo elettronico intelligente sulla base di una profilazione dell’utente.

Publications (1)

Publication Number Publication Date
IT202100015593A1 true IT202100015593A1 (it) 2022-12-15

Family

ID=77910845

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102021000015593A IT202100015593A1 (it) 2021-06-15 2021-06-15 Metodo di classificazione dei messaggi sullo schermo di un dispositivo elettronico intelligente sulla base di una profilazione dell’utente.

Country Status (1)

Country Link
IT (1) IT202100015593A1 (it)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1287444B1 (en) * 2000-03-16 2007-07-18 Microsoft Corporation Priorities generation and management
US20130041968A1 (en) * 2010-12-08 2013-02-14 Gabriel Cohen Priority inbox notifications and synchronization for messaging application
US20200380408A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Classification of messages using learned rules

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1287444B1 (en) * 2000-03-16 2007-07-18 Microsoft Corporation Priorities generation and management
US20130041968A1 (en) * 2010-12-08 2013-02-14 Gabriel Cohen Priority inbox notifications and synchronization for messaging application
US20200380408A1 (en) * 2019-05-31 2020-12-03 Apple Inc. Classification of messages using learned rules

Similar Documents

Publication Publication Date Title
Fersini et al. SemEval-2022 Task 5: Multimedia automatic misogyny identification
Gupta et al. A comparative study of spam SMS detection using machine learning classifiers
US11641330B2 (en) Communication content tailoring
US11049149B2 (en) Determination of targeted food recommendation
JP2007058863A (ja) テキスト類別システム
CN110443236A (zh) 贷后文本要点信息提取方法及装置
Wendt et al. Hierarchical label propagation and discovery for machine generated email
Mounika et al. Design of book recommendation system using sentiment analysis
US20200226209A1 (en) Methods and systems for auto-filling fields of electronic documents
Singh et al. Knowing what and how: a multi-modal aspect-based framework for complaint detection
IT202100015593A1 (it) Metodo di classificazione dei messaggi sullo schermo di un dispositivo elettronico intelligente sulla base di una profilazione dell’utente.
IT202100015554A1 (it) Metodo di classificazione dei messaggi sullo schermo di un dispositivo elettronico intelligente.
Khowongprasoed et al. Automatic Thai ticket classification by using machine learning for IT infrastructure company
CN114492446B (zh) 法律文书处理方法、装置、电子设备及存储介质
CN112989054B (zh) 一种文本处理方法和装置
Khare et al. E-Mail Assistant–Automation of E-Mail Handling and Management using Robotic Process Automation
Maurya et al. A use of social media for opinion mining: An overview (with the use of hybrid textual and visual sentiment ontology)
Kang et al. Sentiment analysis on Malaysian Airlines with BERT
Ismaili et al. Student-Project-Resource Matching-Allocation Problems: Two-Sided Matching Meets Resource Allocation.
Babar et al. Real-time fake news detection using big data analytics and deep neural network
CN110880013A (zh) 识别文本的方法及装置
JP2010165166A (ja) グラフ構造推定システム、グラフ構造推定方法、およびプログラム
Srivastava et al. Sentiment analysis of Twitter data using machine learning: COVID-19 perspective
Oriedi et al. Social Network Influence: Making the Case for Semantic Analysis
US20220342931A1 (en) Condition resolution system