|
хочу странного gist(cube(array[1:300])) or more
|
|||
---|---|---|---|
#18+
1. cube(array) <-> cube(array) считается довольно шустрее чем ~ sum((X1-X2)*(X1-X2) order by o ) from unnest(array,array) with ordinality u (X1,X2,o) т.е. установка cube оправдана уже этим, если считать на лету расстояния между многомерными векторами, хранимыми в базенке. теперь хочу еще удобств для ускорения выборок. для отдербаев. но засада -- размер вектора 300 Код: sql 1. 2. 3. 4. 5. 6.
варианты : 0. хотелось бы для индекса загрубить до cube4 или даже cube2 . например. но таких не делают. колхозные подходы: 1. для отсечки по расстоянию от можно юзать отсечку по подразмерностям ([1:200],[101:300]). все точно не отсекут, но сильно усечь можно. но одербай по полной размерности с лимитом так не сделаешь (поиск нескольких ближайших). интересуют идеи -- что можно предпринять ? с учетом того что пока макет -- размерность 300, но в бубущем рекомендуют иметь около 2000. или имеет смысл на gpu переходить ? без индексов но грубой силой т.с. вот только распараллелятся ли кубы например PG-Strom-ом "искаропке". видимо нет. а вот агрегаты могли бы //вылезать из базы не хочется -- по многим причинам. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 12:25 |
|
хочу странного gist(cube(array[1:300])) or more
|
|||
---|---|---|---|
#18+
кроме того, помедитировав на планы на разницу объемов н-мерных куба [fld <@ cube_enlarge(const,0.1,N)] и шара [fld <-> const < 0.1] заключаю: либо пж и скл не хватает кляузы Код: sql 1.
в дополнение к Код: sql 1.
(или то же про "лимит пока") или же трехпозиционных операторов к гист-индексам.(fld <-> const < const2 ). если конечно внутре неонка не через дофильтр речека сферу усекает. на самый херовый конец кажись пж не хватает хинта "ферст роуз" для курсора без лимита. злобные таки дятлы эти пжпейсатели пысы. жаль что у олла так пусто с айдеями ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 10:28 |
|
хочу странного gist(cube(array[1:300])) or more
|
|||
---|---|---|---|
#18+
qwwq, тут пишут что какие-то константы типа размера страницы можно поменять в исходниках и тогда вроде можно работать с бОльшими размерностями. это ведь word2vec? можете что-нибудь порекомендовать почитать про сабж? хочу поиграться, да все никак руки не дойдут( ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 20:28 |
|
хочу странного gist(cube(array[1:300])) or more
|
|||
---|---|---|---|
#18+
Alexius, популярно: rusvectores , Church R.W. Word2Vec. In: Natural Language Engineering, Volume 23, Issue, pp. 155-162. doi:10.1017/S1351324916000334. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2018, 22:12 |
|
хочу странного gist(cube(array[1:300])) or more
|
|||
---|---|---|---|
#18+
Ы2, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 10:13 |
|
хочу странного gist(cube(array[1:300])) or more
|
|||
---|---|---|---|
#18+
Alexiusqwwq, тут пишут что какие-то константы типа размера страницы можно поменять в исходниках и тогда вроде можно работать с бОльшими размерностями. это ведь word2vec? можете что-нибудь порекомендовать почитать про сабж? хочу поиграться, да все никак руки не дойдут( перебирать исходники -- это не моё. я дегенерат с одной левой. мне и кодить вилы. это уже не ворд2век. это "семантические вектора" документов , где по дороге поюзаны ворд2веки в чистом пайтоне (на массиве ру-вики) для создания сторонней линейки к документам. (задача мерить доки в динамике, искать аномалии ,например. нужна линейка стационарная, м.б. не одна, не зависящая от набора доков (т.о. док2век не подходит, имхо, совсем. могу врать)). в интернетиках описаны 2 идеи (2 варианта реализации точнее) перехода от ворд2веков к семантическим векторам. обе -- на словах, без кода. через кластеризацию ворд2веков и переход "кластерным координатам" для слов и документов. я пока пробую более короткий (слово <==> 1кластер -> частота==координата). работает но грубо. есть более гладкое "преобразование" (взвешивание слова на центроидах кластеров). тоже работает. но пока только потрогал. обоснования (арифметики) не видел. и вообще семантика устроена как фракталы (огрубляем линейку -- на слово налипает много больше "близости", уточняем -- "контекст" слова (точнее -- "понятия", т.к. омонимия) худеет.) а не векторочки. если помедитировать над набором растокенизированных текстов. а в2в тупо попробровать легко. если пайтон под рукой. даже не въезжая в арифметику "обосновывания" https://habr.com/post/425507/ https://textminingonline.com/training-word2vec-model-on-english-wikipedia-by-gensim обобосновалка какбе : http://nlpx.net/archives/179 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 10:32 |
|
хочу странного gist(cube(array[1:300])) or more
|
|||
---|---|---|---|
#18+
Alexiusqwwq, тут пишут что какие-то в "там" ещё пишут что от инд-са более скокито-мерений больше вреда на ордербае по евклиду, чем пользы. пейчаль. хотя при 100 у меня индекс сработал неплохо. но только после прогрева. у парня памяти видимо не хватало. Код: sql 1. 2. 3. 4.
холодный индекс Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: sql 1. 2. 3. 4.
теплый секскан Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
горячий индекс Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
горячий секскан Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2018, 20:57 |
|
|
start [/forum/topic.php?fid=53&msg=39714790&tid=1995559]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 277ms |
total: | 419ms |
0 / 0 |