News


Realtime Analytics with SAP HANA Platform

posted 30 Jun 2017, 00:25 by Diego Tosato   [ updated 30 Jun 2017, 00:26 ]

Méthode webinar SAP HANA PLATFORM


We have built a POC combining OpenPose and streaming analytics exploiting SAP HANA platform.

Paper@IIR2016

posted 3 Jun 2016, 07:40 by Diego Tosato


Enterprise resource planning (ERP) systems are the core of many companies: they contain entities which are the focus of enterprise searches.  SeNSE (Skyline ENterprise Search Engine) implements a model which exploits those entities to improve the search experience of enterprise users is proposed. Specifically, a graph knowledge base called entity graph is defined. It is used both to offer a novel data exploration experience that reflects the business processes and to improve the search accuracy contributing to the score of a search result into a weighted linear model. 

 [pdf] [slides]

OLTRE LE APPARENZE

posted 20 Oct 2015, 01:56 by Diego Tosato


Ad ogni utente sarà certamente capitato di provare quella sensazione di frustrazione mista a rabbia quando si vuole fare qualcosa con un certo software e non ci si riesce. Diversi progressi sono stati fatti negli ultimi anni e i produttori di software, in competizione tra loro, in particolare con l’avvento degli smartphone e dei tablet, hanno messo al centro delle loro agende il tema “esperienza utente” (dall’inglese User eXperience) pensando proprio a come rispondere alle difficoltà riscontrate dagli utenti nell’uso dei software.

Generalmente la User eXperience si declina nel costruire delle interfacce utente di bell’aspetto che catturino l’utilizzatore e lo orientino nella scelta del software. Sfortunatamente, sebbene l’aspetto grafico sia importante, un’interfaccia graficamente gradevole non coincide necessariamente con una buona esperienza utente. Da circa due anni il reparto Ricerca e Sviluppo di Eurosystem si sta interrogando su quale sia la ricetta per produrre della buona esperienza utente. Uno degli ingredienti più interessanti e meno scontati su cui porre l’attenzione è l’intelligenza (o pro-attività) che il software dovrebbe possedere. Infatti, ben diverso sarebbe per un utente avere a disposizione un software che suggerisce azioni e contenuti, semplifica il modo di lavorare e previene la possibilità di commettere errori, a differenza di quanto esiste oggi. Con questo intento parte dell’industria del software ha concentrato la sua attenzione sulla tecnologia sviluppata da una branca dell’intelligenza artificiale, nota come apprendimento automatico (dall’inglese machine learning), fortemente attiva da più di vent’anni. Il suo scopo è quello di sviluppare tecniche che automaticamente ricavano informazioni interessanti (in gergo pattern) da dati in un qualsiasi formato elettronico. Così, operando silenziosamente dietro le quinte, gli esperti lavorano su soluzioni software che nascondono al loro interno sempre un pò di intelligenza. Oggigiorno l’utilizzo di tecniche di apprendimento automatico è più diffuso di quanto si possa immaginare. I campi di applicazione più noti sono internet (big data) mining, database mining, motori di ricerca, visione artificiale, medicina, bioinformatica, finanza, robotica, domotica, automazione industriale, sicurezza, difesa, automotive, mobile app, videogiochi, cinema, commercio elettronico, e molti altri. Non è un caso che brand noti come Microsoft®, Google®, IBM®, EMC® e Oracle® investano consistentemente su questo tipo di tecnologia.

