Information retrieval Flashcards

1
Q

Describa un indice invertido.

A

Un ı́ndice invertido (II) contiene por cada palabra una lista de los documentos en los cuáles aparece dicha palabra.

En el indice se guardan las palabras alfabeticamente, por lo que para realizar una consulta no hace falta mas que realizar una busqueda binaria del termino para poder recuperar los documentos que lo contienen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Liste las opciones de almacenamiento de lexico.

A
  • Léxico Concatenado

- Front Coding

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Explique estructura de almacenamiento de lexico concatenado.

A

La estructura mas simple es una tabla en donde almacenemos en cada posición el offset en bytes a donde está almacenado el término. Cuando llegamos a una posición de esta tabla leemos la posición siguiente para saber la longitud del término, luego vamos a la posición indicada, accedemos al término y comparamos contra el que estamos buscando.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Explique estructura de almacenamiento de lexico front coding.

A

Este mecanismo aprovecha la particularidad de que en una lista ordenada alfabéticamente de términos los términos vecinos suelen compartir los primeros caracteres. Esto puede aprovecharse mediante una estructura en la cual indiquemos la cantidad de caracteres (prefijo) compartidos con el término anterior, la cantidad de caracteres diferentes y un puntero a cuales son esos caracteres.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cuando tiene sentido usar front coding?

A

El front-coding sólo es necesario cuando tenemos poca memoria o bien la memoria que tenemos no es suficiente porque tenemos una enorme cantidad de términos. En general este caso es raro y se suele dar el inverso, el léxico no es un problema en memoria pero queremos poder encontrar los términos muy rápidamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Almacentamiento de punteros: Cual es la primera mejora que se puede hacer en el almacenamiento de punteros?

A

Ordenar los documentos de forma creciente y almacenar, en lugar del nro. de documento, las distancias entre los documentos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Que problema tiene el almacenamiento de docs. como la distancia entre ellos? Como se soluciona?

A

El peor de los casos es que un termino aparezca solamente en el ultimo documento, por lo que la cantidad de bits para codificarlo sera suboptima.

Se soluciona usando codigos de longitud variable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Describa condigos de long. variable.

A

En cada byte el primer bit indica si el byte es el ultimo o si el nro. sigue en el proximo byte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Codigo unario.

A

Escribimos n−1 bits en cero y luego un 1. Para la distancia n el código unario ocupa exactamente n bits.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Codigos gamma.

A

Concatenacion de:

i) floor(log_2(x)) + 1 en unario
ii) x - 2 ^ ( floor(log_2(x)) ) en binario de floor(log_2(x)) bits

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

codigos delta.

A

Concatenacion de:

i) floor(log_2(x)) + 1 en gamma
ii) x - 2 ^ ( floor(log_2(x)) ) en binario de floor(log_2(x)) bits

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Que indexar? Desarrolle los conceptos de parsing, case folding, stop words y stemming.

A

Parsing
El proceso de extracción de términos a partir de los documentos no es trivial, hay muchas consideraciones a hacer, en primer lugar hay que determinar cuales son los separadores que nos permiten separar los términos, espacios en blanco, puntuación etc. Hay que determinar que hacer con cosas del estilo ”Johnson-Johnson” que puede ser uno o dos términos, hay que decidir que hacer con los números. Por ejemplo no tendrı́a sentido indexar los números de página de un documento pero si cosas como 1984, en concreto si tenemos la frase ”2 de Marzo de 1984” tenemos el problema de que hacer con el número ”2”, si lo indexamos entonces vamos a indexar también números de página, números en tablas y todo tipo de ocurrencias del ”2” pero si lo ignoramos no vamos a poder recuperar la frase completa en caso de buscarla. Decisiones…

Case Folding
Una vez tokenizados los términos, proceso que hemos mencionado no es sencillo, hay varias decisiones de pre-procesamiento a tomar. Por ejemplo podemos llevar todos los términos a minúsculas para no tener que indexar ”Casa” y ”casa” como dos términos diferentes, esto nos puede llevar a que ”Azul” y ”azul” se consideren lo mismo cuando en realidad el primero puede ser un nombre de persona o de una ciudad.

Stop Words
Es posible también decidir eliminar de nuestro ı́ndice las denominadas stop words que son palabras muy frecuentes como ”a”, ”que” o en inglés ”is”, ”that”, ”the” ,etc. En algunas aplicaciones eliminar stop words es fundamental para el correcto funcionamiento del algoritmo mientras que en otras los stop words ayudan a que el algoritmo funcione mejor. Decisiones.

Stemming
Finalmente podemos decidir aplicar stemming que consiste en reducir a las palabras a su raı́z idiomática, aplicando stemming cosas como ”advertise” y ”adevertisement” se convierten en un mismo término. Hay varios algoritmos de stemming conocidos siendo el mas popular el algoritmo de Porter. Al igual que en el caso de los stop words algunas aplicaciones se ben beneficiadas por realizar stemming mientras que otras no.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Para que tipo de consultas sirven los indices invertidos, y donde hacen agua?

A

Nuestro II puede responder, hasta el momento, consultas puntuales de forma eficiente. Esto nos permite también resolver consultas booleanas de tipo ”t1 and t2” o cosas mas complejas como ”(t1 or t2) and (t3)”.

Un tipo de consulta importante y que no podemos resolver son las frases o consultas de proximidad como por ejemplo ”turismo en Parı́s” en donde queremos encontrar los documentos que tienen esa frase. Las frases son una generalización de las consultas por proximidad en donde queremos que los términos de nuestra consulta aparezcan en los documentos cercanos unos a otros, una frase es una consulta con proximidad igual a 1 es decir que cada término debe aparecer a continuación de otro.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Como se puede adaptar el II para aceptar consultas posicionales?

