SlideShare a Scribd company logo
1 of 28
Download to read offline
DSP開発におけるSpark MLlibの活用
棚橋 耕太郎
2015.11.27
自己紹介
棚橋耕太郎
新卒1年目エンジニア
バックグラウンド:
高分子物性(統計力学理論, 計算機シミュレーション)
現在の業務:
DSPなど, アドテクまわりの機械学習バッチの開発,
量子アニーリングを用いた機械学習アルゴリズムの研究開発(共同研究)
発表の概要
• DIMSUM - 類似商品の高速な近似計算
• word2vec - 単語の特徴ベクトル作成
• Splash - 分散word2vecの学習の高速化
発表の概要
• DIMSUM - 類似商品の高速な近似計算
• word2vec - 単語の特徴ベクトル作成
• Splash - 分散word2vecの学習の高速化
広告アイテムの推薦
item-itemのcos類似度
を分散処理で計算
e.g. レコメンドバナー
A B C
B C
A C
A D
user
item
user1
user2
user3
user4
A B C D
1 1 1 0
0 1 1 0
1 0 0 1
1 0 1 0
item
item
A
B
C
D
A B C D
1 0.16 0.22 0.33
0.16 1 0.33 0
0.22 0.33 1 0
0.33 0 0 1
item item
similarity matrix
recommend items
user item
page view matrix
列ベクトルとみなして
cos類似度を計算
ナイーブにMapReduceで内積を求める
Zadeh, Reza Bosagh, and Gunnar Carlsson. (2013).
シャッフルサイズ=>
m:行数, L:行あたりの非ゼロ要素の個数
行数mの増大で計算不可能に
#users = m, #items = n
user
item
user1
user2
user i
user i+1
A B C D
1 1 1 0
0 1 1 0
1 0 0 1
1 0 1 0
partition 1
partition p
j
i
k
emit
map reduce
データは行方向に分散
user
item
user1
user2
user i
user i+1
A B C D
1 1 1 0
0 1 1 0
1 0 0 1
1 0 1 0
partition 1
partition p
j
i
k
emit
map reduce
emit with prob.
ナイーブではないMapReduceで内積を求める
DIMSUM
mに依存しない!シャッフルサイズ=>
oversampling
parameter
Zadeh, Reza Bosagh, and Gunnar Carlsson. (2013).
戦略:
ノルムが大きいベクトルの要素は
サンプルせずにスキップする
DIMSUMの証明
証明にはChernoff boundを利用
Zadeh, Reza Bosagh, and Gunnar Carlsson. (2013).
vs error, shuffle size
Zadeh, Reza Bosagh, and Gunnar Carlsson. (2013).
Twitterでの実データを用いた
実験でIO負荷が40%になった
MLlibにおけるDIMSUM
val rows: RDD[Vector] = ... // an RDD of local vectors
val mat: RowMatrix = new RowMatrix(rows)
val sim= mat.columnSimilarities(1000)
MLlibだと、たったこれだけ!
γ: oversampling parameter
発表の概要
• DIMSUM - 類似商品の高速な近似計算
• word2vec - 単語の特徴ベクトル作成
• Splash - 分散word2vecの学習の高速化
word2vec
• 単語を低次元の特徴ベクトルとして表現
• GoogleのMikolovらによるオープンソースの実装
• 2つのモデル(CBOW,Skip gram)
• 2つの学習法(階層的ソフトマックス, ネガティブサンプリング)
T. Mikolov et al. (2013)
アイテム特徴量の作成
アイテムのwebページに含まれる単語の特徴ベクトル
を使ってアイテムの特徴量を作成
itemのwebページ
ばなな、食品、
安売り、無添加
ユーザ特徴量の作成
ユーザのアイテムの閲覧履歴を用いて
ユーザの特徴量を作成
A B Citems
page view
ユーザの特徴量
コンバージョン(CV)の予測
label: 0 or 1
conversion
regression by ML
ユーザの特徴量とCVの関係を回帰学習する
ことでCVしそうなユーザを予測
webページに対して行う
ページ数 3000万
ユーザ数 7 8000万
Page View 1.6億/1日
A B C
B C
A C
A D
page views
分散してスケールさせないと実
行不可能→Sparkを利用
MLlibのword2vec
• オリジナルのC実装からの移植
• Skip gramの階層的ソフトマックスしか実装されていない
• ネガティブサンプリングを追加で実装して利用した
学習が速く、頻出単語に強い
ネガティブサンプリング
var f = blas.sdot(vectorSize, syn0, l1, 1, syn1neg, l2, 1)
var g = 0.0
if (f > MAX_EXP) {
g = (label - 1) * alpha
} else if (f < -MAX_EXP) {
g = (label - 0) * alpha
} else {
val ind = ((f + MAX_EXP) * (EXP_TABLE_SIZE / MAX_EXP / 2.0)).toInt
f = expTable.value(ind)
g = ((label - f) * alpha).toFloat
}
blas.saxpy(vectorSize, g.toFloat, syn1neg, l2, 1, neu1e, 0, 1)
blas.saxpy(vectorSize, g.toFloat, syn0, l1, 1, syn1neg, l2, 1)
syn1negModify(target) += 1
MLlibのword2vec cont d
• 複数のpartitionで実行すると単語ベクトルが収束しない
実際に使ってわかった問題点
原因
data
data shard
data shard
data shard
worker 1
worker 2
worker 3
driver
1
2
3 original implementation revised implementation
⭕パラメータ更新を単純平均にすることで単語ベクトルは収束し、質が劇的に向上
単純平均
MLlibのword2vec cont d
• 学習速度が低い
さらなる問題点
原因
• データの凸性が低い場合、並列化による高速化は望めない
学習中にpartition間でパラメータの同期ができないか?
鈴木大慈, 講談社, 確率的最適化, 2015, p164
T:iteration数, C: const., λ:強凸定数
parameter server型モデル
J. Dean et al.(2012)
⭕パラメータの次元が非常に大
きくても分散して保持できる
⭕収束速度の向上
❌sparkはparameter server
に対応していない
❌通信コストが大きい
sparkでparameter serverを使えるパッ
ケージ: Dist-ML(intel)
発表の概要
• DIMSUM - 類似商品の高速な近似計算
• word2vec - 単語の特徴ベクトル作成
• Splash - 分散word2vecの学習の高速化
Splash
• パラメータをノードで個別に学習、重みづけすることに
より、高い学習効率を得ることができる
• UC Berkeley amplabのオープンソースライブラリ
• 既存のSpark MLlibと簡単に組み合わせて使える
• ノード間通信は1回/iteration
• LDA, 協調フィルタリング,SGD,Logistic回帰の実装あり
Splashの戦略
:partition数
:partition i のデータ
を全体のデータの近似とする
local update
global update
誤差
Y. Zhang and M. I. Jordan (2015)
n:localのデータ数, T: iteration数
toy problem 結果
✳: 最適解
⚫: Splashの解
▲:単純平均の解
単純加算の解
Y. Zhang and M. I. Jordan (2015)
Splash Example
共有変数の加算更新
Splashの収束性能
Y. Zhang and M. I. Jordan (2015)
MNIST 8M
ref: https://amplab.cs.berkeley.edu/projects/splash/
まとめ
• DIMSUMなど分散処理向けのアルゴリズムを
うまく使いこなしたい
• MLlibは便利なライブラリだが、注意深く扱わ
ないと性能が発揮できない
• MLlib以外の選択肢も考慮に入れるといいかも