Una caratteristica affascinante e rivoluzionaria introdotta dalle tecniche di apprendimento automatico è quella di fornire nuove funzionalità al software senza programmarle esplicitamente. Infatti è il programma stesso ad adattarsi (o personalizzarsi) alle esigenze dell’utilizzatore evolvendo con il suo uso. In quest’ottica è interessante scoprire come la stessa tecnica di apprendimento supervisionato predittivo, unita alla relativa implementazione, possa esser utilizzata per costruire un sistema di guida automatica di un’autovettura o un sistema che predice l’andamento del mercato o di un’azienda nel futuro prossimo oppure un sistema che ottimizza i consumi di un abitazione. Per far funzionare il sistema è necessario poter fornire alla soluzione software un insieme di dati “etichettati”, per i quali l’output del sistema è già noto, da utilizzare per l’addestramento. Questo è il motivo per il quale le tecniche che risolvono questo tipo di problemi sono dette supervisionate. L’unico vincolo degno di nota per rendere davvero indipendente la soluzione software dal problema affrontato è che i dati forniti al software devono trovarsi in un formato standardizzato. Tipicamente il formato adottato è quello vettoriale; ad esempio, per la guida automatica di una vettura l’input del sistema di apprendimento può esser composto da una serie di vettori contenenti la posizione della macchina, la velocità corrente, l’accelerazione e l’angolo di sterzo delle ruote, mentre l’output potrebbe essere la posizione che deve assumere il volante in un dato istante. Nonostante questo tipo di formato sia largamente diffuso è possibile utilizzare oggetti ben più complessi, come intere tabelle di un software gestionale, immagini, spezzoni di tracce audio, messaggi email, grafi, forme molecolari ecc.

Un’altra classe di problemi ai quali l’apprendimento automatico dà soluzione è nota come apprendimento supervisionato categorico (di categorie). Anche in questo caso è quasi incredibile scoprire come un sistema di eliminazione della posta indesiderata di archiviazione automatica di documenti, di riconoscimento automatico dei volti possano condividere la stessa soluzione software. L’ultima (macro-)classe di problemi che le tecniche di apprendimento automatico sanno affrontare è quella di apprendimento non supervisionato (o knowledge discovery). Essa è in grado di dare soluzione automatica a problemi come la costruzione di un sistema di analisi di dati astronomici, di raggruppamento delle notizie per i giornali online, di analisi del genoma umano, di segmentazione del mercato, di distribuzione automatica del calcolo in una rete di calcolatori, di analisi delle reti sociali, di raccomandazione di prodotti commerciali. Per completezza va detto che esiste un’altra classe di metodi di apprendimento che va sotto il nome di apprendimento rinforzato, tuttavia di essa non verranno riportati esempi perché di uso meno comune.

Quanto scritto fin ora potrebbe far pensare che in un futuro prossimo sia possibile costruire l’algoritmo di apprendimento automatico universale, in grado di affrontare qualsiasi problema gli sia posto. Ciò è falso, infatti già nel 1987 Box e Draper dicevano al riguardo “all models are wrong, but some models are useful”, vale a dire che non è possibile costruire la miglior tecnica di apprendimento automatico per tutti i problemi possibili. Quanto asserito in precedenza è generalmente riconducibile al celebre “no free lunch theorem” (Wolpert 1996), il cui nome folkloristico descrive intuitivamente il significato. La ragione di ciò è che un insieme di assunzioni che si possono fare per risolvere un problema di apprendimento in un particolare dominio applicativo non funziona bene per tutti gli altri. La conseguenza più importante del teorema è che, se le stesse tecniche di apprendimento possono esser utilizzate nei domini applicativi più svariati, lo stabilire quale sia la migliore è un problema che richiede un lavoro ingegneristico attento. La ricerca scientifica nel tempo ha dato via via indicazioni sempre più certe sul tipo di problemi e sulle relative tecniche da applicare per gli specifici domini applicativi.

Eurosystem ha deciso di sfruttare tale bacino di conoscenze per porsi una domanda fondamentale: è possibile sfruttare le tecniche di apprendimento automatico per migliorare l’esperienza utente nell’utilizzo del software gestionale Freeway® Skyline? L’appuntamento con l’utente è quindi rimandato nel prossimo futuro, al giorno in cui il software reagirà in modo inequivocabile allo stimolo dell’utente.

http://www.logyn.it/oltre-le-apparenze/

LUNGO LA STRADA DELL’INTELLIGENZA

posted 20 Oct 2015, 01:53 by Diego Tosato



