Próbuję używać CNN (splotowa sieć neuronowa) do klasyfikowania dokumentów. CNN dla krótkiego tekstu / zdań był badany w wielu artykułach. Wydaje się jednak, że żaden dokument nie używał CNN do długiego tekstu lub dokumentu.
Mój problem polega na tym, że dokument zawiera zbyt wiele funkcji. W moim zestawie danych każdy dokument zawiera ponad 1000 tokenów / słów. Aby podać każdy przykład do CNN, przekształcam każdy dokument w matrycę za pomocą word2vec lub rękawicy, co daje dużą matrycę. Dla każdej matrycy wysokość to długość dokumentu, a szerokość to rozmiar wektora osadzania słowa. Mój zestaw danych zawiera ponad 9000 przykładów i trenowanie sieci zajmuje dużo czasu (cały tydzień), co utrudnia dostrojenie parametrów.
Inną metodą wyodrębniania funkcji jest użycie jednego gorącego wektora dla każdego słowa, ale spowoduje to utworzenie bardzo rzadkich macierzy. I oczywiście ta metoda wymaga nawet więcej czasu na szkolenie niż poprzednia metoda.
Czy istnieje lepsza metoda wyodrębniania funkcji bez tworzenia dużych matryc wejściowych?
Jak powinniśmy obsługiwać dokumenty o zmiennej długości? Obecnie dodaję specjalne ciągi, aby dokument miał tę samą długość, ale nie sądzę, że to dobre rozwiązanie.