Si necesita encontrar una foto tomada en un picnic hace unos años, difícilmente puede recordar el nombre que la cámara asignó automáticamente al archivo en el momento del disparo, por ejemplo, 2017-07-04 12.37.54.jpg . Miras a través de todo - fotografías, sus bocetos, tratando de identificar objetos o signos de lo que estás buscando - y no importa si estás buscando una foto perdida o quieres encontrar una foto decente en los archivos para la presentación de un nuevo proyecto.
¡Sería genial si Dropbox pudiera ver de forma independiente todas las imágenes y seleccionar las que mejor coincidan con las palabras de la descripción! Esta es exactamente la tarea que nos propusimos al crear la función de búsqueda de imágenes .
, , , Dropbox.
: , () q j, s , , :
s = f(q, j).
- , , . : .
, . , .
:
, , ;
, , ;
, , - .
— 2012 . Krizhevsky . ImageNet hallenge. , , , , Open Images ImageNet, , TensorFlow PyTorch, , . , :
, , . , , , , , ? , ?
, , , .
. jc . C- , C — ( ). , , , .
— . — word2vec — Mikolov . 2013 . Word2vec , , , , . d- , d .
, word2vec. , , :
q d- qw, . w, — c.
ciw. m̂i = qw - ciw — i- . -1 1 , . ( mi = max(0, m̂i)), , .
, qc = [m1 m2 ... mC], C- , , — , , .
3 — - , qc = qwC, C — ciw.
qc — s = qcjc.
. . - , s = qcJ, J jc , s — .
. , — : , , .
, . , [0,35–0,62 0,70], .
, .
EfficientNet, OpenImages. 8 500 . , . , Dropbox.
TensorFlow ConceptNet Numberbatch. , , , , . : dog chien , .
AND, . , , beach ball, . , OR , beach ball (beach AND ball) OR (beach ball). , .
, , J . , , , , . ().
J , Dropbox Nautilus.
, Nautilus (forward index), (, ) , (inverted index), (posting list) , . :
, doc_1 doc_2 , . doc_3 , , .
, , . doc_1 , doc_2, doc_1 .
. jc . .
, :
qw C qc, . C — , , .
, qc, . , , .
jc qc, s. , .
- , . 10 000 10 000 , 40 . , 10 000 . , 40 80 . , , !
, , , , m̂i , 5 000 . , 10 .
, , , . s = qcjc, qc — 10 000 , jc — 10 000 , . , s.
qc jc , . , 10 qc 50 jc . :
, . , , , — .
-. , OCR- , .
?
, , Dropbox. . , , . , , , , , " , " .
, , . , "Machine Learning Deep Learning", NVIDIA.