Sviluppata da una branca dell’intelligenza artificiale, la disciplina nota con il termine “apprendimento automatico” in Eurosystem è al centro di ricerche finalizzate a migliorare l’esperienza utente nell’utilizzo di un software gestionale, rendendo il sistema in grado suggerire automaticamente le risposte cercate dall’utente, massimizzandone la soddisfazione e minimizzandone i tempi nello svolgimento del lavoro.

Migliorare l’esperienza utente nei software gestionali
Come nella miglior tradizione dei meeting aziendali creativi e propulsivi, ci siamo lasciati nello scorso numero con un interrogativo aperto sulla possibilità o meno di sfruttare le tecniche di apprendimento automatico per migliorare l’esperienza utente nell’utilizzo di software gestionali come Freeway® Skyline, dove con apprendimento automatico si intende una famiglia di tecniche che automaticamente ricavano informazioni interessanti (in gergo “pattern”) da dati in un qualsiasi formato elettronico contenuti in un pc o un server. Ebbene, perché l’interrogativo non rimanga lettera morta, ma si traduca in esperienza viva, Eurosystem in questi due anni ha sviluppato e testato diversi prototipi per validare la bontà di alcune tecniche di apprendimento automatico nell’ambito di diversi campi di gestione.

Il piano di codifica nelle aziende di produzione
Generalmente all’interno di un’azienda di produzione in buona salute, che pianifica e avvia ogni giorno centinaia di ordini di produzione, diventa prioritario per l’ufficio tecnico realizzare un piano di codifica attento e completo, che spesso costa tempo e fatica, e che serve ad identificare con degli opportuni codici una serie di elementi necessari all’esecuzione di tutto il processo produttivo: progettazione, codifiche prodotti, strutture di distinte, regole e varianti di configurazione di prodotto, di listino prezzi, di composizione dei colli. Il piano deve essere poi trasmesso a tutte le persone che hanno la necessità di lavorare con questo complesso di informazioni, costituito da collezioni di dati molto estese che vengono visualizzate e utilizzate migliaia di volte al giorno. All’interno dell’ufficio tecnico, infatti, ogni utente si ritrova a dover inserire quotidianamente centinaia di variabili per creare le distinte di produzione necessarie a mandare avanti i processi produttivi. La complessità di lavoro è tale che se il piano di codifica non è abbastanza chiaro e corretto, può essere alto il tasso di errore legato ad una codifica e quindi la possibilità di compromettere l’intero flusso di lavoro. Una problematica simile può insorgere anche quando l’ideatore della codifica lascia l’azienda senza che sia stato documentato come funziona lo schema. L’obiettivo di un’azienda come Eurosystem, che realizza un software di gestione dei processi aziendali, è arrivare a sviluppare un sistema che, grazie a tecniche di apprendimento automatico, faciliti l’utente nell’accesso, nella consultazione e nell’utilizzo di una numerosità di dati enorme richiedendogli di effettuare solo poche operazioni per creare, visitare o ispezionare oggetti complessi. A questo si aggiunge la necessità di creare un ambiente unico e integrato nel sistema gestionale, all’interno del quale l’utente possa gestire tutte queste operazioni senza dover ricorrere all’apertura di diversi moduli applicativi oppure di altri software, magari di carattere dipartimentale.

