Sistema de recomendación de empleo basado en tecnología de big data Hadoop y algoritmo de filtrado colaborativo

1. Introducción

Con el rápido desarrollo de Internet, la cantidad de datos de red sigue aumentando y hemos entrado en la era de los grandes datos. Una gran cantidad de información y productos se presentan frente a los usuarios al mismo tiempo, lo que nos hace enfrentar un problema grave: la sobrecarga de información, y la recomendación personalizada es una forma efectiva de resolver este problema.El método de filtrado colaborativo es actualmente el más utilizado. sistema de recomendación personalizado Método de recomendación, que proporciona recomendaciones a los usuarios en función de las preferencias del grupo. El algoritmo de filtrado colaborativo independiente tradicional ya no puede satisfacer las necesidades de procesamiento de información masiva en términos de eficiencia y complejidad computacional.El desarrollo de la tecnología de computación en la nube proporciona una nueva dirección de investigación para los algoritmos de recomendación. Por lo tanto, se puede considerar utilizar la combinación de tecnología de big data para abordar problemas como la escalabilidad de algoritmos. Este documento investiga e implementa el algoritmo de recomendación de filtrado colaborativo de agrupamiento basado en la tecnología de procesamiento de big data de Hadoop y analiza la aplicación de conjuntos de datos de películas. Estudia principalmente los dos marcos principales de Hadoop, el algoritmo de agrupamiento clásico y los conceptos relacionados del algoritmo de recomendación; propone un algoritmo de recomendación de filtrado colaborativo de agrupamiento distribuido basado en la tecnología de procesamiento de big data de Hadoop para resolver el problema del algoritmo de filtrado colaborativo que se ocupa de la escasez de datos. y algoritmo La expansibilidad de los datos; el método de descomposición matricial se usa para preprocesar los datos iniciales debido a la escasez de los datos, y los datos preprocesados ​​se usan para establecer un modelo de agrupamiento a través de un algoritmo de agrupamiento

2 esquema de diseño

1. Introducción

El diseño y la implementación de los sistemas de recomendación también se enfrentan a tales problemas.Muchos datos de usuarios existentes se obtienen de los registros del sitio web, y para los sitios web de comercio electrónico con un tráfico muy grande, la cantidad de datos es muy grande. Por lo general, si la información del usuario y los datos de productos son procesados ​​por una sola máquina, es una tarea imposible. Por lo tanto, el algoritmo y el almacenamiento de datos en el sistema de recomendación necesitan un marco distribuido para su procesamiento. Entre los marcos de procesamiento de big data que están surgiendo actualmente, Hadoop es sin duda uno de los marcos más populares, el marco de almacenamiento distribuido HDFS y MapRedu.

2 Investigación de la plataforma Hadoop

Hadoop es una infraestructura de sistema distribuida y una plataforma de software que se puede desarrollar y ejecutar más fácilmente para procesar datos a gran escala. Hadoop implementa un sistema de archivos distribuidos (Sistema de archivos distribuidos de Hadoop), denominado HDFS. HDFS tiene las características de alta tolerancia a fallas (tolerancia a fallas) y está diseñado para implementarse en hardware de bajo costo (low-cost). Y proporciona un alto rendimiento (alto rendimiento) para acceder a los datos de la aplicación, adecuado para aquellas aplicaciones con grandes conjuntos de datos (conjunto de datos grande). HDFS relaja (relaja) los requisitos POSIX (requisitos) para que se pueda acceder a los datos en el sistema de archivos en forma de transmisión (acceso de transmisión).

HDFS adopta el modo de arquitectura maestro-esclavo. Hay dos tipos de nodos en HDFS: un nodo de nombre (namenode) y múltiples nodos de datos (datanode).

El nodo de nombre es responsable de administrar el espacio de nombres del sistema de archivos, mantener el árbol de estructura del sistema de archivos y todos los archivos y directorios de índice que contiene. Además, el nodo de nombre también registra la ubicación del nodo de datos donde se encuentra cada bloque de datos de cada archivo, y esta información se restablecerá cada vez que se inicie el sistema. Los usuarios del cliente acceden a todo el sistema de archivos accediendo al nodo de nombre y obteniendo la ubicación de los datos requeridos en el nodo de datos correspondiente. Por lo tanto, los usuarios no necesitan saber el nombre del nodo y el nodo de datos y su ubicación al programar.

3 híbridos de algoritmos de recomendación

