Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
文字列(ダジャレを言いシャレ)
vaaaaanquish
December 08, 2020
Technology
1
12k
文字列(ダジャレを言いシャレ)
エムスリー社内でのLTで文字列について話したスライド
vaaaaanquish
December 08, 2020
Tweet
Share
More Decks by vaaaaanquish
See All by vaaaaanquish
Tech LT #4 人を選ぶ技術
vaaaaanquish
2
1.9k
CADDi AI LabにおけるマネージドなMLOps
vaaaaanquish
2
2.3k
RustとCADDi AI LabとML
vaaaaanquish
1
280
機械学習OSSの変遷と未来
vaaaaanquish
2
1.8k
xonshとかいうshellの話
vaaaaanquish
1
1k
gokartの運用と課題について
vaaaaanquish
5
11k
【
[email protected]
#6】ゼロベースからの論文レコメンドシステムの構築
vaaaaanquish
5
7k
【PyCon2019】 Python製シェルXonshの紹介
vaaaaanquish
6
7.4k
宇宙誕生の歴史と人類が赤ポチという到達点に至るまで
vaaaaanquish
0
1.6k
Other Decks in Technology
See All in Technology
OVN-Kubernetes-Introduction-ja-2023-01-27.pdf
orimanabu
1
420
SSMパラメーターストアでクロススタック参照の罠を回避する
shuyakinjo
0
7.7k
Hatena Engineer Seminar #23 「チームとプロダクトを育てる Mackerel 開発合宿」
arthur1
0
580
Oktaの管理者権限を適切に移譲してみた
shimosyan
2
270
データベースの発表には RDBMS 以外もありますよ
maroon1st
0
240
AI Builderについて
miyakemito
1
950
開発者と協働できるメトリクスダッシュボードを作ろう!/SRE Lounge 2023
lmi
3
510
CES_2023_FleetWise_demo.pdf
sparkgene
0
120
Google Cloud Workflows: API automation, patterns and best practices
glaforge
0
100
NGINXENG JP#2 - 4-NGINX-エンジニアリング勉強会
hiropo20
0
120
OpenShiftでスポットVMを使おう.pdf
jpishikawa
1
380
証明書って何だっけ? 〜AWSの中間CA移行に備える〜
minorun365
3
2.1k
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
15
1.2k
Robots, Beer and Maslow
schacon
154
7.3k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
128
8.8k
Building a Scalable Design System with Sketch
lauravandoore
451
31k
Designing with Data
zakiwarfel
91
4.2k
Why You Should Never Use an ORM
jnunemaker
PRO
49
7.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
Intergalactic Javascript Robots from Outer Space
tanoku
261
26k
Done Done
chrislema
178
14k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
214
12k
Fontdeck: Realign not Redesign
paulrobertlloyd
74
4.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
32
6.7k
Transcript
文字列 AIチーム 河合
河合 俊典 • AIチーム • Twitter: @vaaaaanquish • 3度の飯よりTwitterが好き
あたまのおかしい回だ・・・ 参加しなきゃ・・・
文字列・・・文字列・・・
モジモジしてないで 好きな文字列の話を せんかーい!! ※ 社外の@_329_さんのプライバシー保護のため一部画像を加工しています
ダジャレを言いなシャレ AIチーム 河合
調査をする俺は慎重さwwwww • 駄洒落をテーマとしたAI関連研究 ◦ 駄洒落の検出、評価 ◦ データベースの構築 ◦ 面白さの分析 ◦
生成 ◦ 対話 https://github.com/vaaaaanquish/dajare-pythonより
ダジャレを研究してるのはダレじゃwwwwww • 北海道大学・荒木健治 教授が第一人者(多分) ◦ 多く論文がこの荒木研から出ている https://www.ist.hokudai.ac.jp/netjournal/net_31_1.html より引用
データはどこで得たwwwwwwww 駄洒落データベースの構築及び分析 , Construction and Analysis of Pun Database in
Japanese, 荒木 健治, Kenji Araki, 人工知能学会 2018 より引用 データセットは HPより申請する事で研究用途でのみ共有されるとのこと • ダジャレナビ ◦ 『アタマがめざめる! なぞなぞ脳活 (かんき出版,2016)』等を執筆した ながれおとや氏が運営 • ダジャレステーション ◦ 福井県のWeb制作会社 cheltenham software(チェルトナム・ソフトウェア)が作成 ◦ 6万5千件のデータがあるとされる https://kanki-pub.co.jp/pub/author/details/1004 より抜粋
クロールする玄人wwwwwww • クローラ及び、関連研究をOSSとして公開 ◦ https://github.com/vaaaaanquish/dajare-python ◦ time.sleepによる厳しめの調整 ◦ 論文内のサイト以外からもクロール先を追加 ▪
社内Slackなど ▪ 合計12万件のダジャレデータを所持 ▪ 多分日本で一番持ってる ◦ データをノーマライズして Driveに設置しました ▪ 社外への持ち出し厳禁でお願いします
マルコフ連鎖が惜しかった未練さwwwww • 最もシンプルに思い付くマルコフ連鎖を試す(意外と既存研究がない) ◦ ダジャレは言葉同士の確率過程から作成できるだろうという仮説 ◦ GiNZAで形態素解析して計算 ◦ Google Colabで計算済みモデルをロードして今すぐ遊べます
▪ https://~~~~(社内のみ) 概ね勢いがあって面白い
BERTでバーッと生成wwwwwwww • BERTとは ◦ Pre-training of Deep Bidirectional Transformers for
Language Understanding, Devlin, J. et al. (2018, Google) ◦ 何がすごい? ▪ 自然言語処理における分類、対話、翻訳 …など全てのタスクに応用しても精度が出る ▪ 行列積くらいしか複雑な処理がなく学習時にリソースをフル活用できる ◦ 何故すごい? ▪ Transformerがすごい ▪ 双方向Transformerの学習法がすごい • 普通にやると学習が収束しないのでゴリゴリにノウハウを付与 + 問題設計を工夫 word2vec (2016, Google) Transformar (2017, Google) fasttext, rcnn, attentionを経て… 拡張 BERT (2018, Google)
BERTでバーッと生成wwwwwwww • BERTで文章生成タスクを解く ◦ ベースとして京大 黒橋・河原研究室 が公開する日本語学習済みモデルを使う ▪ 一般的に0からの学習はリソースが必要なので「転移学習」という手法を利用する ◦
Google Colabで計算済みモデルをロードして今すぐ遊べます ▪ https://~~~ (社内のみ) 色々チューニングしてみたがダメそうな例
何で上手くいかないんだろう … データも十分あるはずだし … ベースかタスク設計が悪いのか … もしかしてバグか…?
バグを疑わず もっと基本に バックせんかーい!! ※ 社外の@_329_さんのプライバシー保護のため一部画像を加工しています
Elasticsearchにindexingすればいいんでっくすww • データが大規模かつスパース ◦ queryに対して近いダジャレを引く所から始めてみる ▪ 検索によるダジャレ生成サポート → 対話における正解データの収集 → 対話タスクと捉えて ▪
Indexingの仕方を考える必要がある query: 蜜柑食べたいな result: みつかんないんですか?
indexingを考えればいいんでっくすwwwww • ダジャレの面白さを考慮したスコアリングを考える ◦ 単語、単語の一部が被っている → 一般的なmatch, fuzziness ◦ 音が同じである → 文章をヘボン式ローマ字に変換して index
◦ 近い意味の単語で作られている → ES 7.3から追加されたvector feildをindexしcosine距離 ▪ 複合的に含まれていれば高いスコアとなるよう boost, weightを調整する 駄洒落の面白さにおける要因の分析 , An Analysis of Factors of Funniness of Japanese Puns, 谷津, 荒木, 2016 日本知能情報ファジィ学会 より
embeddingを確認すればいいんでっくすwwww 食べ物のダジャレが集まる例
indexをつくればいいんでっくすwwwwwww {"query": { "bool": { "should": [ {"match":{ "roman": {
"query": qr, "fuzziness": "AUTO" }}}, {"match":{ "body": { "query": q, "fuzziness" : "AUTO", "boost":100 }}}, {"match":{ "vec": { "query": qev }}}]}}} + score function ... "tokenizer": { "normal_tokenizer": { "type": "kuromoji_tokenizer", "mode": "normal"} }, "analyzer": { "normal_analyzer": { "type": "custom", "tokenizer": "kuromoji_tokenizer", "filter":[ "trim", "kuromoji_stemmer", "ja_pos_meishi_filter" ]}}}}, "mappings": { "dynamic": "strict", "properties": { "body": { "type": "text", "analyzer": "normal_analyzer", "search_analyzer": "normal_analyzer", "term_vector" : "with_positions_offsets" }, "roman": { "type": "text"}}, "vec": {"type": "vector"}}} 検索 index
検索だけに幸ありwwwwwwwwwww fuzzy、vector検索によって 吉野家、松山などが引けている (上手いダジャレの返しができそう)
運用するうんようwwwwwwwwww • 2020/06/22 (月) 各位のtimelineでオンラインテスト
駄率wwwww • Slackへの投稿をqueryとしtop10以内の結果から良さげな回答を選んで返す • challengeした数:10 ◦ :da: が付いた数:7 ◦ しーきび:2 ◦
Iwasa method:1 参考:皆に優しいダジャレ評価フローとリアクション(一部) すごい回答の例 vector検索で「ケーブル」関連語として 「故障」があがる
検索すれば幸になるのか • 検索によるサポートで誰でも :da: が取得できる ◦ ESのvector検索、ローマ字検索の queryの重みを変更する事で、 誰でも簡単に、好きな面白い方向性でダジャレを検索、投稿できる ◦
果たしてその :da: に価値はあるのかという議論は別途ある ▪ 敷居を下げる十分な効果がある • 難しい例も存在する 利用困難な例
今後の改善点 • 「Docker」「JIS」「Jenkins」「Jira」「CI/CD」など 英語、技術用語に対応したダジャレがデータベース上にない ◦ ローマ字変換を試みたが、オノマトペ難しい • Elasticsearchをどう管理するか ◦ Elasticsearch
docker-composeを使っておりローカルマシンが重くて仕事にならない • End2Endなモデルの作成 ◦ 大きなMLモデルは事前学習モデルが基本自然文で学習されているため唐突な遷移が難しい ▪ 今後のfeature worksとしたい
華金だから もうおしごとは できんよう〜〜w ※ 社外の@_329_さんのプライバシー保護のため一部画像を加工しています