Apprendimento automatico e piano di codifica
Le tecniche di apprendimento automatico, una volta introdotte in Freeway® Skyline, possono rendere il sistema in grado di facilitare la realizzazione di un piano di codifica corretto mediante l’inserimento di pochi esemplari rappresentativi. Questo significa che in fase di ricerca l’utente, immettendo nel sistema poche indicazioni relative allo schema di prodotto, distinta, listino o collo, trova immediatamente l’informazione o l’oggetto cercato. La capacità selettiva del sistema – detto per questo motivo “intelligente” – restringe notevolmente la numerosità delle informazioni visualizzate e gli consente di trovare facilmente le informazioni desiderate. L’utente si trova così nella condizione di poter svolgere efficientemente i compiti che si è preposto. Questo agevola il suo lavoro considerando che l’abilità del sistema visivo umano è abbastanza limitata ed è probabile che un utente, trovando all’interno di un’unica pagina web gruppi di oggetti sostanzialmente identici non riesca ad identificare l’oggetto della sua ricerca a causa delle numerose informazioni. In particolare, la soluzione studiata da Eurosystem è quella di raggruppare automaticamente i codici articolo e le strutture delle distinte del piano di codifica all’interno del sistema, che assimila automaticamente il piano e quindi permette di arrivare alla distinta base o all’informazione cercata con pochi click. Inoltre, il sistema, che è addestrato a proporre nuove codifiche in base a caratteristiche immesse, con i codici datigli in pasto potrebbe essere esso stesso il motore di un piano di codifica per le nuove anagrafiche. Il beneficio di tale soluzione è triplice: (1) offrire un modo alternativo per navigare efficientemente il piano di codifica che può esser particolarmente utile agli utenti che non lo conoscono o lo conoscono poco; (2) offrire un metodo guidato di costruzione del piano di codifica; (3) minimizzare la probabilità di errore nella ricerca o nell’inserimento di nuove codifiche, sgravando quindi l’utente dal peso di dover sempre ricordarne la struttura.

Al fine di raggiungere questi benefici la soluzione elaborata daEurosystem è stata l’implementazione di un algoritmo di addestramento non supervisionato noto in letteratura come dual k-means [1], il cui compito è quello di confrontare i codici e di raggrupparli in un insieme gerarchico di cluster (o segmenti). All’interno dello stesso cluster si trovano distinte simili tra loro. Il risultato si può pprezzare, ad esempio, in quei casi in cui, a partire da un insieme di distinte, si ottiene una segmentazione il cui onere (opzionale) per l’utente è quello di assegnare un nome intuitivo a ciascun cluster per facilitare ulteriormente la navigazione. Per evitare casi limite, per i quali una distinta base può appartenere a più di un cluster, si è deciso di includere la stessa nei primi due cluster più rappresentavi. Un esempio di caso limite è quello della produzione di un “divano-letto” per il quale è ragionevole sia l’appartenenza della distinta al cluster elle distinte per i “divani”, sia a quelle dei “letti”.

Apprendimento automatico e portale
Un altro caso di applicazione di tecniche di apprendimento automatico è quello di dare soluzione al problema della proposizione dei contenuti per un portale. In questo caso, si vuole dare al software la capacità di adattarsi alle abilità e all’esperienza dell’utente nello svolgere i compiti di ogni giorno mostrandogli solo ciò che è per lui rilevante e utile a svolgere efficacemente il suo lavoro. L’idea alla base di questa soluzione è la costruzione di un motore di supporto alla visualizzazione dei contenuti, il quale tenga conto dell’utilizzo o dei feedback da parte dell’utente per suggerire ciò che è probabilmente rilevante e scartare ciò che il sistema ha dedotto non esserlo. Posto in tali termini il problema può esser definito come roblema di apprendimento supervisionato. Il motore potrebbe essere in grado di proporre funzionalità o scorciatoie per svolgere i task più efficientemente. Ciò vale nell’ipotesi ci siano possibilità di completare un certo compito in modo più efficiente rispetto a quello utilizzato dall’utente. In tal caso il portale si riconfigura per rendere visibile il modo più efficiente. Analogamente il motore cerca di aiutare l’utente nel caso in cui si perda, suggerendo il modo di arrivare comunque a svolgere il task desiderato. Questa funzionalità è sicuramente utile per gli utenti alle prime armi la cui probabilità di smarrirsi tra le pagine del portale è abbastanza elevata. Di conseguenza la soluzione proposta diminuisce i tempi di addestramento dell’utente all’utilizzo del prodotto adattandolo alle sue abilità. Da una prospettiva opposta, il motore aiuta gli utenti esperti a svolgere task ripetitivi, come l’immissione o compilazione di dati richiesti, sfruttando l’esperienza che il sistema ha già acquisito. Deve poter far ciò utilizzando sorgenti dati eterogenee: statistiche di utilizzo del software, dati presenti nell’ ERP/MRP o nel repository documentale, ecc… Le funzionalità più avanzate del motore possono offrire la possibilità di automatizzare le decisioni gestionali non strategiche (di livello intermedio) al fine di sgravare l’utente dal tipo di lavoro che generalmente ne peggiora l’esperienza e massimizza la probabilità di errore, ottimizzando invece i tempi.

