Los dioses son silenciosos-directorio personal de publicaciones del blog CSDN
Este artículo es el documento SIGIR de 2021, dirección de descarga oficial: https://dl.acm.org/doi/10.1145/3404835.3462826
dirección oficial de GitHub: yuelinan/NeurJudge: El código de “NeurJudge: un marco neuronal consciente de las circunstancias para el juicio legal Predicción "(SIGIR2021))
Este documento también se centra en la tarea LJP.
Este documento se centra en las circunstancias del delito en el texto de descripción de hechos (diferentes partes del texto de descripción de hechos) y propone un modelo de marco de predicción de juicio legal consciente de las circunstancias (es decir, NeurJudge).
Utilice los resultados de las subtareas intermedias para dividir el texto de descripción de hechos en diferentes circunstancias para predecir otras subtareas. (Delito → Ley → Sentencia)
Resuelva el problema de confundir leyes y delitos: Amplíe NeurJudge a NeurJudge+: utilice la incrustación de etiquetas para integrar la información semántica de las etiquetas (leyes y delitos) en el texto de descripción de hechos. (Este enfoque obviamente se refiere a LADAN)
Diagrama de circunstancias
El texto de descripción de hechos se puede dividir en ADC (circunstancias de condena) y SEC (circunstancias de sentencia)
SEC se puede dividir en SSC (circunstancias de sentencia estatutarias) y DSC (circunstancias de sentencia discrecionales)
Para la introducción específica del contenido correspondiente en el documento , consulte esta publicación de blog Contenidos de la primera sección
Directorio de artículos
1. Circunstancias y orden de las subtareas
ADC→veredictos (crimen y derecho)
SEC (SSC+DSC)→sentencia
2. NeurJudge
2.1 Definición del problema
2.2 Modelo
2.3 NeurJudge
Segmente el texto de descripción del hecho con delitos como ADC y SEC
Use ADC para predecir la ley Use el artículo
para identificar SSC y DSC de SEC para predecir la sentencia
Usar el texto completo para predecir el delito → predecir ADC y SEC → usar ADC para predecir la ley → predecir SSC y DSC → predecir la sentencia
- Codificador de Documentos: Caracteriza el texto descriptivo de hechos/leyes/delitos. GRU o BERT, solo se proporciona la implementación de la versión GRU en el código
- GRU: use word2vec preentrenado como inicialización de representación de palabras
- BERT
- GRU: use word2vec preentrenado como inicialización de representación de palabras
- Separación de hechos: primero seleccione el ADC y luego seleccione el SEC compuesto por SSC y DSC
- Separación de Hechos Conscientes de las Circunstancias del Delito (CCFS)
- ADC es similar a la definición de delito, y SSC es similar a la ley.
- Separando ADC y SEC con cargos
- La representación de palabras obtenida en el texto de descripción del hecho H d \mathbf{H}^dHd上 agrupación media por dimensión
- Use MLP para predecir el crimen en esta representación
- Utilice la representación de palabras y la representación del delito obtenidas del texto de descripción de hechos para separar el texto de descripción de hechos. No he leído la referencia 1 aquí . El método es Vector Rejection
y Document Encoder para obtener H c ^ \mathbf{H}^{\ sombrero{c} }HC^和H d \mathbf{H}^dHdCalcule
la relevancia entre las dos palabras (calcule la similitud con el producto escalar)
para todo el texto de descripción de hechos(softmax
una versión suavizadamax
, utilizada para extraer las palabras más relevantes de la representación del delito y el texto de descripción de hechos (versión suavizada)):
( Los dos pasos anteriores se usan como operaciones de atención en el código)
Use los hechos para describir el rechazo del vector en esta atención y calcule las partes similares y diferentes (ADC/SEC)(ADC se proyecta directamente al pasado. SEC es para reste la proyección , de acuerdo con la regla del triángulo, esta es la parte perpendicular al lado opuesto)
Parael error de análisis de KaTeX: final inesperado de la entrada en un argumento macro, esperado '}' en la posición 5: \hat\̲m̲a̲t̲h̲b̲f̲{H}^ {d^+}agrupación de valores promedio para obtener el vector ADC finalf + \mathbf{f}^+F+
Es intuitivo y fácil de pensar, ya que lo que se va a calcular es la relación de correlación/irrelevancia entre el hecho y la etiqueta, ¿por qué no usar directamente la representación del hecho para realizar el rechazo del vector en la representación de la etiqueta, la sensación es proyectar la etiqueta de representación al espacio de representación de hechos, por lo que se agrega un anillo de atención para extraer el contenido que es más relevante para la etiqueta de representación en la representación de hechos como enlace de proyección? Aunque creo que la verdadera razón es que el trabajo anterior1hizo esto, así que continué haciéndolo. Hay una operación de proyección vectorial similar en GDO, pero obviamente las etiquetas vecinas en GDO pertenecen al mismo espacio de representación, por lo que no hay necesidad de proyección.
- La representación de palabras obtenida en el texto de descripción del hecho H d \mathbf{H}^dHd上 agrupación media por dimensión
- Usando ADC para predecir la ley por MLP
- Cargas similares, obtenga H a ^ \mathbf{H}^{\hat{a}}Ha^ , para dividir el error de análisis KaTeX del vector SEC: final inesperado de la entrada en un argumento de macro, '}' esperado en la posición 5: \hat\̲m̲a̲t̲h̲b̲f̲{H}^{d^-} en el vector SSC y el vector DSC,respectivamenteDo agrupación promedio para obtener SSC y DSC
- Use SSC y DSC (concat up) para predecir la oración:
- Función de pérdida de entropía cruzada ponderada:
Honestamente, en realidad está agregando tres funciones de pérdida 1: 1: 1
2.4 NeurJudge+
Se agregaron gráficos de similitud de etiquetas para delitos y artículos legales para implementar operaciones GDO (similar a LADAN 2 , pero el componente similar de LADAN está entrenado con matriz de peso, y el componente similar de NeurJudge es proyección vectorial)
Graph Construct Layer
cree que la estructura de árbol de HMN ignora la relación entre subetiquetas bajo diferentes etiquetas principales, por lo que expande el árbol en un gráfico (cargo/artículo de manera similar al gráfico 3 )
Obtenga el vector de características de la etiqueta a través de Document Encoder → agrupación promedio
Incrustación de etiquetas basada en gráficos (GLE)
- Operación de descomposición de gráficos (GDO)
- Atención Label-to-Fact (L2F) (probablemente significa que la representación del delito obtenida por GRU y el código de características de cargos especiales no están escritos en el código, lo que está escrito en el código es la representación del delito después de GDO para hacer una atención a la descripción del hecho, obtenga 2 atenciones)
Después de concatenar 2 atenciones, obtenga la representación de hecho consciente de la etiqueta de cargo y la representación del artículo legal correspondiente
- Combine estos dos vectores en NeurJudge para hacer predicciones:
3. Experimenta
3.1 Conjunto de datos
análisis de los datos
3.2 Resultados del experimento principal
3.3 Estudio de ablación
3.4 Estudio de caso
4. Reproducción de código
Lo reproduje directamente en los datos que preprocesé con LADAN. El proceso de preprocesamiento de datos se complementará en las notas de LADAN más adelante.
El formato de archivo de datos sin procesar utilizado en el proyecto original debe ser similar a los datos sin procesar. En cuanto al método de procesamiento mencionado en su artículo, no parece estar reflejado en el código, no sé cómo manejarlo.
El código no proporciona el modelo word2vec del autor y el gráfico en el conjunto de datos CAIL-big, puede preguntarle al autor.
Mis principales modificaciones son la secuencia del código, la carga de datos y el código de carga del modelo word2vec (no se proporciona el código de este autor, si realmente no puede escribirlo, puede preguntarle al autor), todo sigue siendo similar al código original
En el código, se da directamente el código de NeurJudge+. Si quieres separar la parte de la imagen y hacer NeurJudge, puedes hacerlo, pero no me importa.
model.py: contiene el modelo NeurJudge (otros archivos de código se sienten muy fáciles de entender, puede leer mis otros blogs para aumentar el conocimiento. Lo agregaré aquí cuando tenga tiempo)
- incrustación de vector de palabra
- Use
self.encoder_charge
(GRU) para caracterizar el texto de la ley y el delito (el texto de la ley es el texto original, y el texto del delito es la "definición" del delito 4 ) , y tome la combinación promedio de la salida en todas las palabras como la representación final de cada muestra self.graph_decomposition_operation()
El método realiza operaciones GDO de 2 capas sobre el crimen y la ley para obtener una nueva representación.
Es recorrer dos veces, cada vez recorrer todas las etiquetas, y recorrer todos los vecinos de cada etiqueta, O ( N 3 ) O (N^3)O ( norte3 )Lo anterior debería estar allí, pero la imagen es bastante pequeña, por lo que aún puede funcionar.g
Calcule la multiplicación por elementos ( ) entrela etiqueta y el vector entre cada vecino*
y luego sume (torch.sum(x,-1)
), que es el producto escalar.
El dividendo se suma1e-10
, debería ser para evitar la situación de todos los 0 (el elemento del vector es un número negativo, no lo sé).self.encoder()
(GRU) que representa el texto del caso- Atención L2F: versión del crimen
Transmita la representación legal (una a través de GRU y otra a través de GDO) a cada lote de casosnew_charge_repeat = new_charge.unsqueeze(0).repeat(d_hidden.size(0),1,1)
, y luego useCode_Wise_Attention
la representación de texto de caso para implementar el mecanismo de atención para obtener dos representaciones
(Todavía tengo El problema es que W α W_ \alfaWa¿Por qué falta?
Concatena los dos y usa MLP para predecir los registros del crimen. - Para obtener el delito predicho, use
fact_separation()
: Rechazo de vector
para incrustar el vector de palabra del delito predicho, y utilícelo para realizar la representación del texto del casoMask_Attention
(igual, la parte de conversión lineal desaparece misteriosamente...)
En comparación con la fórmula en el código, el problema de la máscara se considera principalmente Crear una máscara de 2 capas (una antes de softmax, una antes de ×V)
y luego calcularg
, que es similar al método de escritura de la parte GDO
Regresar Caracterización ADC y SEC - Atención L2F versión legal
- Concatenar la representación del texto del caso, la representación obtenida por la ley de atención L2F y la representación ADC, aprobar GRU, agrupar, aprobar MLP y predecir la ley
- Luego use una de las tiras de uso para caracterizar el SEC
fact_separation()
, ligeramente, para obtener SSC y DSC - Concatenar la representación de texto de caso, SSC y DSC, aprobar GRU, agrupar, aprobar MLP y predecir la oración
Aprendizaje de similitud de oraciones por descomposición y composición léxica ↩︎ ↩︎
Consulte mi publicación de blog anterior: Re27: Lea el documento LADAN Distinguir artículos legales confusos para la predicción de sentencias legales ↩︎
El umbral de similitud dado en el código LADAN es que la similitud de coseno representada por TFIDF es mayor que 0.3, lo cual no se da en NeurJudge.El autor dijo que la similitud de coseno representada por word2vec es 0.5. Yo mismo uso la similitud del coseno de la agrupación promedio representada por word2vec. El umbral para artículos legales es 0.95 y el umbral para delitos es 0.85 ↩︎
En el proyecto original de NeurJudge, se dan la definición, el sujeto, los
aspectos subjetivos, el objeto y los aspectos objetivos del delito. da El código definido se usa para la representación de texto, por lo que solo uso la definición cuando escribo el código para dibujar. ↩︎