More Related Content

Viewers also liked

SWARでpop countをしよう
SWARでpop countをしようSWARでpop countをしよう
SWARでpop countをしようKotaro Tanahashi
 
変数の入れ替え(SWAPPING)で最速の方法は?
変数の入れ替え(SWAPPING)で最速の方法は?変数の入れ替え(SWAPPING)で最速の方法は?
変数の入れ替え(SWAPPING)で最速の方法は?Kotaro Tanahashi
 
How nosql fundamentally changed machine learning?
How nosql fundamentally changed machine  learning?How nosql fundamentally changed machine  learning?
How nosql fundamentally changed machine learning?Kotaro Tanahashi
 
2.2. map reduce and the new software stack
2.2. map reduce and the new software stack2.2. map reduce and the new software stack
2.2. map reduce and the new software stackKotaro Tanahashi
 
deep learning library coyoteの開発(CNN編)
deep learning library coyoteの開発(CNN編)deep learning library coyoteの開発(CNN編)
deep learning library coyoteの開発(CNN編)Kotaro Tanahashi
 
Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!Sid Anand
 
HivemallとSpark MLlibの比較
HivemallとSpark MLlibの比較HivemallとSpark MLlibの比較
HivemallとSpark MLlibの比較Makoto Yui
 
Consumer offset management in Kafka
Consumer offset management in KafkaConsumer offset management in Kafka
Consumer offset management in KafkaJoel Koshy
 
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料Recruit Technologies
 