A

Agregando info posicional de las palabras en los docs.

Para mas detalle, ver apunte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Que cuidado hay que tener al agregar info. posicional al II? Como se soluciona?

A

La información posicional hace que nuestro ı́ndice crezca en tamaño notablemente por lo que podrı́a ser conveniente usar códigos gamma o delta para las listas de punteros ya que el tamaño de las mismas podrı́a ser muy grande usando VBcodes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cuando entran en escena los signature files?

A

En los casos en los cuales un ı́ndice invertido no puede usarse por no haber espacio suficiente podemos recurrir a un ı́ndice que tiene un costo aun menor en espacio que son los signature files.

17
Q

En que se basan los signature files?

A

En un signature file vamos a usar funciones de hashing para obtener una representación de cada documento.

18
Q

Como se obtiene el signature de un termino?

A

Para obtener el signature de un término necesitamos k funciones de hashing cuyo espacio de direcciones sea b bits. Por ejemplo si b = 8 cada función de hashing devuelve un número entre 0 y 7. El signature consiste simplemente en prender los bits indicados por las funciones de hashing.

19
Q

Como se obtiene el signature de un termino?

A

Para un documento D el signature del documento es el resultado de realizar un ”or” (ororia) de los signatures de todos sus términos.

20
Q

Como se realizan consultas con signature files?

A

Para realizar una consulta puntual sobre un signature file partimos de un cierto término ”t” al cual le aplicamos las funciones de hashing para obtener su signature, una vez que tenemos el signature tenemos que recuperar todos los documentos para los cuales hay un 1 en las posiciones para las cuales hay un 1 en el signature del término. Estos documentos son los candidatos a tener el término.

21
Q

Que problema tienen las consultas con signature files?

A

Puede haber falsos positivos ya que en algún documento los bits pueden haber sido encendidos por otros términos diferentes al que estamos buscando (colisiones).

22
Q

Que tipo de consultas son muy adecuadas con los signature files? Por que?

A

Consultas booleanas. Porque al manejarse todo con bits, solamente se opera booleanamente con los bits necesarios y listo.

23
Q

Que problemas tiene el modelo BOW (Bag of words) para consultas ranqueadas?

A

Que no considera peso de terminos, ni cantidad de veces que aparece en un doc, ni tampoco la longitud del documento…. En fin, nada del contexto.

24
Q

De la formula de TF-IDF.

A

TF = term frequency.

IDF(t_i) = log( (N+1) / (ft_i) ), donde
N: cant. de docs.
ft_i: cant. de docs. que contienen al termino t_i.

De esta forma por cada término de la consulta y cada documento multiplicamos el valor de TF por IDF y eso nos da el peso del término para ese documento. El puntaje del documento es la sumatoria del puntaje TF-IDF de todos los términos de la consulta que aparecen en el documento.

25
Q

Que problema tiene TF-IDF? Como se soluciona?

A

El TF tiene demasiado peso.
Se soluciona usando como TF alguna de las siguientes alternativas:
i) 1 o 0, segun si el termino aparece o no.
ii) log(1 + ft_ij)
iii) log(1 + log(1 + ft_ij))
iv) BM25

26
Q

De la formula de BM25.

A

TF_ij = ((k + 1) ft_ij) / (ft_ij + k)

notar que cuando k = 0, se tiene el modelo binario, y cuando k -> oo, se tiene el modelo lineal.

27
Q

Que problema sigue estando sin solucionar con BM25? COmo se soluciona?

A

La long. de los docs.
Se soluciona normalizando la long. de los docs, segun:

norm = 1 - b + b |D_j| / avdl, donde
b: entre 0 y 1. Suele ser 0.75.
|D_j|: longitud del documento j.
avdl: long. promedio de los documentos.

28
Q

Explique LSI.

A

Basicamente se arma una matriz de documento x termino, donde cada posicion tiene el peso, calculado con TF-IDF o BM25, de cada termino para cada documento.

A esta matriz se le aplica la SVD, quedandonos con las k primeras cols. de U. Lo que se logra es que los documentos quedan representados por muchas menos columnas que identifican conceptos, no palabras singulares, lo cual tiene el efecto de mejorar las consultas.

Sistemas basados en LSI usando 200 o 300 dimensiones son capaces de responder consultas con calidad comparable a sistemas que usan cientos de miles o millones de dimensiones y por lo tanto son mucho mas lentos. Pero no solo la performance es la ventaja sino que al reducir el ruido en algunos casos los sistemas basados en LSI pueden resolver consultas mejor que un sistema tradicional. Todo esto nos lleva a tratar de entender cómo evaluar un sistema de consultas.

29
Q

Como se realizan conslutas en LSI?

A

Para poder realizar una consulta es necesario plegar el vector consulta al nuevo espacio de dimensiones, esto lo sabemos hacer e involucra multiplicar al vector consulta por V y Σ − 1 esto nos da la representación de la consulta Q en k dimensiones que podemos usar para calcular el producto interno contra cada uno de los vectores de los documentos para luego simplemente ordenarlos por puntaje.

30
Q

Que miden la precision y el recall?

A

La precisión mide la cantidad de documentos relevantes sobre el total de documentos recuperados.

El recall mide la cantidad de documentos relevantes recuperados sobre el total de documentos relevantes.

31
Q

De la formula F_beta. Cual es el valor de beta mas comun?

A

F_beta = ((beta^2 + 1) PR) / (beta^2 P + R)

beta = 1 es lo mas comun.