Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
M3 情報検索/推薦論文輪読会 ~SIGIR祭~ (SIGIR2021: Session 6...
Search
po3rin
August 16, 2021
Programming
0
96
M3 情報検索/推薦論文輪読会 ~SIGIR祭~ (SIGIR2021: Session 6D – IR Models)
po3rin
August 16, 2021
Tweet
Share
More Decks by po3rin
See All by po3rin
M3におけるCI/CDパイプラインを新鮮に保つ仕組み
po3rin
0
300
Go Templateを使った フロントエンド開発を採用した 経緯と所感
po3rin
1
310
検索基盤移行時の思考
po3rin
0
4.2k
Go1.19で採用された Pattern-defeating Quicksort の紹介
po3rin
7
5.7k
Elasticsearchを負荷から守るesguard
po3rin
0
260
Sudachi×Elasticsearchへの移行と医療検索システム精度改善
po3rin
1
860
eskeeperを使ったファイル定義によるindex管理
po3rin
2
480
Handling Temporal Query for Health Search with ja-timex
po3rin
3
320
医療検索における婉曲表現変換
po3rin
2
770
Other Decks in Programming
See All in Programming
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
390
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
910
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
2
430
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
110
Spring gRPC について / About Spring gRPC
mackey0225
0
220
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.3k
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
110
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
370
GitHub Actions × RAGでコードレビューの検証の結果
sho_000
0
270
『品質』という言葉が嫌いな理由
korimu
0
160
楽しく向き合う例外対応
okutsu
0
140
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
750
Featured
See All Featured
Writing Fast Ruby
sferik
628
61k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
Statistics for Hackers
jakevdp
797
220k
A Philosophy of Restraint
colly
203
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Documentation Writing (for coders)
carmenintech
67
4.6k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Transcript
hiromu-nakamura @po3rin 4*(*3 4FTTJPO%r*3.PEFMT M3 ใݕࡧ/ਪનจྠಡձ ~SIGIRࡇ~
தଜ߂ ΤϜεϦʔͷ"*ɾػցֶशνʔϜͰݕࡧج൫पΓ Λ୲͍ͯ͠Δɻ(P͕͖ɻ ֤छΞΧϯτQPSJOͰͬͯ·͢ɻ )*SPNV/BLBNVSB
5*-%&5FSN*OEFQFOEFOU-JLFMJIPPENP%&MGPS1BTTBHF3FSBOLJOH ༻ޠʹґଘͤͣɺΫΤϦϞσϧͱυΩϡϝϯτϞσϧͷ྆ํͰݕࡧ݁ՌΛϦϥϯΩϯά͢ΔϞσϧΛఏҊ 1BUICBTFE%FFQ/FUXPSLGPS$BOEJEBUF*UFN.BUDIJOHJO3FDPNNFOEFST ΫΤύʔιφϥΠζͱμΠόʔγςΟͷ྆ํΛΈࠐΜͰਪનͷύϑΥʔϚϯεΛ্ͤ͞Δύεϕʔεͷ σΟʔϓωοτϫʔΫʢ1%/ʣ 0QUJNJ[JOH%FOTF3FUSJFWBM.PEFM5SBJOJOHXJUI)BSE/FHBUJWFT %3ͷͨΊͷ҆ఆֶशΞϧΰϦζϜʢ45"3ʣͱϥϯΩϯάύϑΥʔϚϯεΛ࠷దԽ͢ΔͨΊͷ ΫΤϦଆͷֶशΞϧΰϦζϜʢ"%03&ʣΛఏҊ #1301#PPUTUSBQQFE1SFUSBJOJOHXJUI3FQSFTFOUBUJWF8PSET1SFEJDUJPOGPS"EIPD3FUSJFWBM ΞυϗοΫݕࡧ༻ͷ#&35ʹجͮ͘ϒʔτετϥοϓࣄલτϨʔχϯάํ๏ʢ#1301ʣΛఏҊ
8FJHIUJOH1BTTBHFT&OIBODFT"DDVSBDZ ΩʔϫʔυີΛར༻ͯ͠ύοηʔδͷؔ࿈ੑΛ׆༻͠ɺશମతͳݕࡧΛେ෯ʹվળ͢Δํ๏Λ࣮ݧతʹࣔ͠ɺ #.1ͱ͍͏৽͍͠ख๏ΛఏҊɻ
ઃఆ ΞυϗοΫݕࡧʹ͓͍ͯ#.͕ओྲྀ͕ͩɺ୯ޠͷॏཁ͚ͩ͡Όͳͯ͘ɺจͷॏཁߟྀ͍ͨ͠ΑͶ ΩʔΞΠσΞ จ͝ͱͷ༻ޠසͷՃॏઢܗ݁߹Λ࡞ͯ͠JOEFY͓ͯ͘͠ 8FJHIUJOH1BTTBHFT&OIBODFT"DDVSBDZ
8FJHIUJOH1BTTBHFT&OIBODFT"DDVSBDZ ઃఆ ΞυϗοΫݕࡧʹ͓͍ͯ#.͕ओྲྀ͕ͩɺ୯ޠͷॏཁ͚ͩ͡Όͳͯ͘ɺจͷॏཁߟྀ͍ͨ͠ΑͶ ΩʔΞΠσΞ ॏཁͳจʹग़ݱ͢Δ୯ޠʹॏΈΛ༩͑ͯ#.Λ֦ுɻ
5*-%&5FSN*OEFQFOEFOU-JLFMJIPPENP%&MGPS1BTTBHF3FSBOLJOH ઃఆ ਂݴޠϞσϧͷ3FSBOLJOHޮՌ͍͍͕ɺ࣮ઓͰΫΤϦ࣌ͷߴՁͳਪεςοϓ͕ωοΫ #&35SFSBOLFSʹ ΑΔՃͷϨΠςϯγʔɺߴੑೳ(16Ͱ ϛϦඵͷΦʔμʔ ΩʔΞΠσΞ λʔϜඇґଘͳΫΤϦΛԾఆ͢Δ ΦϑϥΠϯͰࣄલʹܭࢉͯ͠ΠϯσοΫε࣌ʹυΩϡϝϯτͱҰॹʹޠኮͷ֬Λอଘ
5*-%&5FSN*OEFQFOEFOU-JLFMJIPPENP%&MGPS1BTTBHF3FSBOLJOH ࣄલࣝ දݱϕʔεޮ͍͍͕ɺ༗ޮੑ·͊·͊ɺޮ΅ͪ ΅ͪ B ɻ ਂݴޠϞσϧ C D ΛͬͨΫΤϦϞσϧ༗ޮੑߴ
͍͚Ͳίετߴ͍
ࢀߟࢿྉϦϯΫ IUUQTJQTKJYTROJJBDKQFK BDUJPOSFQPTJUPSZ@BDUJPO@DPNNPO@EPXOMPBEJUFN@JEJUFN@OPBUUSJCVUF@JEpMF@OP ͜͜Ͱ2- 2VFSZ-JLFMJIPPE ͷ͓͞Β͍
5*-%&5FSN*OEFQFOEFOU-JLFMJIPPENP%&MGPS1BTTBHF3FSBOLJOH λʔϜಠཱੑͷԾఆ ɺΫΤϦϞσϧ 2- υΩϡϝϯτλʔϜͱΫΤϦ͕૬ޓʹґଘ͢Δͷͱͯ͠ϞσϧԽ͞ΕͯɺೖྗʹυΩϡ ϝϯτͱΫΤϦͷ྆ํ͕ඞཁͳ͜ͱ 5*-%&ೖྗͱͯ͠ΫΤϦςΩετ·ͨυΩϡϝϯτςΩετͷΈΛඞཁͱ͢Δɻग़ྗਂݴޠϞσϧͷޠኮʹؚ·Ε Δͯ͢ͷτʔΫϯͷର֬ɻ2-ͱ%-Λ྆ํಉ࣌ʹֶशՄೳɻ ֶश#&35ΛpOFUVOJOHɺ5*-%&2-Λ͏߹ɺΫΤϦ࣌#&35τʔΫφΠβʔͰׂ͢Δεςοϓ͕૿͑Δͩ ͚ɻ֤λʔϜͷࣄલʹJOEFY͓͚ͯ͠Δ
#&35ͰΫΤϦϞσϧΛ࡞ΔՕॴಉ͡ηογϣϯͰΧϯλʔ৯ΒͬͯΔ
ઃఆ ΞΠςϜϕʔεͷڠௐੑϑΟϧλϦϯά $3 ύʔιφϥΠζʹରԠ͢Δͷ͕͘͠ɺຒΊࠐΈख๏  ΞΠςϜؒͷڞىใ Λ໌ࣔతʹ౷߹͢Δ͜ͱ͕͍ͨ͠Ίɺଟ༷ੑΛຬͨ͢ͷ͕ࠔɻ ΩʔΞΠσΞ ϢʔβɺӾཡΞΠςϜɺλʔήοτΞΠςϜΛϗοϓύεʹɻ w
͜ͷΞΠσΞͰΞΠςϜϕʔε$3ͱͷརΛऔΓೖΕΔ1%/ 1BUICBTFE%FFQ/FUXPSL ΛఏҊɻ 1BUICBTFE%FFQ/FUXPSLGPS$BOEJEBUF*UFN.BUDIJOHJO3FDPNNFOEFST
1BUICBTFE%FFQ/FUXPSLGPS$BOEJEBUF*UFN.BUDIJOHJO3FDPNNFOEFST 1%/PWFSWJFX ຒΊࠐΈࢄԽʹΑΓɺີͳಛྔΛ PCFIPUεΩʔϜʹม 5SJHHFS/FUϢʔβʔͱͦͷτϦΨʔΞ ΠςϜ͔ΒᅂείΞΛܭࢉɻ 4JNJMBSJUZ/FUΞΠςϜͷϓϩϑΝΠϧ ͱڞىใʹج͍ͮͯɺ֤ΞΠςϜͱλʔ ήοτΞΠςϜؒͷؔ࿈ੑΛܭࢉ
1BUICBTFE%FFQ/FUXPSLGPS$BOEJEBUF*UFN.BUDIJOHJO3FDPNNFOEFST 1%/ΛγεςϜʹΈࠐΉ 4UFQJOEFY ֤ΞΠςϜͷྨࣅΛ4JNJMBSJUZ/FUXPSLͰܭࢉͯ͠ UPQLΛؔ࿈είΞͱͱʹJOEFY͓ͯ͘͠ 4UFQτϦΨʔநग़ ΞϓϦΛ։͍ͨΒϢʔβʔ͕ΞΫγϣϯͨͯ͢͠ͷ ΞΠςϜΛ5SJH/FUΛ༻ͯ͠είΞϦϯά͠·͢ UPQNͷτϦΨʔΛฦ͢ɻ 4UFQSFUSJFWBM
NºLͷΞΠςϜΛ͖࣋ͬͯͯείΞϦϯάͯ͠Ϣʔ βʔʹ্Ґ݅Λฦ͢ɻ
ઃఆ %3 %FOTF3FUSJFWBM ϞσϧͷओྲྀͷֶशϞσϧͷ/FHBUJWF4BNQMJOHෆ҆ఆͳ4UBUJD)BSE /FHBUJWF4BNQMJOHΛ࠾༻͍ͯ͠Δɻ ΩʔΞΠσΞ /FHBUJWF4BNQMJOHʹযΛͯɺ৽ֶ͍͠शख๏ ຒΊࠐΈֶशͱɺΫΤϦΤϯίʔμֶश ΛఏҊɻ 0QUJNJ[JOH%FOTF3FUSJFWBM.PEFM5SBJOJOHXJUI)BSE/FHBUJWFT
લఏ ϥϯΩϯάֶशͰωΨςΟϒαϯϓϦϯάΛͲͷΑ͏ʹߦ͏͔͕ͱͳΔɻ 3BOEBN/FHBUJWF4BNQMJOHద߹จॻ͕Լͷํʹ͋Δͷ͕ࢧతʹͳΓɺ্Ґ͕͏·ֶ͘शͰ͖ͳ͍ͱ͍͏͕͋Δɻ ओྲྀͷ4UBUJD)BSE/FHBUJWF4BNQMJOHXBSNVQઓུͳͲΛͬͯ/FHBUJWF4BNQMJOHΛݻఆ͓ͯ͘͠ɻֶश͕3BOEBN /FHBUJWF4BNQMJOHʹൺͯ҆ఆ͠ͳ͍ ֶशதʹωΨςΟϒαϯϓϦϯά͕มԽ͍ͯ͘͠ͷ͕%ZOBNJD)BSE/FHBUJWF4BNQMJOH 0QUJNJ[JOH%FOTF3FUSJFWBM.PEFM5SBJOJOHXJUI)BSE/FHBUJWFT
ఏҊ 45"3 B4UBCMF5SBJOJOH"MHPSJUINGPSEFOTF3FUSJFWBM 4UBUJD)BSEOFHBUJWF XBSNVQख๏ ʹ/FHBUJWF3BOEPN4BNQMJOH߹Θͤͯ༻ֶͯ͠शϓϩηεΛ ҆ఆͤ͞ɺ4UBUJD/FHBUJWF4BNQMJOHͷ࠷ѱͷύλʔϯ ..3͕΄΅θϩʹͳΔՄೳੑ
Λճආ ͓·͚ʹ͢Ͱʹܭࢉͨ͠จॻϕΫτϧΛ࠶ར༻ͯ͠ޮΞοϓ 0QUJNJ[JOH%FOTF3FUSJFWBM.PEFM5SBJOJOHXJUI)BSE/FHBUJWFT
ఏҊ "%03& "MHPSJUINGPS%JSFDUMZ0QUJNJ[JOH3BOLJOHQ&SGPSNBODF %ZOBNJD)BSE/FHBUJWF4BNQMJOHΛར༻ͯ͠ɺϥϯΩϯάύϑΥʔϚϯεΛ࠷దԽ ࣄલʹτϨʔχϯά͞ΕͨυΩϡϝϯτΤϯίʔμʔΛͬͯɺΫΤϦΤϯίʔμʔΛτϨʔχϯά ͍ΫΤϦͰυΩϡϝϯτͷ ຒΊࠐΈʹ͍ۙࢄදݱ͕ಘΒΕΔ
࣮ݧͰυΩϡϝϯτΤϯίʔμʹ45"3Ͱֶशͨ͠ϞσϧΛར༻ 0QUJNJ[JOH%FOTF3FUSJFWBM.PEFM5SBJOJOHXJUI)BSE/FHBUJWFT
ઃఆ ࠷ۙɺใݕࡧʹ߹ΘͤͨࣄલτϨʔχϯάํ๏͕ݕ౼͞Ε͓ͯΓɺಉஶऀ͕͞·͟·ͳΞυϗοΫݕࡧϕϯνϚʔΫͰ405"Λୡ ͨ͠1301ͱ͍͏ख๏͕͋Δɻ 1301301 දޠਪఆ λεΫߏஙϓϩηεͰ࠾༻͞ΕͨݹయతͳϢχάϥϜݴޠϞσϧʹΑͬͯޮՌ੍͕ݶ͞Εͯ͠·͏ ಠཱੑ ͷԾఆ ɻ ΩʔΞΠσΞ
1301λεΫߏங༻ͷϢχάϥϜݴޠϞσϧΛ#&35Ͱஔ͖͑ #&35ͷ"UUFOUJPOΛ׆༻ͯ͠υΩϡϝϯτ͔Βදతͳ୯ޠΛαϯϓϦϯά͢Δ #1301#PPUTUSBQQFE1SFUSBJOJOHXJUI3FQSFTFOUBUJWF8PSET1SFEJDUJPOGPS"EIPD3FUSJFWBM
3FGFSFODF 13011SFUSBJOJOHXJUI3FQSFTFOUBUJWF8PSET1SFEJDUJPOGPS"EIPD3FUSJFWBM ઃఆ ࠓ·ͰΞυϗοΫݕࡧʹ͚ͨࣄલτϨʔχϯάϞσϧֶ श΄ͱΜͲͳ͍ ఏҊख๏ ΞυϗοΫݕࡧͷͨΊͷॏཁޠ༧ଌʢ301ʣʹΑΔࣄલτ ϨʔχϯάΛఏҊɻ1301ΫΤϦϞσϧ͕ϕʔεͷ ख๏ɻ
ϦϥϯΩϯάλεΫͰpOFUVOJOHͯ͠1SFWJPVT405"Λ ͑ͨɻ ΫΤϦϞσϧ σΟϦΫϨࣄલฏԽΛ༻ͨ͠ଟ߲ϢχάϥϜݴޠϞσϧ ୯ޠηοτ4ͷϖΞΛαϯϓϦϯά ΫΤϦͷ͞ϙΞιϯͰαϯϓϧ 5SBOTGPSNFSϞσϧΛࣄલֶश ͭͷ୯ޠηοτؒͷQBJSXJTFQSFGFSFODFΛ༧ଌ͢ΔΑ͏ʹ υΩϡϝϯτ%
#1301#PPUTUSBQQFE1SFUSBJOJOHXJUI3FQSFTFOUBUJWF8PSET1SFEJDUJPOGPS"EIPD3FUSJFWBM ͨͩͨͩ#&35Ͱஔ͖͑ͯҰൠతͳ୯ޠʢJOɺUIFɺPGͳͲʣΛ༏ઌͯ͠͠·͏ͷͰɺݕࡧͷͨΊͷࣄલֶशʹ͔ͳ͍ɻ ͦ͜ͰυΩϡϝϯτͷ༻ޠͷͱϥϯμϜͳ༻ޠͷͷؒͷΫϩεΤϯτϩϐʔΛܭࢉͯ͠ɺରরతͳ༻ޠͷΛऔಘ͢Δɻ
ิεϥΠυ
5*-%&5FSN*OEFQFOEFOU-JLFMJIPPENP%&MGPS1BTTBHF3FSBOLJOH
جૅࣝ -FBSOJOHUPSBOLͷతؔ ϥϯΩϯάֶशΛ࠷γϯϓϧʹهड़ͯ͠ΈΔɻRΫΤϦ EυΩϡϝϯτ ؔ࿈ؔ -ଛࣦؔ ࢦࣔ ؔͱ͢Δͱ
0QUJNJ[JOH%FOTF3FUSJFWBM.PEFM5SBJOJOHXJUI)BSE/FHBUJWFT ԼهͷతؔͰશͯͷEͰ࠷దԽ͢Δͷίετ͕๏֎ͳͷͰɺͲ͔͜Β/FHBUJWF%PDVNFOUΛαϯϓϦϯά͢Δ͔͕ ॏཁͱͳΔɻҟͳΔαϯϓϦϯάઓུɺ/FHBUJWF%PDVNFOU͝ͱʹҟͳΔॏΈX E Λઃఆ͢Δͷͱݟͳͯ͠తؔ ΛԼهͷΑ͏ʹܗࣜԽͰ͖Δɻ% ద߹จॻɺ%ඇద߹จॻɺXॏΈ
جૅࣝ /FHBUJWF4BNQMJOH ωΨςΟϒυΩϡϝϯτΛͲͷΑ͏ʹαϯϓϦϯά͢Δ͔Ͱ͋Γɺྫ͑ϥϯμϜαϯϓϦϯά͕͋͛Β ΕΔɻ 3BOEPNOFHBUJWFTBNQMJOHϖΞϫΠζΤϥʔͷ߹ܭΛ࠷খԽ͢Δ͜ͱʹؼண͢Δɻ ͔͠͠ɺК E E ͷυΩϡϝϯτҐஔɺ͕େ͖͍ͷ͕ࢧతʹͳΓɻ্ҐυΩϡϝϯτͷਫ਼্ʹد༩͠
ͮΒ͍ 0QUJNJ[JOH%FOTF3FUSJFWBM.PEFM5SBJOJOHXJUI)BSE/FHBUJWFT
جૅࣝ )BSE/FHBUJWF4BNQMJOH ্Ґ,ͷυΩϡϝϯτΛωΨͱͯ͠αϯϓϦϯά͢ΔɻશମͷϖΞϫΠζΤϥʔͰͳ͘ɺUPQLͷϖΞϫΠζΤ ϥʔͷܭࢉʹͳΔɻϋʔυωΨςΟϒαϯϓϦϯάɺ্ҐͷύϑΥʔϚϯεΛڧௐ͠ɺϢʔβʔΤΫεϖϦΤ ϯεධՁࢦඪʹ΄ͱΜͲӨڹΛ༩͑ͳ͍ԼҐͷϖΞΛແࢹͰ͖Δɻ 0QUJNJ[JOH%FOTF3FUSJFWBM.PEFM5SBJOJOHXJUI)BSE/FHBUJWFT
جૅࣝ ੩తWTಈత )BSE/FHBUJWF4BNQMJOH͕༗༻͕ͩɺ͞Βʹ)BSE/FHBUJWFֶशதʹมԽ͢ΔͨΊʹʹ੩తͱಈతʹ͚Β ΕΔɻಈతֶशதʹ)BSE4BNQMJOH͕มΘ͍ͬͯ͘ɻ੩త3FUSJFWBSख๏ɺ·ͨΥʔϜΞοϓ%3ϞσϧΛ ༻ͯ͠ɺτϨʔχϯάதʹमਖ਼͞ΕͨϋʔυωΨͱ্ͯ͠ҐͷυΩϡϝϯτΛࣄલʹऔಘ͓ͯ͘͠ɻ جຊతʹಈతͷํ͕ϕετ 0QUJNJ[JOH%FOTF3FUSJFWBM.PEFM5SBJOJOHXJUI)BSE/FHBUJWFT