Quali sono le applicazioni industriali dell'algoritmo K-nearest neighbor?
k-NN è spesso usato in applicazioni di ricerca dove si cercano oggetti "simili"; cioè, quando il tuo compito è una qualche forma di "trova oggetti simili a questo". Si chiama ricerca k-NN.
Il modo in cui si misura la somiglianza è creare una rappresentazione vettoriale degli elementi, e poi confrontare i vettori usando una metrica di distanza appropriata (come la distanza euclidea, per esempio).
Quindi, alcuni esempi concreti di ricerca k-NN:
- Se stai cercando documenti semanticamente simili (cioè, documenti che contengono argomenti simili), ci si riferisce a questo come Concept Search.
- Concept Search è una caratteristica che si trova in molti pacchetti software di e-Discovery, che sono usati per aiutare le aziende a trovare tutte le e-mail, i contratti, ecc. che sono rilevanti per una causa. Per esempio, vedi Concept Search nel software Relativity di kCura per l'e-Discovery.
- Il più grande caso d'uso della ricerca k-NN potrebbe essere il Recommender System. Se si sa che a un utente piace un particolare articolo, allora si possono raccomandare articoli simili per lui. Per trovare articoli simili, si confronta l'insieme di utenti a cui piace ogni articolo - se un insieme simile di utenti piace a due articoli diversi, allora gli articoli stessi sono probabilmente simili!
- Questo si applica per raccomandare prodotti, raccomandare media da consumare, o anche 'raccomandare' pubblicità da mostrare a un utente!
Può anche essere usata per la classificazione k-NN, nel giusto tipo di applicazione. k-NN non è sexy come una rete neurale o un SVM, e generalmente è più lenta e ha un'accuratezza inferiore rispetto a questi approcci, ma ha alcune buone qualità pratiche. È facile da addestrare (perché non c'è addestramento :-P), facile da usare, ed è facile capire i risultati. Scommetto che la classificazione k-NN è usata nell'industria più di quanto un accademico possa pensare (ammetto che tendo a guardare dall'alto in basso la classificazione k-NN).
Ecco almeno un esempio concreto che posso darvi:
- Herta Security usa algoritmi di deep learning per generare vettori di caratteristiche che rappresentano i volti delle persone. Poi usano k-NN per identificare una persona confrontando il volto con la loro watchlist. Il motivo? k-NN è abbastanza buono e sarebbe poco pratico addestrare un classificatore separato per ogni persona nella watchlist.
Articoli simili
- L'algoritmo di Dijkstra è un algoritmo greedy o un algoritmo di programmazione dinamica?
- Come fanno i gadget/industriali fitness tracker a calcolare le calorie bruciate?
- Quali sono le applicazioni reali dell'algoritmo di Dijkstra?
- Qual è la complessità temporale dell'algoritmo GCD di Euclide?
- Come arrivare al livello 13 in Clash Royale? Sono stato così vicino, ma continuo a essere sbattuto indietro. È l'algoritmo mi sta fermando