Есть ли причина для использования -q
с --rank
вместо встроенного квадратичного взаимодействия низкого ранга --lrq
?
Вот как я бы обучил рекомендателей машин факторизации с --lrq
и --invert_hash
. Допустим, ваш набор данных выглядит так:
4 |u john |i hammer
...
Кодирует информацию о том, что пользователь "Джон" присвоил элементу "молот" оценку 4 и т. Д.
Я бы тренировал модель следующим образом:
$ echo "4 |u john |i hammer" | vw --lrq ui5 --invert_hash model.readable.txt
А затем извлеките скрытые факторы из model.readable.txt
(все, что ниже линии ":0
"):
$ cat model.readable.txt
Version 8.6.1
Id
Min label:0
Max label:4
bits:18
lda:0
0 ngram:
0 skip:
options: --hash_seed 0 --link identity --lrq ui5
Checksum: 3876651432
:0
Constant:142048:0.231715
i^hammer:99576:0.231715
lrq^i^hammer^1:99577:0.238051
lrq^i^hammer^2:99578:0.641153
lrq^i^hammer^3:99579:0.177484
lrq^i^hammer^4:99580:0.333955
lrq^i^hammer^5:99581:2.82811
lrq^u^john^1:15281:1.23084
lrq^u^john^2:15282:0.457055
lrq^u^john^3:15283:1.65113
lrq^u^john^4:15284:0.877392
lrq^u^john^5:15285:0.103614
u^john:15280:0.231715
Надеюсь, это поможет.