NAISTカーシェアリング | ソフトウェア工学研究室

ソフトウェア工学研究室客員准教授の畑です。ソフトウェア工学研究室ではソフトウェアを取り巻く課題に理論と実践の両面から取り組んでいます。今回は奈良先端大でテスト運用している乗り捨て可能カーシェアリングについて紹介します。公共資源である電気自動車を不特定多数のユーザでうまく運用できるメカニズムを研究することで、多種多様な資源が入り乱れるオープンな環境でのソフトウェア開発の課題に取り組んでいきたいと考えています。つまり、実証実験・実証分析の場としてカーシェアリングの研究開発をしています。プロジェクトWebページはこちらです:https://naist-carshare.github.io/

NAISTカーシェアリングには、三菱 i-MiEV 2台とBMW i3 1台(教職員のみ使用可能)の車両が用意されています。奈良先端大キャンパス内と近鉄学研登美ヶ丘駅近くの駐車場のいずれかで車の貸し出しと返却を行うことができます。大学内と駅前のどちらでも返却可能になっています。車の施錠・解錠にはスマートフォンアプリを使います。車両の使用開始から終了まで、ユーザはスマートフォンだけで操作が完結します。

NAISTカーシェアリングのユニークな点は、車両を使用する時間帯を予め申告する予約システムではなく、使用開始したい場所と時間帯を入札するオークションシステムであることです。希望者が集中した場合も好ましい割り当てが期待できます。使用中に他のユーザの入札に基づく需要を確認でき、需要の高い場所に返却すると報酬が得られる機能もあります。

技術的には、暗号通貨の1つである Ethereum を活用し、ブロックチェーン上で実行可能なプログラム「スマートコントラクト」を用いてシステムを実装しています。スマートコントラクトによりカーシェアリングにおける使用権の付与、管理、使用時における認証認可、及び支払いを実現することでこれらの機能が自動的に処理され、システムの自律的な運用が可能となっています。このプロジェクト用に発行したEthereumトークンを、各ユーザに1週間に7トークン分配布しています。ユーザはこのトークンで入札します。

一月ごとの使用状況をまとめて公開しています:https://naist-carshare.github.io/log/。オークションに勝利して車両を使用できた割合はおよそ80%になっており、そこそこうまく運用できているかなと思います。次の図は、2021年1月の、使用開始したい時間帯への入札回数を時間帯ごとにまとめたグラフです。この月の総入札回数は195回でした。昼前と夕方の入札が多いようです。24時間いつでもシステムは稼働しているので深夜や早朝にも入札があったようです。

こちらは一月の全ての移動を可視化した図です。滞在した頻度が高いほど赤く、頻度が低いほど黄色く示しています。大学と駅付近の駐車場を中心とした近辺で活発な移動が見られる一方、大学からやや離れた地域への移動も見られます。

今後は全学への本格運用へ移行するとともに、けいはんな地区への規模の拡張、車両への入札以外にトークンが使えるサービスの拡張、コミュニティへの貢献を推奨する報奨システムの拡張、他大学・他地域との連携などへの発展に取り組んでいきたいと考えています。

著者紹介

畑 秀明

🔗 Webサイト: https://hideakihata.github.io/

患者の語りに関するオリジナルソーシャルメディアの開発と研究的展望 | ソーシャル・コンピューティング研究室

こんにちは、ソーシャル・コンピューティング研究室の研究員真鍋です。

ソーシャル・コンピューティング研究室は、医療データとソーシャル・メディアの両方を研究の対象としています。この強みを活かして、ユーザー側への配慮と医療への貢献ができるソーシャルメディア「ABCエピソードバンク」を先日リリースしました。このABCエピソードバンクは乳がん患者さん向けの、当研究室オリジナルのソーシャルメディアです。既存のSNSのデータを用いるのではなく、オリジナルのソーシャルメディアを研究室が運営するというのは、チャレンジングな試みかもしれません。

このABCエピソードバンク、皆様にとって聴き慣れない用語で構成されていることと思います。まずは「ABC」と「エピソードバンク」のそれぞれについて、ご説明したいと思います。

「ABC」は特にステージが進んでいたり、再発を繰り返している進行性乳がん(Advanced Breast Cancer)を指します。想定するユーザーは必ずしも進行性乳がんには限りませんが、乳がん罹患者あるいはそれに関わる人である事を前提としています。患者会の開催がCovid-19の感染拡大により制限されている現在、オンラインで自助会に代る語りの場のニーズは高まっていると考えられます。

