Architettura di rete neurale per il nome dell'autore come input?


8

Sto costruendo una rete neurale per prevedere il valore di un'opera d'arte con una vasta gamma di input (dimensioni, supporto artistico, ecc.) E vorrei includere anche l'autore come input (spesso è un enorme fattore nel valore di un singolo pezzo d'arte).

La mia attuale preoccupazione è che il nome dell'autore non sia un input numerico ideale per un NN (cioè se codifico ogni autore con un valore intero crescente, assegnerò indirettamente più valore agli autori più in basso nell'elenco -_-) . Il mio pensiero era quello di creare input separati per tutti gli autori nel mio set di dati e quindi utilizzare solo una codifica a caldo per rappresentare meglio l'input per NN.

Questo approccio tuttavia presenta un problema quando un autore che non è incluso nei miei dati di addestramento viene utilizzato come input per la NN (ovvero un nuovo autore). Posso aggirare questo problema con un campo di input "altro autore" ma sono preoccupato che ciò non sia accurato in quanto non avrei addestrato la NN per questo input (tutte le opere d'arte con una valutazione hanno un autore).

Non ci ho pensato fino in fondo, ma forse ho pensato di formare 2 NN, uno per una valutazione senza un autore e uno per la valutazione con un autore per assicurarmi di avere abbastanza dati di formazione per una "valutazione senza autore" per essere ancora ragionevolmente accurati.

Sto ancora cercando di concettualizzare la migliore architettura NN prima di rimanere bloccato nell'implementazione, quindi se qualcuno ha qualche suggerimento / commento sarei molto grato!

Grazie in anticipo, Vince

PS Lo sto facendo come una piccola competizione con un amico per testare una NN rispetto alle tradizionali tecniche di valutazione commerciale. Ti prego, aiutami a ottenere una vittoria per l'Informatica rispetto alla Scienza attuariale.


1
Non correlato alla tua domanda, ma potresti prendere in considerazione la possibilità di includere funzionalità basate sulle offerte precedenti / altre opere dell'artista / ed eventi nel mondo del mercato dell'arte. Quelli di solito hanno un grande impatto nel prezzo di un pezzo.
Alpha,

Risposte:


4

L'approccio più semplice che consiglierei sarebbe la soluzione di codifica one-hot senza una funzione per "altro autore". Se si utilizza il drop-out durante l'addestramento, la rete dovrebbe imparare a gestire i vettori di input che non hanno alcuna funzione di autore impostata su 1. Quindi, ogni volta che si dispone di un autore sconosciuto, semplicemente non si ha alcun 1 per delle caratteristiche dell'autore, e avrebbe dovuto ancora imparare a gestirlo.

Un altro possibile approccio sarebbe una codifica one-hot con una funzione per "altro autore". Al fine di ottenere ancora i dati di allenamento per quel peso, è possibile semplicemente utilizzare l'aumento dei dati. L'approccio più semplice per aumentare i dati sarebbe quello di creare copie delle istanze nei dati di addestramento, ma per quelle copie impostare la funzione "altro autore" su 1 anziché sull'autore effettivo.

La soluzione più complessa che mi viene in mente sarebbe quella di prendere la rappresentazione in forma di stringa dell'autore, cercando di far sì che il tuo programma trovasse informazioni su quell'autore online (ad esempio prova a cercare una pagina di Wikipedia), spinga tutto quel testo attraverso un LSTM. Il '' livello di output '' di LSTM può quindi essere unito alle altre tue caratteristiche (quei due insieme saranno il tuo '' vettore di input ''), impilare qualche altro strato sopra e addestrare l'intera cosa alla fine- finire. A meno che la competizione con il tuo amico non implichi una notevole quantità di denaro, probabilmente sarà troppo complicato per valerne la pena.


3

Vorrei cercare di trovare alcune funzioni di proxy circa l'autore, al contrario di codificare l'identità dell'autore. Le caratteristiche probabilmente buone di un autore includono le medie di altre caratteristiche dell'opera (come dimensioni, tipi di media ecc.) E, in modo critico per la tua previsione, alcune statistiche sui prezzi di vendita precedenti di qualsiasi opera. Ricorda che i dati di addestramento storici devono includere i dati del proxy come sarebbero apparsi al momento della vendita.

Avere questi proxy probabilmente funzionerà molto meglio della codifica a caldo di un'identità dell'autore e far sì che l'algoritmo ML assegni pesi basati sulla sola identità, specialmente per gli autori con solo piccole quantità di dati per rappresentarli.

Ci sono poche ragioni per quanto ne so, aspettarsi che la stringa di caratteri del nome di un autore sia correlata al valore dell'opera d'arte. Ci può essere qualcosa di buono vs cattivo nome del marchio effetto, ma penso che sarà molto difficile da prevedere, anche in isolamento da altri fattori, compreso i dati storici di vendita dovrebbe tener conto di questo e simili effetti, tranne che per gli artisti senza storia nota.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.