PNL SBert (Bert) per il confronto delle risposte STS

Aug 20 2020

Ho cercato un buon modo per automatizzare la valutazione delle risposte brevi. Essenzialmente un insegnante fa un test con alcune domande come:

Domanda: perché Colombo salpò verso ovest per trovare l'Asia?

Risposta: così avrebbe potuto trovare una nuova rotta commerciale verso l'Asia attraverso l'oceano. Tre obiettivi degli spagnoli nelle Americhe erano il desiderio di ottenere grandi quantità di ricchezze, stabilire rivendicazioni su quanta più terra possibile e colonizzare il più possibile.

Con ciò abbiamo la risposta corretta e vorremmo confrontarla con la risposta degli studenti e produrre un punteggio basato sulla somiglianza. So che questo non è un sostituto affidabile per la valutazione umana, ma per il bene dell'esempio.

Mi sono imbattuto in questo documento e base di codice:https://arxiv.org/pdf/1908.10084.pdf

https://github.com/UKPLab/sentence-transformers

Sembra il metodo ideale per risolvere questo problema, ma la maggior parte degli esempi si basa sul punteggio/classifica della ricerca semantica. Mi chiedo se sono sulla strada giusta, dato che sto solo confrontando due risposte e non un cluster. Qualcuno con più esperienza può darmi qualche dritta?

Risposte

3 20roso Aug 20 2020 at 23:14

Ho usato Siamese Bert e posso dire che fa un buon lavoro. Tuttavia, il problema è che i dati che sono stati messi a punto in cima a Bert potrebbero non rappresentare necessariamente interamente la stessa distanza semantica delle risposte tra il vero e quello dello studente. Ad esempio, se c'è una domanda sull'ingegneria, dove un piccolo cambiamento di parola può significare una cosa completamente diversa; SBert li troverebbe comunque abbastanza simili perché sono legati all'argomento. A meno che non sia messo a punto.

Inoltre, non sarai in grado di interpretare la somiglianza. Se uno studente ti chiede perché la risposta del mio pari è migliore, non sarai in grado di spiegare.

La mia opinione: credo che potresti usare questo strumento come un modo per ridurre le risposte totalmente incoerenti, ma a un certo punto sarà necessaria una valutazione umana. E magari usa metriche interpretabili come ROUGE o BLEU. So anche che questo argomento è piuttosto alla moda nella PNL, non sarei sorpreso se ci fosse o se ci fosse un buon strumento pronto per questo, ma al momento non ne sono a conoscenza.

1 20roso Aug 21 2020 at 02:30

@b_the_builder Belle scoperte! Il primo mi sembra un avanzamento della distanza del Word Mower usando le somiglianze tra ogni parola. Credo che possa ancora mancare l'adattamento del dominio. Considerando che il secondo link che hai fornito fa la pre-formazione per quel motivo specifico. Tutto sommato, qualunque sia il metodo che usi, credo che dovrai scegliere alcune frasi rappresentative di corrispondenza difficile e vedere come si comportano su di esse, dopo il pre-allenamento sui tuoi corpora. Se vuoi essere sicuro. Per ispirazione, puoi esaminare qui i compiti di somiglianza semantica tra le frasi.

Valentas Aug 20 2020 at 20:27

Ho provato GPT-2 con il tuo prompt ma non ho avuto molto successo:

RahulRamachandran Feb 08 2021 at 16:32

Inoltre penso che non prenderà in considerazione anche le negazioni. Per prima cosa vuoi fissare una soglia per le risposte corrette o parzialmente corrette e sbagliate. Ma è un compito difficile perché non considera bene gli enunciati di negazione. ad esempio: se fornisci due affermazioni come Tony Stark è Iron Man e Tony Stark non è Iron Man che è un'affermazione puramente contraddittoria, la somiglianza del coseno dirà che queste affermazioni sono in qualche modo simili (anche con STS robera large, il modello di riferimento) che mostra questo non può essere utilizzato per la valutazione delle risposte. Non so se ci sono altri modi per affrontare questo, ma questo è dalla mia esperienza.