次に「エピソードバンク」ですが、これはバイオバンクを参考にした造語です。バイオバンクは、生体試料を新しい治療法などの開発/研究に役立てる制度です。この制度のように、患者自身の語りを収集し、その言語処理の結果から、医療に生かすことがエピソードバンクの大きな目的としています。

なぜ患者さんの語りを収集することが、医療に役立つのでしょうか?

それは現代の医療において、エビデンス・ベースド・メディスン(EBM)とナラティブ・ベースド・メディスン(NBM)が互いに補完的な車輪の両軸だと言われるためです。

EBMは、医療研究によって得られた客観的なデータを用いた医療であり、医師や病院が変わったとしても一定の適切な治療を受けられるために重要な理念です。しかし、根拠になるデータが十分そろっていない疾患、治療が困難な疾患、高齢者のケア、死に至る病気、あるいは精神に関わる病気などEBMを適用できない場合もあることから提唱されたのがNBMです。NBMは病気の経緯や現在の自身の考え方についての語りから、患者の痛みや苦しみにアプローチする手法です。問診の重要性を再度問い直し、患者さんを全人的にサポートする概念だと言われています[医療教育情報センター 2012]。

既存の患者向けソーシャルメディアと異なる点は、この研究視点だと考えています。エピソードバンクでは、患者同士の自助によるケアを促進する効果と同時に、そこから得られた知見を医療に活かす事を念頭においています。

次にシステムの工夫についてお話させていただきます。

ソーシャルメディアとしては、ブログと掲示板の中間の性質を持っていることが特徴です。それぞれが自由に投稿でき、投稿内容はタイムライン形式で一つの掲示板に統合されています。利用者同士のコミュニケーションの機能を最小限に止めることで、ソーシャルメディア上での人間関係の負担を減らし、コミュニケーション上の問題が起きにくいシステムを目指しています。

このようにユーザー同士の直接的なコミュニケーションを促進しないシステムである一方で、蓄積された投稿エピソードを一望することが可能なため、利用者にとっては近い状況にある人々の存在を感じることができ、孤独感を感じにくいシステムとなっています。また、「あるある」「そうなんだ」「ありがとう」など、厳選した4種類のレスポンスが可能です。

自由に書かれた体験談の中から、テキスト間の類似度を算出して近いエピソードを選び、提供できるようになっています。

このシステムは、想定ユーザーの視点と研究視点の双方から評価している段階です。想定ユーザーによる評価は、実際にがん患者さんの就職支援を行っている企業と共同研究を行うことによって、インターフェイス等への意見をシステムに反映しています。また研究視点では、既存のソーシャルメディアを比較することで、どのような機能や使い方が、ユーザーにとって安全に議論できる場だと感じられるかどうかを検討している段階です。炎上のメカニズムなども検討しながら、情報心理学の知見も考慮に入れて運営をしています。

現在はSNSを介して患者さんが声をあげる機会も増え、ペイシェントインフルエンサーと呼ばれる人たちも話題になっています。一方で、インターネット上のトラブルも多く、オンラインでの語りに慣れていない人々に対する機能面でのサポートが重要であるというのが、エピソードバンク運営の中で実感している部分です。

このように、エピソードバンクは運営の手法にもNLP、医学、情報心理学などの知見が生かされています。

[医療教育情報センター2012] 医療教育情報センター: ナラティブメディスン, 新しい診療理念・バックナンバー(No093r;2012/05/04) 

固有表現を解析する | 自然言語処理学研究室

自然言語処理学研究室 教授の渡辺です。自然言語処理学研究室では、自然言語の構文構造や意味を解析し、知識を自動的に抽出するといった研究をしています。また、機械翻訳や画像キャプション、要約など、文章や画像を入力として別の文章を生成したり、文法誤りの訂正など言語習得の支援などの研究を行っています。

