Profesorado
Responsable
- David Garcia Soriano (david.garcia.soriano@upc.edu)
- Marta Arias Vicente (marias@cs.upc.edu)
Horas semanales
Teoría
1.5
Problemas
0.5
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
6
Competencias
Especialidad sistemas de información
- CSI2.3 - Demostrar conocimiento y capacidad de aplicación de los sistemas de extracción y de gestión del conocimiento.
- CSI2.6 - Demostrar conocimiento y capacidad de aplicación de los sistemas de ayuda a la toma de decisiones y de bussines intelligence.
Especialidad de computación
- CCO2.5 - Implementar software de búsqueda de información (information retrieval).
Aprendizaje autónomo
- G7.3 - Aprendizaje autónomo: Capacidad de planificación y organización del trabajo personal. Aplicar los conocimientos adquiridos a la realización de una tarea en función de la pertenencia y la importancia, decidiendo la manera de llevarla a cabo y el tiempo que hay que dedicarle y seleccionando las fuentes de información más adecuadas. Identificar la importancia de establecer y mantener contactos con los compañeros de estudios, con el profesorado y con profesionales (networking). Identificar fórums de información sobre ingeniería TIC, sus avances y su impacto en la sociedad (IEEE, asociaciones, etc.).
Objetivos
-
Conocer los problemas asociados al almacenamiento y recuperación de la información, sobre todo de tipo textual.
Competencias relacionadas: CCO2.5, -
Entender que la efectividad en la búsqueda y recuperación de la información está muy relacionada con la organización y descripción de esta información.
Competencias relacionadas: CCO2.5, G7.3, -
Conocer y entender la estructura, arquitectura y funcionamiento de la web, y los elementos relacionados con ella: índices, buscadores, crawlers, entre otros.
Competencias relacionadas: CSI2.3, G7.3, -
Conocer y entender los parámetros de descripción de redes complejas, así como los algoritmos principales de análisis de su estructura.
Competencias relacionadas: CSI2.3, CSI2.6, G7.3, -
Reconocer las oportunitades de uso de información masiva para los fines de una organización y elegir los métodos, herramientas y procedimientos más adecuados.
Competencias relacionadas: CSI2.6, G7.3, -
Poder decidir las técnicas de recuperación de la información que pueden ser efectivas en un sistema de información concreto, sobre todo de tipo textual.
Competencias relacionadas: CSI2.3, CSI2.6, CCO2.5, G7.3, -
Poder evaluar la efectividad y utilidad, de acuerdo con varios criterios, de un sistema de recuperación de la información.
Competencias relacionadas: CSI2.3, CSI2.6, CCO2.5, G7.3, -
Poder implementar las principales técnicas vistas en la asignatura.
Competencias relacionadas: CCO2.5, G7.3,
Subcompetences- Poder implementar las técnicas básicas (algoritmos y estructuras de datos) de recuperación de la información.
- Poder implementar los algoritmos básicos para el análisis de redes.
-
Saber utilizar, adaptar y extender software abierto.
Competencias relacionadas: G7.3,
Subcompetences- Por ejemplo: Lucene, base de datos DEX, WIRE crawler, entre otros.
Contenidos
-
Introducción
Necesidad de las técnicas de búsqueda y análisis de información masiva. Búsqueda y análisis vs. bases de datos. Proceso de recuperación de la información. Preproceso y análisis léxico -
Búsqueda en grandes volúmenes de datos
Ranking y relevancia para modelos web. Algoritmo PageRank. Crawling. Arquitectura de un sistema simple de búsqueda en la web. Técnicas basadas en tablas de hashing sensibles a la proximidad (LSH). -
Modelos de recuperación de la información
Definición formal y conceptos básicos: Modelos abstractos de documentos y lenguajes de interrogación. Modelo booleano. Modelo vectorial. Archivos invertidos y archivos de firmas. Compresión de índices. Ejemplo: Implementación eficiente de la regla del coseno con medida tf-idf.Recall y precisión. Otras medidas de rendimiento. Colecciones de referencia. "Relevance feedback" y "query expansion". -
Arquitectura de sistemas para la gestión de información masiva
Escalabilidad, alto rendimento y tolerancia a fallos: el caso de buscadores web masivos. Arquitecturas distribuidas. Ejemplo: Hadoop. -
Análisis de redes
Parámetros descriptivos y características de las redes: grado, diámetro, redes "small-world", entre otros. Algoritmos sobre redes: clustering, detección de comunidades y de nodos influyentes, reputación, entre otros. -
Algoritmos para datos masivos
Resúmenes (sketches) y flujos de datos (streaming). Muestreo (sampling). Se verán algoritmos como RESERVOIR SAMPLING, count-min sketch, hyper-log-log, etc.
Actividades
Actividad Acto evaluativo
Teoría
2h
Problemas
1h
Laboratorio
4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
12h
Metodología docente
- Clases de teoría. Antes de cada clase, el estudiante tendrá que haber leído los apuntes o materia del tema a desarrollar, que habrá sido anunciado con tiempo. El estudiante tendrá también a su disposición un cuestionario de preguntas básicas del tema, para comprobar qué grado de comprensión se ha alcanzado. En clase, elprofesor expondrá los puntos principales, asumiendo que el estudiante ha realizado el trabajo indicado e intentado responder el cuestionario, y se discutirán en común las dudas que puedan haber surgido a los estudiantes.
- Clases de problemas. Profesores y estudiantes comentarán y compararán las soluciones de los problemas que el profesor habrá indicado con tiempo suficiente antes de cada clase. Las discusiones puede hacerse en común entre toda la clase o en particular entre el profesor y un alumno. El profesor dará por supuesto que los estudiantes han pasado un tiempo razonable intentando resolver los ejercicios, y priorizán la atención a aquellos que lo hayan hecho así.
- Clases de laboratorio. Antes de cada clase, el estudiante tendrá que haber leído el guión del trabajo práctico a desarrollar en la sesión. Durante la clase, el estudiante realizará el trabajo indicado en el guión con la supervisión del profesor. En muchas de las sesiones, el guión contendrá trabajo que, probablemente, haya que terminar en horas de trabajo personal tras la sesión de laboratorio. Para la mayoría de las sesiones de laboratorio se tendrá que redactar un informe corto del trabajo realizado y/o entregar el trabajo (p.e., ficheros de resultados y programas).
- Trabajo personal. Cada tipo de actividad presencial implica una cierta cantidad de trabajo personal antes o después. Adicionalmente, algún tema o temas de la asignatura pueden no tener clases de teoría o de ejercicios asociados, y los estudiantes deberán estudiarlo por su cuenta, y usar las sesiones de actividades dirigidas si lo desean para evaluar que han progresado suficientemente.
Método de evaluación
La asignatura comprenderá los siguientes actos evaluativos:- Un primer examen parcial, realizado a mitad del curso, de la materia vista hasta entonces. Sea P1 la nota obtenida en este examen.
- Un segundo examen parcial, enfocado en la segunda mitad del curso, pero donde puede entrar cualquier parte de la asignatura. Sea P2 la nota obtenida en este examen.
- Dos pruebas presenciales de laboratorio. Sea L la nota media obtenida de estas dos pruebas.
Las tres notas L, P1 y P2 son entre 0 y 10.
La nota final de la asignatura será el resultado de la fórmula 20% L+40% P1+40% P2.
Por lo que respecta a la nota de la competencia asociada a Aprendizaje Autónomo, se calculará una nota numérica así:
- Algunas de las preguntas de las pruebas presenciales evaluatorias, marcadas especialmente, versarán total o parcialmente sobre temas que el estudiante deberá preparar por su cuenta, con poca o ninguna cobertura en clase de teoría y problemas, que se habrán indicado durante el curso. Sea S la media de estas preguntas en los exámenes aplicables al estudiante, y escalada en el intervalo [0,1].
La nota de la competencia será:
- D si S es inferior a 0.3
- C si S es entre 0.3 y 0.499
- B si S es entre 0.5 y 0.699
- A si S es 0.7 o más.
Bibliografía
Básico
-
Mining of massive datasets
- Leskovec, J; Rajaraman, A; Ullman, J.D.,
Cambridge University Press,
2020.
ISBN: 9781108476348
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004193679706711 -
Modern information retrieval: the concepts and technology behind search
- Baeza-Yates, R.; Ribeiro-Neto, B,
Addison-Wesley / Pearson,
2011 .
ISBN: 9780321416919
https://discovery.upc.edu/permalink/34CSUC_UPC/l60p4r/alma991003938679706711
Complementario
-
Introduction to information retrieval
- Manning, C.D.; Raghavan, P; Schütze, H,
Cambridge University Press,
2008.
ISBN: 9780521865715
https://discovery.upc.edu/permalink/34CSUC_UPC/i7glq6/alma991003641259706711 -
Mining the social web: data mining Facebook, Twitter, LinkedIn, Instagram, Github, and more
- Russell, Matthew A; Klassen, Mikhail,
O'Reilly Media,
2018.
ISBN: 9781491973509
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001686489706711&context=L&vid=34CSUC_UPC:VU1 -
Search engines : information retrieval in practice
- Croft, W. Bruce; Metzler, Donald; Strohman, Trevor,
Pearson,
2010.
ISBN: 9780131364899
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003969369706711&context=L&vid=34CSUC_UPC:VU1
Capacidades previas
Genéricamente, las que se adquieren en las asignaturas del grado que son requisitos de la misma.Específicamente:
- Usar con comodidad los conceptos básicos de álgebra lineal, matemática discreta, probabilidad y estadística.
- Programar con comodidad en lenguajes orientados a objetos, incluyendo herencia entre clases.
- Conocer las principales estructuras de datos para el acceso eficiente a información y sus implementaciones (listas, hashing, árboles, grafos, heaps). Ser capaz de usarlas para construir programas eficientes. Poder analizar el tiempo de ejecución y memoria usada por un algoritmo de dificultad media. Tener una cierta idea de la diferencia en tiempo de acceso entre memoria principal y memoria secundaria.
- Conocer los elementos principales de una base de datos relacional y de lenguajes de acceso tipo SQL.