Dado que varios métodos de recomendación tienen ventajas y desventajas, en la práctica, a menudo se usa la recomendación híbrida. La más investigada y aplicada es la combinación de recomendación de contenido y recomendación de filtrado colaborativo.

4 Diseño de sistema de recomendación híbrido basado en plataforma Hadoop

Todo el sistema está implementado en base a Hadoop. Hadoop es un sistema de computación de big data distribuido, que se compone principalmente de la etapa maestra y los nodos DataNode. El nodo maestro es responsable de administrar todo el sistema distribuido, incluido el cálculo de las tareas de MapRedcue y el elemento Data. administración (generalmente administrado por el Maestro, también se puede configurar por separado), y el DataNode es responsable de almacenar datos y calcular las tareas de Map y Reduce las tareas. El mecanismo de trabajo de Hadoop se ha explicado de manera similar en el Capítulo 3. Otros módulos de trabajo se implementan según Hadoop, como se muestra en la Figura 5-6. Cada módulo primero solicita el Maestro cuando comienza el procesamiento de datos y el acceso a los datos (obteniendo datos HDFS o HBase), e interactúa con el DataNode después de que el Maestro procesa la solicitud.

El algoritmo dentro del motor de recomendación generalmente se enfrenta a una gran cantidad de datos y el algoritmo se puede dividir en cálculos paralelos. El algoritmo se divide en Map y Reduce, y la clave y el valor están diseñados. El diseño similar del algoritmo se describirá de acuerdo con el algoritmo específico en la parte de implementación del sistema de recomendación. El uso de Hadoop suele utilizar el paquete de cliente empaquetado por Hadoop para realizar llamadas. El cliente realiza una solicitud al maestro y luego divide las tareas de mapa de acuerdo con los datos y asigna cada tarea de mapa a un nodo diferente para ejecutar.Después de ejecutarse, la tarea de reducción extrae los resultados de datos correspondientes para continuar con el cálculo. Generar el resultado final después de la finalización.

5. Conclusión

Para el diseño del sistema de recomendación basado en Hadoop, se utilizan algunas ideas de patrones de diseño de software para guiar el diseño. Por ejemplo, el uso del modo de estrategia, el modo de fábrica, etc. Estos se describen principalmente en la parte de implementación del algoritmo. Además, todo el sistema está diseñado por capas.

En la parte de realización, el documento se centra en la realización del módulo de preprocesamiento de datos y la realización del motor de recomendación, y utiliza el patrón de estrategia para realizar la escalabilidad del motor de recomendación. Este documento también describe la implementación de cada motor de recomendación en detalle.

La tesis también puede explorar e investigar los siguientes aspectos:

(1) El arranque en frío del sistema, en este sentido, los datos de registro de usuario y los datos del producto se pueden utilizar para hacer recomendaciones utilizando un sistema de recomendación basado en el contenido. Pero la implementación específica necesita ser estudiada.

(2) El rendimiento en tiempo real no se consideró al hacer recomendaciones para los usuarios. El trabajo de investigación posterior se centrará en cómo considerar el rendimiento en tiempo real en función de la extracción de datos de registro.

3 tecnologías clave del sistema

Use springboot, vue, mysql, mybaties, typescript, html, css, js, etc. para el desarrollo

4 herramientas de desarrollo

Las herramientas de desarrollo incluyen principalmente: idea, jdk1.8, maven, mysql5.7, Navicat, etc.

Visualización de 5 códigos

@RequestMapping("/strategy")
@RestController
@Scope("prototype")
public class StrategyController {
    
    
    @Autowired
    private StrategyService strategyService;
    @Value("${web.upload-path}")
    private String path;

    @RequestMapping("/findPage")
    public ObjDat<Strategy> findPage(Strategy strategy, @RequestParam(value="page", defaultValue="1") int page, @RequestParam(value="limit", defaultValue="10") int limit){
    
    
        return strategyService.findPage(strategy,page-1,limit);
    }

    @RequestMapping("/edit")
    public JsonResult edit(HttpServletRequest request, Strategy strategy) throws IOException {
    
    
        User user=(User)request.getSession().getAttribute("user");
        if(user==null){
    
    
            return JsonResult.error("请登录");
        }
        String str=strategyService.edit(request,strategy);
        if(str.equals("成功")){
    
    
            return JsonResult.success("操作成功");
        }else{
    
    
            return JsonResult.error("操作失败");
        }
    }

6 Descripción de la función del sistema

Demostración de función de proyecto
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_42135426/article/details/128472626
Recomendado
Clasificación