NAIST Edgeでは最先端の研究を紹介する、ということですので、今回は固有表現を含む、名詞句の抽出技術について紹介したいと思います。固有表現は、人名や地名などの固有名詞や日付、時間などでして、このような表現をテキストから自動的に抽出するタスクは検索や質問応答などさまざまな自然言語処理のアプリケーションに利用されています。辞書があれば簡単にできるのでは、と思われますが、知識は日々更新されていますので、新しいニュースや科学技術論文が出るたびに辞書を更新するのは現実的ではありません。また、単純に名詞句を並べただけでは、と思われがちですが、GENIAコーパスと呼ばれる、生命科学の分野を対象とした論文のアブストラクトのデータを眺めますと「Employing the [EBV – transformed [human B cell line] ] SKW6.4 , we demonstrate …」のように入れ子構造になったものや「prostate cancer and brest cancer cells」などのように、並列構造になったものがあります。特に並列構造では、この例のように「prostate cancer cells」から「cells」が省略され、解析を難しくしています。単純に「and」があれば並列にすれば良い、というものではなく、「Nara Inatitute of Science and Technology」のように、「Science」と「Technology」が並列ですが「NAIST」全体で一つの固有表現になります。

この問題に対してよく使われているのが「系列ラベリング」という手法です。例えばある入力文「… an increase in Ca2+ -dependent PKC isoforms in monocytes」に対して、下図のように、各単語にBおよびI、E、Oといったラベルを割り当てる、というものでして、各ラベルがそれぞれ「開始」「内部」「終了」「固有表現以外」のラベルになります。この例の場合「Ca2+ -dependent PKC isoforms」が固有表現になります。深層学習の技術を用いることで、テキストの各単語に対してラベルを予測する問題、として考え、このようなラベルが付けられた学習データからモデルを学習できます。ところがこの手法では、学習データが存在することを前提としていまして、科学技術の全ての分野でそのようなデータが存在するとは限りません。また、並列構造を発見するためには複雑なラベルを割り当てる必要があります。

計算言語学の国際会議COLING 2020で本研究室の澤田が発表した、名詞句の並列構造を解析する手法では、特定の分野の学習データがなくとも、高精度に解析できることを示しました。本研究では、並列構造を取る名詞句は意味的に近いだろうと仮定し、まず、文の中で並列構造を取りそうな単語列を全て列挙します。その後でfastTextELMoBERTなどを利用して、各単語のベクトル表現を求め、単語単位のペアに対して、意味的に近いかどうかをベクトル間の距離により計算します。さらに単語列単位の近さは動的計画法に基づいた編集距離で求めます。右の図の例では、「the retinoid-induced differentiation program」と「not the RARE-medicated signal」との近さを計算しています。この例では、「the ↔ the」および「retinoid-induced ↔ RARE-medicated」「program ↔ signal」が近いと計算され、対応付けられていますが、「differentiation」および「not」が対応付けられていません。この手法により、ラベル付き学習データにより訓練されたモデルに匹敵する性能で並列構造を解析できます。

計算機でも処理しやすい論文は人間でも読みやすい論文でもあります。たとえ冗長になったとしても、専門用語を複雑に組み合わせるような構造をなるべく避けるよう心がけてください。複雑な構造が増えると私達の仕事が増えてしまい、困ってしまいます。

大学院の授業を翻訳する 〜 自ら使う音声自動翻訳技術へ | 知能コミュニケーション研究室

奈良先端大知能コミュニケーション研究室准教授の須藤です.今回は当研究室で開発している授業アーカイブ自動翻訳システムと,そこで用いられている深層学習の技術について簡単に紹介します.

プレスリリース:日本語授業映像に付ける英語字幕をAIで自動作成 深層学習技術活用のシステムを開発 ~留学生らの自習支援など国際化に期待~

大学教育の国際化の進展と留学生の増加により,情報科学領域でも約半数の授業は英語で行われています.日本語で行われる授業については英語のスライド資料を利用するなどしていますが,日本語が分からない学生は資料だけで授業内容を理解しなければなりません.他方,本学では講義室の授業映像を録画・保存し,学内で閲覧できる「授業アーカイブシステム」を運用しています.私たちは,知能コミュニケーション研究室で取り組んでいる技術によって日本語の授業を英語に翻訳し,授業アーカイブシステムで字幕として見せることで日本語が分からなくても授業アーカイブシステムを用いて復習・自習できるような仕組みを作っています.日本語および英語の字幕が表示された授業アーカイブはこのような画面で表示されます.

このシステムは,授業で話される日本語を文字起こしする「音声認識」と,日本語を英語に自動的に翻訳する「機械翻訳」の二つの技術で実現されています.それぞれ長い歴史を持つ技術ですが,最近の深層学習(ディープラーニング)技術によって大きく性能が向上しました.今回は須藤の専門である機械翻訳(コンピュータを用いて自動的に翻訳を行う技術をこう呼びます)の技術を紹介します.