Per realizzare le funzionalità descritte è necessario combinare svariate tecniche di apprendimento automatico. La famiglia di tecniche che meglio servono agli scopi di visualizzazione, filtraggio e proposizione dell’informazione discusse sopra sono note come modelli generativi. Oggi, istanze di tali modelli sono efficacemente utilizzate da applicazioni come Google news, Bing o Zite. Particolarmente degno di nota è un metodo conosciuto come Restricted Boltzmann Machine [2], evoluzione delle ormai storiche reti neurali, che nel campo della proposizione automatica dei contenuti si presenta come una
vera e propria rivoluzione in termini di esperienza utente.

I due esempi di applicazioni mostrano come sia possibile lavorare nella direzione del miglioramento dell’esperienza utente, senza intervenire esplicitamente sull’interfaccia e affrontando esplicitamente le tematiche tipiche dell’interazione uomo-macchina. Proseguendo per questo percorso, Eurosystem svilupperà alcune delle soluzioni che diventeranno parte integrante del nuovo rilascio di prodotto Freeway® Skyline 3.0.

[1] Shawe-Taylor, J., & Cristianini, N. (2004). Kernel Methods for Pattern Analysis. doi:10.1017/CBO978051180968
[2] Murphy, Kevin P. Machine learning: a probabilistic perspective, pg. 996. The MIT Press, 2012.

http://www.logyn.it/lungo-la-strada-dellintelligenza/

L’UTENTE CERCA E IL SISTEMA LO AIUTA…

posted 12 May 2015, 05:38 by Diego Tosato   [ updated 20 Oct 2015, 01:51 ]


L’ERP Freeway® Skyline evolve ulteriormente e, proseguendo nell’obiettivo di mettere l’utente al centro del sistema, gli offre un nuovo modo per navigare ed esplorare non solo le informazioni, gestionali e non, ma anche le relazioni esistenti tra queste. Ricercare sì, ma con intelligenza.

SENSE è il nome in codice del nuovo modulo integrato in Freeway® Skyline che consentirà all’utente di esplorare le proprie informazioni in modo intuitivo e rapido navigando agevolmente non tra applicazioni, form e schede, ma direttamente tra documenti, siano essi classici documenti gestionali come pure di altra natura quali file PDF, documenti archiviati digitalmente, ma anche report di altre applicazioni o pagine di consultazione del portale.

L’esperienza quotidiana degli utenti di una PMI è vincolata spesso al solo software gestionale in dotazione con le sue applicazioni e le sue maschere di inserimento. A queste si aggiunge magari qualche integrazione con altre applicazioni office classiche, come email, wordprocessor e fogli elettronici, delle quali non si può fare a meno in azienda. Tuttavia, qualunque utente sa benissimo che il proprio lavoro non è tutto qui e che spesso il rapporto con il software gestionale può limitarlo e non fornirgli quella visione trasparente dell’azienda che vorrebbe. Un esempio, forse, chiarisce meglio i termini del problema. Pensiamo ad un utente del reparto commerciale che deve verificare lo stato di evasione di un ordine cliente, essendosi il cliente appena infuriato perché gli è stata recapitata la fattura per un ordinativo non ancora ricevuto. Quasi certamente il software gestionale offre al nostro utente un’applicazione che gli consente di recuperare la fattura sotto accusa, ma poi? Egli avrebbe bisogno di verificare i documenti di consegna della merce fatturata; probabilmente anche qui l’applicazione offrirebbe dei collegamenti diretti per arrivare a constatare che il documento di trasporto è stato emesso e che la merce non è più in magazzino. Sembra tutto a posto, tuttavia la fattura è stata emessa ma il cliente non ha ancora la sua merce. A questo punto l’impiegato disperato inizierebbe a cercare tra gli appunti sulla sua scrivania o tra le email ricevute qualcosa che possa aiutarlo. Ed è proprio qui che inizia il calvario poiché l’utente dovrebbe uscire letteralmente dal sistema ricercando, con strumenti diversi e senza supporto, le informazioni di cui ha bisogno.

