Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
自然言語でナビを!VUIとしてのカーナビ
Search
NAVITIME JAPAN
PRO
December 15, 2018
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
自然言語でナビを!VUIとしてのカーナビ
2018年12月15日開催「Developers Boost~U30エンジニアの登竜門~」にて発表した資料です。
NAVITIME JAPAN
PRO
December 15, 2018
More Decks by NAVITIME JAPAN
See All by NAVITIME JAPAN
株式会社ナビタイムジャパン 会社紹介資料2026
navitimejapan
PRO
1
5.9k
つよつよリーダーが 抜けたらどうする? 〜ナビタイムのAgile⽀援組織の変遷〜
navitimejapan
PRO
23
16k
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
3
1.2k
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
320
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
3.5k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
2k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
510
不確実性に打ち勝つOKR戦略/How to manage uncertainty with OKR strategy
navitimejapan
PRO
4
4.2k
アジャイルを小さいままで 組織に広める 二周目 / Agile Transformation in NAVITIME JAPAN iteration 2
navitimejapan
PRO
4
1.6k
Other Decks in Technology
See All in Technology
LLM Content Moderationを支える評価・改善ループの実践
suikabar
2
320
フィンテック養成勉強会#68
finengine
0
240
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
1.1k
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
210
Microsoft のサポート ライフサイクルを理解する
murachiakira
PRO
0
140
AWS DevOps Agentはどこまで任せられるか 〜機能の現在地と、機能拡張の実践〜
nyankotaro
0
170
PHPカンファレンス関西の招待状 / Invitation to PHP Conference Kansai
ykanoh
0
230
局所最適は悪ではない。壊れているのは指標です。量と質を同時に見る先行指標の設計
recruitengineers
PRO
2
810
導入から定着へ ~コーディングエージェントを日常業務に組み込む実践知~
yukisakai1225
0
210
How to teach your AI Agent with Agent skills
linedevth
0
120
ポケモン対戦を自動で記録して振り返ろう
fufufukakaka
0
290
Metadata - Section 2: Simple Metadata & Meta Tags
mohab1
0
130
Featured
See All Featured
Thoughts on Productivity
jonyablonski
76
5.4k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
550
YesSQL, Process and Tooling at Scale
rocio
174
15k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
580
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Done Done
chrislema
187
17k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
530
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Transcript
CONFIDENTIAL ©NAVITIME JAPAN 自然言語でナビを! VUIとしてのカーナビ 株式会社ナビタイムジャパン ACTS(研究開発部門) 本多 広晃 C-6
#devboostB
CONFIDENTIAL ©NAVITIME JAPAN 自己紹介 本多 広晃 Hiroaki Honda - サーバーサイド
- 自然言語処理 - フットサル - 温泉
CONFIDENTIAL ©NAVITIME JAPAN NAVITIMEについて 会社名 株式会社ナビタイムジャパン 設立 2000年3月1日 業務内容 コンシュマー向けナビゲーションアプリ/Webサイ
トの運営・開発 通信カーナビゲーション事業 経路探索エンジンのライセンス事業 など 従業員数 500名 ★うちエンジニアが8割以上!
CONFIDENTIAL ©NAVITIME JAPAN NAVITIMEについて 外国人&海外 公共交通 自動車 NAVITIME 乗換 NAVITIME
こみれぽ バス NAVITIME ドライブ サポーター カーナビ タイム トラック カーナビ NAVITIME Transit NAVITIME for Japan Travel Plat by NAVITIME NAVITIME Travel ウォーキング NAVITIME-ALKOO- 二輪車 トラベル&フィットネス 自転車NAVITIME ツーリングサポーター 月間ユニークユーザー数 約5,100万人 有料会員数 約480万人 (2018/09時点)
CONFIDENTIAL ©NAVITIME JAPAN NAVITIMEについて トータルナビ事業 ヘルスケア事業 バス事業 ドライブ事業 ツーリング事業 メディア
トラベル事業 インバウンド事業 キャリア協業事業 テレマティクス事業 交通コンサル ティング事業 ビジネス ナビタイム事業 法人 ソリューション事業 ・トータルナビアプリ ・乗換検索アプリ ・法人向けウォーキングコース 作成ツールの開発、販売 ・バスアプリ ・公共交通事業者向け ソリューションサービス ・各種カーナビアプリ ・自転車、バイクの ナビアプリ ・旅行計画,予約アプリ ・海外乗換アプリ ・自治体向け観光アプリ ・外国人旅行客誘致等の コンサルティング ・通信キャリア会社との プロダクトアプリ ・国内外カーメーカー、車載機 メーカー向けOEMアプリ ・移動に関するビッグデータを 活用した各種コンサル ・動態管理ソリューション ・トラックアプリ ・サービス内で使用されている 機能をAPi,SDKで販売 事業領域 B to C B to B / B to G
CONFIDENTIAL ©NAVITIME JAPAN ボイスコントロールとは 2013年ファーストリリース ハンズフリーでナビを操作可能 「ナビタイム」または 「ボイスコントロール」で起動
CONFIDENTIAL ©NAVITIME JAPAN 今日話すこと • 2013年当時に作りこんだ自前の自然言語処理エンジンはメンテナンスコストが 嵩んでいた • 一方で、最近はVUIの開発環境が整っている •
開発ツール群 • 設計ガイドライン • 既存のコードベースで改修を重ねるよりも、新しい技術スタックを使ってリプ レースした方がいいと判断 ⇒この過程における苦労話と、得られた知見を共有します
CONFIDENTIAL ©NAVITIME JAPAN Architecture Business Logic Controller NLP STT/TTS 社内API群
- 経路検索 - 地図 - 天気 発話 音声 テキスト 解析結果 音声 テキスト
CONFIDENTIAL ©NAVITIME JAPAN 本日のスコープ Business Logic Controller NLP
CONFIDENTIAL ©NAVITIME JAPAN 自前の自然言語処理エンジンの課題 正規表現で ゴリゴリ ルールベースの処理が複雑… 品詞分解も ゴリゴリ 道路名称のパターン
CONFIDENTIAL ©NAVITIME JAPAN 自前の自然言語処理エンジンの課題 言い回しの数だけDBにレコードが存在する… • 同じ意味の文言を、想定される 言い回しの数(数十パターン)ぶん DBに格納 •
1文字でも異なると認識不可 例)
CONFIDENTIAL ©NAVITIME JAPAN 最初に考えたこと Business Logic Controller NLP ここを…
CONFIDENTIAL ©NAVITIME JAPAN 最初に考えたこと Business Logic Controller NLP こうしましょう
CONFIDENTIAL ©NAVITIME JAPAN Language Understanding (LUIS)
CONFIDENTIAL ©NAVITIME JAPAN What is LUIS? 文章の 意図解釈と 固有表現抽出 をしてくれる
CONFIDENTIAL ©NAVITIME JAPAN What is LUIS? 文章の 意図解釈と 固有表現抽出 をしてくれる
ユーザーの発話
CONFIDENTIAL ©NAVITIME JAPAN What is LUIS? 文章の 意図解釈と 固有表現抽出 をしてくれる
モデルに定義した意図 0~1の値をとるスコア ※今回の話で非常に重要。後述。
CONFIDENTIAL ©NAVITIME JAPAN What is LUIS? 文章の 意図解釈と 固有表現抽出 をしてくれる
発話に含まれる固有表現 モデルに定義した 固有表現のタイプ
CONFIDENTIAL ©NAVITIME JAPAN Why LUIS? • 機械学習により文言のゆらぎを吸収してくれる • 言い回しのDBを排除できる •
音声認識での失敗をカバー可能 • ユーザーの発話:『近くのコンビニに行きたい』 • 音声認識の結果:『近くのコンビニに期待』 • 日本語に対応 • 形態素解析もやってくれるので前処理不要
CONFIDENTIAL ©NAVITIME JAPAN しかし
CONFIDENTIAL ©NAVITIME JAPAN 新事実の発覚 Business Logic Controller NLP 発話の意図解釈だけで なく会話の状態管理も
担っていることが判明
CONFIDENTIAL ©NAVITIME JAPAN 状態を保持しないシーケンス 天気は? 周辺の朝9時の天気は曇り。 気温は14度です。
CONFIDENTIAL ©NAVITIME JAPAN 状態を保持するシーケンス 東京タワーに行きたい 東京タワーが見つかりました。 目的地にしますか? 東京タワー周辺の朝9時の天気 は曇り。気温は14度です。 天気は?
CONFIDENTIAL ©NAVITIME JAPAN リプレーススコープの拡大 • 当初の想定では、NLPサーバーをLUISに置き換えるだけで完結 するものだと思っていた • しかしNLPサーバーは状態を保持していたため、同じ「天気 は?」という質問でも、それまでの会話の内容によって返答が
変わる • 一方LUISはステートレスなサービスで、レスポンスは冪等 ⇒この差異をどこかで吸収する必要が生じた
CONFIDENTIAL ©NAVITIME JAPAN 次に考えたこと Business Logic Controller NLP こいつを
CONFIDENTIAL ©NAVITIME JAPAN 次に考えたこと Business Logic Controller NLP こうしましょう
CONFIDENTIAL ©NAVITIME JAPAN Bot Service
CONFIDENTIAL ©NAVITIME JAPAN What is Bot Service? • 実装~デプロイ、分析などBot開発におけるライフサイ クルをサポートしてくれる統合環境
• SDKによりBot開発が容易に • C# • JavaScript • 様々なチャネルと統合が可能 • Slack, Facebook Messenger, Skype, Email …
CONFIDENTIAL ©NAVITIME JAPAN Why Bot Service? 状態管理を一任できる • 会話IDが発行され、ユーザー毎の状態管理が容易 •
対応するアプリが増えても安心
CONFIDENTIAL ©NAVITIME JAPAN しかしまた 新たな課題が…
CONFIDENTIAL ©NAVITIME JAPAN つくり始めて気づいたこと 既存システムが優秀だった • 多機能で、全てを移植するとなると長引く • 現時点でのLUISでは対応できないケース (例)
字句の並びは似てるが意図が異なる発話 ・「地図を小さく」⇒ 地図を小さくしてほしい ・「地図が小さい」⇒ 地図を大きくしてほしい
CONFIDENTIAL ©NAVITIME JAPAN 最終的な構成 Business Logic Controller NLP Dispatcher
CONFIDENTIAL ©NAVITIME JAPAN 最終的な構成 Business Logic Controller NLP Dispatcher 既存の資産はそのまま流用
CONFIDENTIAL ©NAVITIME JAPAN 最終結果 Business Logic Controller NLP Dispatcher 新旧両方の解析器にリクエスト
CONFIDENTIAL ©NAVITIME JAPAN 最終結果 Business Logic Controller NLP Dispatcher LUISが返却するスコア値が閾値
を上回った場合、新解析器の結 果を利用。閾値を下回ったら、 旧解析器の結果を利用。
CONFIDENTIAL ©NAVITIME JAPAN 最終結果 Business Logic Controller NLP Dispatcher 段階的な
機能移行 が可能
CONFIDENTIAL ©NAVITIME JAPAN うまくいった点 旧システムをブラックボックスにしたまま移行できた • 結合テストを書くことで、調査を最低限に • 入り組んだロジックもAIもブラックボックスというアナロジー LUISのスコア判定による新旧システムの共存
• 旧システム:今までの機能担保 • 新システム:新機能や複雑な発話の対応 • 段階的に移行できることで心に余裕ができた
CONFIDENTIAL ©NAVITIME JAPAN 既存システムに新サービスを組み込むには • つくりこまれた既存システムは得てして高機能 • 一方、新しい技術は改善していくことを前提にして市場に投入されるため、 最初は完全ではない •
段階的な移行はこのギャップを埋めるのに有効 (可能な限り)段階的に移行する
CONFIDENTIAL ©NAVITIME JAPAN 既存システムに新サービスを組み込むには • いざモジュールをすげ替えようとした時に、APIが綺麗でないと結局全書き 換えになる • とはいえ最初からきれいなインターフェースを見つけるのは難しいので、 定期的なリプレースは有効かも
システム間の疎結合を保っておく
CONFIDENTIAL ©NAVITIME JAPAN ご清聴ありがとう ございました