深層学習技術で用いられる計算の仕組みをニューラルネットワークと呼びます。詳細な説明は省きますが、ニューラルネットワークでは単語や音声、画像といった処理の対象をすべて数値を使って表します。数値といっても一つの数ではなく、数百個の数を使ったベクトルという形で表します。模式的な例として、X軸・Y軸を用いた2次元の平面で単語を表した例を次の図に示します。

この図では、man、woman、king、queenという単語が、2次元の平面上の別々の点として書かれています。それぞれの点には対応するX,Yの2つの数があり、この例では2つの数を使って単語を表現していると言えます(実際の研究では500次元、1000次元等より複雑な空間を使います)。さらにこの図では、manとwomanを結ぶ矢印つきの線とkingとqueenを結ぶ線がとてもよく似ています。このmanとwomanを結ぶ線は、manの座標をv(man)、womanの座標をv(woman)と表すとv(woman) – v(man)と書くことができます。それを使うとqueenの座標 v(queen) がkingの座標 v(king)を使ってv(king) – v(man) + v(woman)と表すことができるのです。実際には多少誤差があって完全に等しくなることはないのですが、単語をベクトル(座標)で表すときの例としてよく用いられます。

ニューラルネットワークを使った機械翻訳のことをニューラル機械翻訳と呼びます。単語を数で表現する考え方を上で説明しましたが、ニューラル機械翻訳では一つの単語だけでなく、複数の単語の並びや文もベクトルで表現します。ニューラル機械翻訳の処理を非常に単純に表現した図を以下に示します。

日本語を英語に翻訳しようとするときに、まず日本語の単語をベクトルに変換して、そのベクトルを一つずつコンピュータに読み込ませます。読み込ませるときには、今持っているベクトル(左下の青い四角)と新しく読み込むベクトル(「入力単語のベクトル表現」と書かれたもの)にある決まった計算をして、新しいベクトルを求めます。例えば、「機械」という単語を読み込み終わった時点では、そのベクトルは「これ」「は」「機械」という3つの単語を読み込んで記憶できると考えてください。すべての単語を読み込み終えると、今度は英語に翻訳した文を出すために、英語の単語を一つずつ読み出します。読み出す仕組みもベクトルを用いた計算によるもので、ベクトルにある決まった計算をして、英語の単語に対応するベクトルと、これから出力する単語の情報を持つベクトルの二つを得ます。この処理を繰り返して、単語に対応するベクトルを一つ一つ単語に変換することで、最終的に英語の文が得られるというわけです。

上の説明で「決まった計算をして」と書きましたが、当然正しい結果が得られるように計算をする必要があります。ベクトルの中の数に対する掛け算や足し算を組み合わせて、ベクトルから別のベクトルを得るような計算をするのですが、ここでどういう数(パラメータ,と呼びます)を掛けたり足したりすれば正しい結果が得られるのか、を対訳(異なる言語の同じ意味の文の組,例えば日本語と英語)を使って調整するのです。その方法の詳細はここでは説明しませんが、最初はランダムな値から始め、正しい翻訳結果が出てくるようにするにはこのパラメータの値を大きくすればよいのか、小さくすればよいのか、を調べながら、少しずつ調整をしていくのです。

このようにして、機械翻訳や音声認識は大量のデータを使って、正しい結果が得られるパラメータの値を「学習」することで実現されています。このようにデータから何かの問題の解き方をコンピュータが身につけるための技術を「機械学習」と呼びます。機械翻訳や音声認識はその一例ですが、最近のコンピュータはそうした技術によって様々なことができるようになってきているのです。

Secure the Internet of Things (IoT) using Physical Layer Security and Blockchain

Hi, everyone! This is Yuanyu Zhang from the Large-Scale Systems Management Laboratory.  It is a great opportunity for me to share my research with you. Broadly speaking, my research focuses on the security of Internet of Things (IoT) systems, with special interests in securing IoT wireless communications based on physical layer security (PLS) technology and designing access control schemes based on the emerging blockchain technology. Now, I am going to briefly introduce my research from these two aspects.

  • PLS-based Secure IoT Wireless Communications 

When it comes to the IoT, I believe anyone can give an concrete application, such as smart home, e-health, intelligent transportation, etc. In these applications, a huge number of smart devices, like sensors, actuators, tablets, will be connected into the Internet via a variety of wireless communication technologies, like WiFi, Zigbee and Bluetooth.  As we all know, wireless medium is open such that anyone close to a transmitter can receive its signals. Suppose the information conveyed by the signal is not encrypted, so what would happen if the signal is received by an eavesdropper? Obviously, the information is in danger! In IoT applications, these information may be your health data perceived by sensors around you and your financial transfer records sent from smart phones. Once these information are leaked to eavesdroppers, your life and property will be in danger.