NIPS Paper Reading, Data Programing
NIPS Paper Reading, Data ProgramingNIPS Paper Reading, Data Programing
NIPS Paper Reading, Data ProgramingKotaro Tanahashi
 
Sparkでレコメンドエンジンを作ってみた
Sparkでレコメンドエンジンを作ってみたSparkでレコメンドエンジンを作ってみた
Sparkでレコメンドエンジンを作ってみたfujita_s
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)Takao Yamanaka
 
WSDM2016読み会 Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
WSDM2016読み会 Collaborative Denoising Auto-Encoders for Top-N Recommender SystemsWSDM2016読み会 Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
WSDM2016読み会 Collaborative Denoising Auto-Encoders for Top-N Recommender SystemsKotaro Tanahashi
 
facebook architecture for 600M users
facebook architecture for 600M usersfacebook architecture for 600M users
facebook architecture for 600M usersJongyoon Choi
 
アドテク勉強会
アドテク勉強会アドテク勉強会
アドテク勉強会Shoho Kozawa
 

Viewers also liked (18)

Spark MLlibではじめるスケーラブルな機械学習
Spark MLlibではじめるスケーラブルな機械学習Spark MLlibではじめるスケーラブルな機械学習
Spark MLlibではじめるスケーラブルな機械学習
 
SWARでpop countをしよう
SWARでpop countをしようSWARでpop countをしよう
SWARでpop countをしよう
 
変数の入れ替え(SWAPPING)で最速の方法は?
変数の入れ替え(SWAPPING)で最速の方法は?変数の入れ替え(SWAPPING)で最速の方法は?
変数の入れ替え(SWAPPING)で最速の方法は?
 
How nosql fundamentally changed machine learning?
How nosql fundamentally changed machine  learning?How nosql fundamentally changed machine  learning?
How nosql fundamentally changed machine learning?
 
2.2. map reduce and the new software stack
2.2. map reduce and the new software stack2.2. map reduce and the new software stack
2.2. map reduce and the new software stack
 
deep learning library coyoteの開発(CNN編)
deep learning library coyoteの開発(CNN編)deep learning library coyoteの開発(CNN編)
deep learning library coyoteの開発(CNN編)
 
Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!
 
HivemallとSpark MLlibの比較
HivemallとSpark MLlibの比較HivemallとSpark MLlibの比較
HivemallとSpark MLlibの比較
 
Consumer offset management in Kafka
Consumer offset management in KafkaConsumer offset management in Kafka
Consumer offset management in Kafka
 
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
 
NIPS Paper Reading, Data Programing
NIPS Paper Reading, Data ProgramingNIPS Paper Reading, Data Programing
NIPS Paper Reading, Data Programing
 
Sparkでレコメンドエンジンを作ってみた
Sparkでレコメンドエンジンを作ってみたSparkでレコメンドエンジンを作ってみた
Sparkでレコメンドエンジンを作ってみた
 
Global Netflix Platform
Global Netflix PlatformGlobal Netflix Platform
Global Netflix Platform
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
WSDM2016読み会 Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
WSDM2016読み会 Collaborative Denoising Auto-Encoders for Top-N Recommender SystemsWSDM2016読み会 Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
WSDM2016読み会 Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
 
facebook architecture for 600M users
facebook architecture for 600M usersfacebook architecture for 600M users
facebook architecture for 600M users
 
アドテク勉強会
アドテク勉強会アドテク勉強会
アドテク勉強会
 

Similar to DSP開発におけるSpark MLlibの活用

Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要Miho Yamamoto
 
