Logo Zephyrnet

Algoritmi nel settore dei servizi finanziari: la scelta giusta per il problema giusto

Data:

L'obiettivo finale di ogni prodotto software è quello di convertire gli input(fornito dagli utenti finali o ricevuto automaticamente da sistemi esterni) in risultati preziosi (approfondimenti).
Questo è in genere fatto tramite logica di elaborazione (= algoritmi), che trasformano un numero di ingressi in un insieme di uscite.

In base alla mia esperienza, questi componenti logici di processo possono essere suddivisi in categorie 5:

  • Calcolo: un calcolo è una chiara formula matematica, che permette di calcolare un valore specifico. Questa categoria può essere identificata dal fatto che tutte le informazioni richieste sono disponibili come input e che l'output è preciso, cioè c'è solo 1 risultato corretto e questo è perfettamente ripetibile. Esempi sono il calcolo del prezzo medio di un'azione nell'ultimo anno, il calcolo del tasso di rendimento ponderato nel tempo di un portafoglio di investimenti, il piano di rimborso di un credito o l'importo degli interessi da pagare su un conto di risparmio ogni trimestre.

  • Ricerche di dati: una ricerca di dati consiste nel recuperare un risultato nella sua forma grezza o in una forma elaborata (ad es. ordinato, filtrato, aggregato ...) da un database. In genere, consiste in una query eseguita per recuperare dati specifici. Esempi sono la ricerca dei dati di un cliente specifico, il recupero di tutte le transazioni dei clienti degli ultimi mesi in ordine decrescente dell'importo della transazione o il numero di clienti e l'importo totale della transazione generato lo scorso anno raggruppati per paese del cliente.

  • Sistemi esperti: si tratta di alberi di clausole (nidificate) "If-Then-Else" (o logica condizionale simile), che danno come risultato un flusso di lavoro, un diagramma di flusso o un albero decisionale. Ciò significa che l'algoritmo verificherà una o più condizioni per determinare quale percorso nella logica di business deve essere preso (cioè per determinare il passaggio successivo). Esempi sono le regole di decisione per determinare quale tipo di analisi è richiesto per un file di credito, le regole di protezione antifrode e antiriciclaggio nel dominio dei pagamenti ...

  • Problemi di ottimizzazione: si tratta di calcoli matematici con, in linea di principio, una sola soluzione, ma spesso è impossibile (o troppo complesso o troppo dispendioso in termini di risorse / tempo) sapere se si ottiene la soluzione perfetta. Di solito questi algoritmi lavorano con una funzione di costo che deve essere ottimizzata, ma è difficile sapere se viene raggiunto un minimo locale o un minimo assoluto. Tuttavia tutte le regole sono chiaramente definite e data una potenza di elaborazione (calcolo) sufficiente, è possibile ottenere un risultato esatto. Esempi sono problemi di pianificazione delle risorse, ribilanciamento del portafoglio basato sul numero di vincoli di investimento (cliente) ed elenchi di raccomandazioni o portafogli modello ... Ulteriori informazioni possono essere trovate anche nel mio blog "Problemi di ottimizzazione - Lungi dall'essere una merce" (https://bankloch.blogspot.com/2020/05/optimisation-problems-far-from-being.html).

  • Problemi di identificazione del sistema (= SI) e apprendimento automatico (= ML): sono problemi per i quali è difficile o addirittura impossibile descrivere le regole di come dovrebbe comportarsi il sistema (l'algoritmo). L'algoritmo è invece impostato come una scatola nera, per la quale viene stimato un gran numero di coefficienti / parametri (tipicamente elementi in una matrice) addestrando il modello. Ciò viene fatto regolando questi coefficienti, in modo che corrispondano al meglio agli ingressi e alle uscite dei dati di test forniti al modello. Esempi tipici sono il rilevamento di frodi / AML, motori di raccomandazione e motori per definire la migliore azione successiva per gli utenti, rilevamento di anomalie, riconoscimento vocale e di immagini ...

Ovviamente, molti algoritmi sono una combinazione di queste categorie. Ad esempio un motore di calcolo dei prezzi (cfr. Il mio blog "Motori di calcolo nei servizi finanziari - Un fattore di differenziazione chiave nella strategia aziendale" - https://bankloch.blogspot.com/2021/02/calculation-engines-in-financial.html) può combinare una serie di categorie, es. * Data Lookup: per recuperare alcuni valori parametrizzabili, che possono essere facilmente configurati dagli utenti business (es. la percentuale di sconto concessa per specifici tipi di credito), ma anche per recuperare i dati necessari per alimentare il motore (come ad esempio la segmentazione del cliente) * Sistema esperto: insieme di regole per decidere quale regime di tariffazione applicare * Calcolo: ovviamente è necessario applicare una serie di calcoli, come calcolare il prezzo in base a diversi fattori (ad esempio applicare una percentuale sull'importo della transazione), applicando soglie minime e massime… * SI & ML: consentono di impostare modelli di pricing dinamici, che evolvono automaticamente in base all'accettazione o meno da parte dei clienti dei prodotti ad un prezzo proposto.

Quando si definisce la logica aziendale (o un algoritmo) è importante scegliere la giusta categoria (o la giusta combinazione di categorie).
Questo è in genere un compromesso tra:

  • Flessibilità per modificare il comportamento dell'algoritmo

  • Complessità operativa per spiegare / comprendere un risultato, ma anche per convalidare se l'algoritmo si comporta come previsto

  • Complessità di implementazione, ovvero la complessità per implementare l'algoritmo in forma di codice.

  • Conoscenza delle regole che guida la logica e la capacità di descriverla facilmente e con essa il numero di fattori da tenere in considerazione

Ad esempio: un algoritmo di tipo “calcolo” è molto poco flessibile e richiede una conoscenza e una descrizione molto precise di tutte le regole che governano, ma una volta definito è tipicamente facile spiegare un risultato e testarlo. Dato che un certo insieme di input porterà sempre agli stessi output, è anche facile impostare test di regressione automatizzati.
D'altra parte un algoritmo di tipo "SI & ML" può essere molto flessibile (spesso si adatterà anche automaticamente) e richiede una minore conoscenza delle regole associate, ma spesso è impossibile spiegare / comprendere un risultato ed è quasi impossibile convalidare completamente l'algoritmo, ovvero garantire che l'algoritmo non dia risultati molto negativi in ​​alcuni casi limite.

L'implementazione di ogni categoria di algoritmo è inoltre supportata da specifici software di implementazione, ie

  • Calcolo: esistono centinaia di biblioteche matematiche (spesso open source) per calcolare qualsiasi tipo di risultato (es. biblioteche con formule statistiche o biblioteche con calcoli finanziari)

  • Ricerca dei dati: SQL è lo standard per l'interazione con un database, ma spesso tutti i tipi di livelli di astrazione sono stati costruiti sopra questo per supportare ricerche di dati più facili e complesse, come Hibernate, QueryDSL, jOOQ, Spring Data ...

  • Sistemi esperti: ovviamente ogni linguaggio di programmazione supporta le clausole If-Then-Else e Case, ma ci sono anche centinaia di livelli di astrazione, che aiutano a implementare questo tipo di algoritmi, come i sistemi BPMS (come TIBCO ActiveMatrix BPM, IBM BPM, Oracle BPM, Camunda BPM, jBPM ...), sistemi di flusso di lavoro (come Nintex, Zapier, ProcessMaker ...) e motori di regole aziendali (come Kissflow Process, IBM Operational Decision Manager, Drools, Red Hat Decision Manager - ex JBoss BRMS), Progress Corticon Business Rules Engine, SAS Responsabile delle regole aziendali, Hyperon ...)

  • Problemi di ottimizzazione: questo è ancora un dominio un po 'inesplorato e immaturo, con pochi strumenti (user-friendly) disponibili, come ho anche menzionato in uno dei miei blog precedenti. Nomi interessanti da guardare sono JuMP (basato sul linguaggio Julia), ADMB, GLPK, OpenMDAO, Motulus, OptaPlanner… Tuttavia tutti questi strumenti sono ancora piuttosto complessi e quindi ancora difficili da usare per sviluppatori non specializzati.

  • SI e ML: in questo spazio TensorFlow è l'astrazione più conosciuta per configurare tali algoritmi, ma ovviamente esistono molte alternative come PyTorch, Keras, Amazon SageMaker, IBM Watson Studio ...

Con la popolarità di AI / ML, le persone cercano di implementare molti algoritmi con la logica AI / ML. Sebbene AI / ML sia uno strumento potente, presenta anche una serie di svantaggi. In quanto tale, è meglio usarlo solo quando la maggior parte delle regole per descrivere la relazione tra ingressi e uscite è sconosciuta. Se una parte è nota, è probabilmente meglio iniziare con altre categorie di algoritmi e potenzialmente mettere a punto il risultato con AI / ML.

È quindi importante avvicinarsi alle categorie nell'ordine impostato sopra, ovvero utilizzare un calcolo esatto se possibile, altrimenti utilizzare regole derivate tramite un sistema esperto, ricerca dei dati o problema di ottimizzazione. AI / ML dovrebbe essere l'ultima risorsa, quando è impossibile definire correttamente le regole aziendali guida.
Questo è importante, poiché troppo spesso le persone considerano oggigiorno AI / ML come la prima soluzione a qualsiasi problema. Ad esempio, nei motori di raccomandazione, le persone spingono sempre più AI / ML, anche se questa potrebbe non essere sempre l'idea migliore, poiché sono note molte regole per raccomandare un prodotto, spesso i dati disponibili sono insufficienti per addestrare adeguatamente l'AI / ML modello ed essere in grado di spiegare le raccomandazioni è spesso importante in quanto un venditore deve supportare il processo o le autorità di regolamentazione richiedono la prova di determinate proposte / decisioni.

Come sempre nell'IT, non esiste un proiettile d'argento e non una soluzione per governare il mondo, ma è invece necessario fare una scelta deliberata, in cui pro e contro sono valutati l'uno contro l'altro, invece di navigare sulle ultime novità.

Dai un'occhiata a tutti i miei blog su https://bankloch.blogspot.com/

Coinsmart. La migliore borsa Bitcoin in Europa
Fonte: https://www.finextra.com/blogposting/20252/algorithms-in-the-financial-services-industry—the-right-choice-for-the-right-problem?utm_medium=rssfinextra&utm_source=finextrafeed

spot_img

L'ultima intelligenza

spot_img