Of course, we can encrypt these information using secret key-based cryptographic approaches like what we do in wired communications. However, managing and distributing secret keys in wireless environment is challenging, especially for large-scale IoT systems. Besides, the cryptographic approaches usually require high computing power, which is unavailable for most resource-constrained IoT devices. This motivates the advent of the so-called physical layer security (PLS) technology, which uses the inherent randomness of wireless channels (e.g., fading, noise, interference) instead of costly cryptographic approaches to ensure no information leaked to eavesdroppers. As long as we can guarantee that the received signal of the eavesdropper is an degraded version of that of the intended receiver, the eavesdropper can abstract nothing from the signal. This conclusion has been proved from the perspective of information theory. The figures below shows the basic differences between cryptographic approaches and PLS technology.

What my research does is to apply commonly-used PLS techniques in IoT systems and theoretically evaluate the security performances of these systems using some mathematical tools, like Probability Theory, Markov Chain Theory, Queuing Theory and Stochastic Geometry.  Well, okay, I know it’s boring, but trust me, it is vitally important for understanding the PLS performance limits of IoT systems and contributing to the successful application of PLS techniques in these systems. If it does not sound boring to you, I would be very glad to share this research with you in greater details.

  • Blockchain-based IoT Access Control

Okay, ready for another research? You know what, this research may be more interesting, at least for me. The previous research focuses on the security of the information during its transmission, while this research focuses on the security of the information when it is stored somewhere as resource and accessed by some users or devices. Of course, resources are not limited to information, but also include actuators that may perform some critical tasks, like brake control and drug delivery.  But one common thing is that, once these resources are accessed by malicious users, your life and property will be in danger. This research aims to design effective access control schemes to prevent illegal access to IoT resources.

Traditional access control schemes are centralized, which means that they use a central server to control all access requests in the system. So what if this server is destroyed in disasters, or what if this server is compromised by some malicious guy? Yes, the whole access control scheme collapses.  Now, question is how to tackle these challenging issues. Fortunately, the emerging blockchain technology provides us with a promising solution, because it is highly distributed and ensures reliable financial transactions among trustless peers all over the world. In this research, I use the Ethereum blockchain, which evolves into a distributed and reliable computing platform thanks to the introduction of smart contract. A smart contract can be thought of as a piece of code that is stored on the blockchain and distributed to all nodes in the system. All nodes can execute this code and verify the correctness of the results. This ensures the correct execution of the smart contract as long as no one possesses more than 51% of the system computing power.

The basic idea of this research is to ensure  distributed and reliable access control by expressing the access control policies and logic as smart contracts. The access control framework is illustrated in the figure below.

This framework consists of multiple access control contracts (ACCs), one judge contract (JC) and one register contract (RC). Each ACC is responsible for the access control of a subject-object pair, and implements both static access right validation based on predefined policies and dynamic access right validation by checking the behavior of the subject. Here, a subject is the node accessing the resources possessed by an object. The JC implements the misbehavior-judging method to facilitate the dynamic validation of the ACCs by receiving misbehavior reports from the ACCs, judging the misbehavior and returning the corresponding penalty. The RC registers the information of ACCs and JC, and also provides functions (e.g., register, update and delete) to manage these methods. Suppose a server wants to access the resource of a camera in a smart home. The workflow of the access control is shown in the figure below.

  • Step 1: The server calls the RC to retrieve the ACC (e.g., the ACC 2) for access control.
  • Step 2: The RC returns the address and ABI (similar to API) of the ACC to the server.
  • Step 3: The server sends a transaction to the ACC, which contains the required information for access control. This transaction will be encapsulated in a new block and the ACC will not be executed until the new block is mined and included in the blockchain by some miner.
  • Step 4: During the access control process, the ACC will send a message to call the JC, if some potential misbehavior of the subject is detected.
  • Step 5: Once the JC  judges the misbehavior and determines the penalty, it will return the penalty to the ACC.
  • Step 6: Finally, the access result will be returned to both the subject and object, after the access control process finishes.

To demonstrate the feasibility of the framework, we provide a case study in an IoT system with one desktop computer, one laptop and two Raspberry Pi single-board computers, as shown in the figure below.

And the results of access control at both the subject and object sides are illustrated in the figures below.