20120623 cv勉強会 shirasy
20120623 cv勉強会 shirasy20120623 cv勉強会 shirasy
20120623 cv勉強会 shirasyYoichi Shirasawa
 
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】Yasuhito Yabe
 
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...Shotaro Suzuki
 
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5ゲームだけじゃないHTML5
ゲームだけじゃないHTML5Osamu Shimoda
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-recotech
 
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップiPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップVOYAGE GROUP
 
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップiPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップKenji Tomita
 
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...Shotaro Suzuki
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺Yusuke Wada
 
マーケティング向け大規模ログ解析事例紹介
マーケティング向け大規模ログ解析事例紹介マーケティング向け大規模ログ解析事例紹介
マーケティング向け大規模ログ解析事例紹介Kenji Hara
 
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!日本マイクロソフト株式会社
 
Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudBuilding modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudShotaro Suzuki
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascriptTakao Tetsuro
 
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発Tomoharu ASAMI
 
Sparkストリーミング検証
Sparkストリーミング検証Sparkストリーミング検証
Sparkストリーミング検証BrainPad Inc.
 
HTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスHTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスアシアル株式会社
 
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話Takuya Ueda
 
DevAx::connect はじめました
DevAx::connect はじめましたDevAx::connect はじめました
DevAx::connect はじめました政雄 金森
 

Similar to DSP開発におけるSpark MLlibの活用 (20)

Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要
 
20120623 cv勉強会 shirasy
20120623 cv勉強会 shirasy20120623 cv勉強会 shirasy
20120623 cv勉強会 shirasy
 
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
 
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
Developers-Summit-2022_Improving-Digital-Customer-Experience-with-Enterprise_...
 
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
 
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップiPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
 
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップiPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
 
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
 
マーケティング向け大規模ログ解析事例紹介
マーケティング向け大規模ログ解析事例紹介マーケティング向け大規模ログ解析事例紹介
マーケティング向け大規模ログ解析事例紹介
 
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
【BS10】Microsoft と GitHub の開発エコシステムで、開発にドライブをかけよう!
 
Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudBuilding modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloud
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascript
 
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
 
Sparkストリーミング検証
Sparkストリーミング検証Sparkストリーミング検証
Sparkストリーミング検証
 
Angularreflex20141210
Angularreflex20141210Angularreflex20141210
Angularreflex20141210
 
HTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティスHTML5ハイブリッドアプリ開発のベストプラクティス
HTML5ハイブリッドアプリ開発のベストプラクティス
 
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
 
DevAx::connect はじめました
DevAx::connect はじめましたDevAx::connect はじめました
DevAx::connect はじめました
 

More from Kotaro Tanahashi

Deep Q-Network 論文輪読会
Deep Q-Network 論文輪読会Deep Q-Network 論文輪読会
Deep Q-Network 論文輪読会Kotaro Tanahashi
 
recurrent models of visual attentionメモ
recurrent models of visual attentionメモrecurrent models of visual attentionメモ
recurrent models of visual attentionメモKotaro Tanahashi
 
情強アルゴリズムDIMSUM
情強アルゴリズムDIMSUM情強アルゴリズムDIMSUM
情強アルゴリズムDIMSUMKotaro Tanahashi
 
Fokker–Planck equation and DPD simulations
Fokker–Planck equation and DPD simulationsFokker–Planck equation and DPD simulations
Fokker–Planck equation and DPD simulationsKotaro Tanahashi
 

More from Kotaro Tanahashi (6)

Deep Q-Network 論文輪読会
Deep Q-Network 論文輪読会Deep Q-Network 論文輪読会
Deep Q-Network 論文輪読会
 
Cythonの一喜一憂
Cythonの一喜一憂Cythonの一喜一憂
Cythonの一喜一憂
 
recurrent models of visual attentionメモ
recurrent models of visual attentionメモrecurrent models of visual attentionメモ
recurrent models of visual attentionメモ
 
情強アルゴリズムDIMSUM
情強アルゴリズムDIMSUM情強アルゴリズムDIMSUM
情強アルゴリズムDIMSUM
 
LBFGSの実装
LBFGSの実装LBFGSの実装
LBFGSの実装
 
Fokker–Planck equation and DPD simulations
Fokker–Planck equation and DPD simulationsFokker–Planck equation and DPD simulations
Fokker–Planck equation and DPD simulations
 

DSP開発におけるSpark MLlibの活用