È qui che si innesta SENSE, ovvero un sistema unificato di ricerca delle informazioni accessibile direttamente dal portale di Freeway® Skyline, che supera i limiti di ciò che il database gestionale è in grado di ospitare e consente agli utenti di esplorare altre informazioni aziendali. Il tutto con la stessa facilità con la quale sono abituati a saltare da un link ad un altro partendo dalla ricerca a campo unico offerta dai comuni motori di ricerca presenti sul web. In questo modo, ritornando all’esempio, l’utente avrebbe potuto in modo naturale iniziare la propria ricerca digitando le informazioni relative alla fattura e navigando tra i risultati estratti. Il sistema gli avrebbe offerto tutto ciò che poteva essere riconducibile alla fattura indicata e in ordine decrescente di rilevanza. Tra tutti i risultati estratti, direttamente presenti nell’elenco proposto oppure raggiungibili attraverso un elenco di documenti logicamente correlati, l’utente avrebbe potuto facilmente rintracciare l’email, ricevuta 2 giorni prima da un collega, nella quale gli veniva comunicato che la merce sarebbe stata consegnata da un tecnico in occasione di un incontro già pianificato con il cliente.

È proprio quella appena descritta una delle novità interessanti di SENSE. Documenti gestionali archiviati nel database aziendale, email, fax, fatture cartacee ricevute e archiviate digitalmente, hanno infatti delle relazioni tra loro a volte esplicite (si pensi al naturale legame tra una fattura e l’ordine a cui essa si riferisce) e a volte implicite o dedotte e non definite nel sistema (si pensi al legame tra la fattura dell’esempio precedente e l’email): ebbene ciò che arricchisce l’esperienza dell’utente è il fatto di poter cercare da un unico punto informazioni eterogenee e di poter navigare poi le relazioni, implicite o dedotte, che sussistono tra i documenti.

http://www.logyn.it/lutente-cerca-e-il-sistema-lo-aiuta/

BoboBrowse 3.2 performance analysis

posted 5 May 2015, 01:14 by Diego Tosato

http://stackoverflow.com/questions/30047505/bobobrowse-3-2-performance-analysis

Which are suitable machine learning techniques/models for (semi) automatic data entry?

posted 29 Apr 2015, 03:29 by Diego Tosato

http://www.reddit.com/r/MachineLearning/comments/349f6m/which_are_suitable_machine_learning/

Document representation for information retrieval systems

posted 10 Apr 2013, 00:41 by Diego Tosato

http://www.reddit.com/r/MachineLearning/comments/188s60/document_representation_for_information_retrieval/
https://www.quora.com/Machine-Learning/Which-is-the-best-document-representation-for-information-retrieval-systems

QuickGraph 3.6 Standard .NET class library

posted 10 Apr 2013, 00:34 by Diego Tosato   [ updated 9 Jul 2013, 08:53 ]

QuickGraph is a library that provides generic directed/undirected graph data structures and algorithms for .NET. QuickGraph comes with algorithms such as depth first search, breath first search, A* search, shortest path, k-shortest path, maximum flow, minimum spanning tree, least common ancestors, etc...
Unfortunately its latest version (3.6) is not compiled as a standard .NET class library so it is not possible to exploit the serialization features of the .NET 4.0 framework (see the issues [issue1issue2]).
Here [binary, src] the dll files obtained recompiling the QuickGraph solution as a standard class library.

Which is the best machine learning library for .NET?

posted 17 Feb 2013, 11:58 by Diego Tosato   [ updated 17 Feb 2013, 11:58 ]

https://www.quora.com/Machine-Learning/Which-is-the-best-machine-learning-library-for-NET

1-10 of 23