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
自然言語でナビを!VUIとしてのカーナビ
Search
NAVITIME JAPAN
PRO
December 15, 2018
Technology
0
99
自然言語でナビを!VUIとしてのカーナビ
2018年12月15日開催「Developers Boost~U30エンジニアの登竜門~」にて発表した資料です。
NAVITIME JAPAN
PRO
December 15, 2018
Tweet
Share
More Decks by NAVITIME JAPAN
See All by NAVITIME JAPAN
つよつよリーダーが 抜けたらどうする? 〜ナビタイムのAgile⽀援組織の変遷〜
navitimejapan
PRO
23
15k
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
3
640
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
210
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
2.8k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
1.5k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
340
不確実性に打ち勝つOKR戦略/How to manage uncertainty with OKR strategy
navitimejapan
PRO
4
3.5k
アジャイルを小さいままで 組織に広める 二周目 / Agile Transformation in NAVITIME JAPAN iteration 2
navitimejapan
PRO
4
1.3k
変更障害率0%よりも「継続的な学習と実験」を価値とする 〜障害を「起こってはならないもの」としていた組織がDirtの実施に至るまで〜 / DevOps Transformation in NAVITIME JAPAN
navitimejapan
PRO
7
5.5k
Other Decks in Technology
See All in Technology
PHP開発者のためのSOLID原則再入門 #phpcon / PHP Conference Japan 2025
shogogg
4
850
Observability infrastructure behind the trillion-messages scale Kafka platform
lycorptech_jp
PRO
0
140
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
2
220
Windows 11 で AWS Documentation MCP Server 接続実践/practical-aws-documentation-mcp-server-connection-on-windows-11
emiki
0
1k
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.6k
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
9
1.2k
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
180
エンジニア向け技術スタック情報
kauche
1
270
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
190
~宇宙最速~2025年AWS Summit レポート
satodesu
1
1.9k
Fabric + Databricks 2025.6 の最新情報ピックアップ
ryomaru0825
1
140
A2Aのクライアントを自作する
rynsuke
1
190
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Six Lessons from altMBA
skipperchong
28
3.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
Optimizing for Happiness
mojombo
379
70k
We Have a Design System, Now What?
morganepeng
53
7.7k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Documentation Writing (for coders)
carmenintech
72
4.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
How GitHub (no longer) Works
holman
314
140k
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 ご清聴ありがとう ございました