Noviembre18, 2017 Concepción, Chile #sqlsatconcepcion
Utilizando R + Python en SQL Patricio Cofre Master of Engineering Management, Northwestern Univ. Master Engineering Sciences, Catholic University of Chile Metric Arts Co-Founder, Big Data & Analytics Professional Services firm focused on the Latam market. Lecturer and Speaker in several events and Universities in Latam /pcofre @pcofre pcofre
Patrocinadores del SQL Saturday 3 18-11-2017 SQL Saturday #684 Concepcion, Chile
En la Web Moderna TODO es recomendación
Sistemas de Recomendación (RecSys) Los sistemas de recomendación corresponden a paradigmas de modelación, capaces de desplegar ítems ordenados en función de una predicción del ranking que un usuario le daría a un ítem que aún no ha considerado, o bien no lo ha hecho en la compra actual
Sistemas de Recomendación (RecSys) MANY PEOPLE TELL US THEY WATCH FOREIGN MOVIES AND DOCUMENTARIES, BUT IN PRACTICE, THAT DOESN T HAPPEN. NETFLIX People rate movies like Schindler s List high, as opposed to one of the silly comedies I watch, like Hot Tub Time Machine. If you give users recommendations that are all four- or five-star videos, that doesn t mean they ll actually want to watch that video on a Wednesday night after a long day at work NETFLIX
Sistemas de Recomendación (RecSys) Existen dos familias de enfoques: Filtrado basado en contenido Filtrado colaborativo
Sistemas de Recomendación (RecSys) Filtrado Basado en Contenido (Afinidad Sujeto - Ítem) #can #red #trendy #brand
Sistemas de Recomendación (RecSys) Filtrado Colaborativo (Afinidad Ítem - Sujeto)
Sistemas de Recomendación (RecSys)
Bases de Datos Orientadas a Grafos SQL Server 2017 y Otras
Base de datos orientada a grafos Representación de entidades como nodos de un grafo y sus relaciones como las aristas del mismo, de manera que se pueda usar teoría de grafos para recorrerlo A diferencia de la las bases de datos relacionales, almacena relaciones entre nodos de cualquier tipo, reduciendo la cantidad de joins.
Base de datos orientada a grafos En sets de datos evolutivos, interconectados y jerárquicos han demostrado ser más eficiente que los modelos relacionales. Ejemplos contemporáneos de esto son las redes sociales y los sistemas de recomendación.
Base de datos orientada a grafos Motore s Lenguajes
SQL Server 2017 Corre en Windows, Linux & Docker SQL Server 2017 Soporte para Machine Learning en R & Python Soporte para Graph Data para realizar análisis complejo de relaciones
Integración total con el motor relacional: Metadata Lenguaje T-SQL Ventajas SQL Server Esto permite usar queries que combinen datos de grafo y relacional. Permite combinar grafos con otras tecnologías del SQL Server como Columnstore, High Availability, Machine Learning, SSIS, etc. Misma Seguridad y Compliance.
Nodo (Node): Representa un objeto real, capaz de interactuar con otros. Equivalente a las entidades. En el ejemplo: Persona, Ciudad o Restaurant Vértice (Edge): Representa las relaciones en el grafo. Pueden tener atributos. En el Ejemplo: Amigo de, Like, Ubicado en, etc. Propiedades (Properties): Propiedad de interés, que describe a un Nodo o Vértice. Elementos Grafo
Ejemplo SQL Server 2017 -- Restaurants preferidos por Patricio SELECT Restaurant.name FROM Person, likes, Restaurant WHERE MATCH (Person-(likes)->Restaurant) AND Person.name = 'Patricio'; -- Restaurants que gustan a los amigos de Patricio SELECT distinct Restaurant.name FROM Person person1, Person person2, likes, friendof, Restaurant WHERE MATCH(person1-(friendOf)->person2-(likes)->Restaurant) AND person1.name='patricio'; -- Restaurants Preferidos por quienes viven en Montevideo SELECT distinct Restaurant.Name FROM Person, likes, Restaurant, livesin, City, locatedin WHERE MATCH (Person-(likes)->Restaurant-(locatedIn)->City AND Person-(livesIn)->City) AND City.name = 'Montevideo'
CASO
(Chile) E-commerce fundado en Chile hace más de 10 años SQL Server back-bone 200+ Empleados 5K+ Eventos 8M+ Tickets 3M+ Visitas Web / Mes
(Chile)
Recomendación User1 User2 User3 User4 User5 Artista 1 Artista 2 Artista 3 Artista 4 Artista 5
Implementación en Graph Data UniqueUser (node table) Compra (edge table) UniqueEvent (node table) CREATE TABLE UniqueUser (UserId VARCHAR(80)) AS NODE CREATE TABLE Compra (Nivel BIGINT)) AS EDGE CREATE TABLE UniqueEvent (EventId VARCHAR(50),EventTitle VARCHAR(500),ArtistName VARCHAR(500)) AS NODE
DEMO DEMO
DEMO
Preguntas 30 18-11-2017 SQL Saturday #684 Concepcion, Chile
Gracias por vuestra asistencia! #sqlsatconcepcion