エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

Mahoutでレコメンドを試し実装

きっかけ

Spartの動きがなんとなく分かったので、次の機械学習へ。

環境

IntelliJ IDEA 2019.1 (Community Edition)
Build #IC-191.6183.87, built on March 27, 2019
JRE: 11.0.2+9-b159.30 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0

intellijって、開発環境を簡単に出せるのか。。。
知らなかった。
メニューバーの HelpAbout で表示できる。

いっつも、コマンド打って転記してたけど、今度からこれでやったほうが早いな。

実験

build.graldeと実行ソース、データセットを晒しておけば十分かな?

build.gradle

plugins {
    id 'java'
}

group 'rssCollector'
version '1.0-SNAPSHOT'

sourceCompatibility = 11

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    // https://mvnrepository.com/artifact/org.apache.mahout/mahout-core
    compile group: 'org.apache.mahout', name: 'mahout-core', version: '0.9'

}

data.csv

1,1243,3.3
1,1240,0.3
1,1242,1.2
2,1242,1.3
2,1243,1.9
2,1241,2.8
2,1245,4.3
3,1240,0.6
3,1242,1.0
3,1241,2.3
3,1245,3.0

sample

本当は、先頭大文字にすべきだけど、多めにみて。。。

import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;

import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.List;

public class sample {
    public static void main(String[] args) throws IOException, TasteException, URISyntaxException {


        URL url = ClassLoader.getSystemResource("data.csv");
        DataModel model = new FileDataModel(new File(url.toURI()));

        UserSimilarity similarity = new PearsonCorrelationSimilarity(model);

        UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);
        Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);

        // ユーザID:1の人に3件レコメンド
        List<RecommendedItem> recommendations = recommender.recommend(1, 3);

        recommendations.forEach(System.out::println);
    }
}

実行

実行すると、下記みたいなのがでるはず。

RecommendedItem[item:1245, value:3.65]
RecommendedItem[item:1241, value:2.55]

3件指定したけど、2件しか出てこないのは、データが少なすぎるせいらしい。

感想

sparkなくても、レコメンドとかできるのか。。。。
すごく楽にレコメンドとか実装できてしまって、hadoopの実行環境作るのに悩んでいたのは何だったんだと思いたくなる。

他のサイト見ていたけど、 UserSimilarity similarity = new PearsonCorrelationSimilarity(model); のところで、 PearsonCorrelationSimilarity 以外のアルゴリズムを適用させて、いろいろ分析方法を返るみたい。
当然、後続で利用するクラスも変わるわけだが。。。
利用するアルゴリズムは、統計学の知識がないと、よく分からなかった。
体系的に統計学を学ばないと、ググって調べた程度の知識量では、汎用的に使うのが難しそう。。。

あと、調べてると、やたらとscalaが出てくる。
時期的に見ると、Java8リリース前だから、JVM言語が出始めてきた頃だな。
Java8リリース前は、JVM言語の方が盛り上がってた印象がある。
Scalaは、なんとなく読めるけど、やっぱり、違和感はある。

そういえば、機械学習とかするときって、前処理が大変とよく聞くが、アルゴリズムを適用させるために、決まったデータフォーマットにするために大変ってことだろうか?

課題

参考サイト

Mahoutでレコメンドを作ってみよう! | Atlas Developers Blog

mahout をとりあえず動かしてレコメンドしてみる(動作確認程度) - Qiita

低スペックな頭の僕がJavaの機械学習ライブラリmahoutを動かしてみる。 - regtan’s TechNote

Spark試し実装

きっかけ

本当は、hadoop使ってビックデータ処理がどんなものか探る予定だったけど、環境構築で挫折。。。
あまりにも面倒だったので、sparkでアプローチしてみようと思い、記事を書くに至る。

環境準備

macで実験。
Homebrewをインストールした前提で話をする。

OS

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.4
BuildVersion:   18E226

Homebrew

$ brew -v
Homebrew 2.1.1
Homebrew/homebrew-core (git revision 858af; last commit 2019-05-01)
Homebrew/homebrew-cask (git revision 606f3; last commit 2019-04-30)

インストール

$ brew install apache-spark
$ brew install scala
$ brew install sbt

Sparkの設定

export Spark_HOME=Spark_HOME-/usr/local/Celler/apache-spark/x.y.z

x.y.zはインストールしたバージョンを指定。
自分は、2.12.8だった。

$scala -version
Scala code runner version 2.12.8 -- Copyright 2002-2018, LAMP/EPFL and Lightbend, Inc.

実験

参考サイトを参考に、環境を生成。
ディレクトリ構造を間違えて、かなり迷った。。。

ディレクトリ構成

WordCount/
  build.sbt(ビルド方法を定義するsbtファイル)
  input.txt(ワードカウントする対象の入力ファイル)
  project/ (sbtの追加設定を入れるファイル)
    assembly.sbt
  src/
    main/
      scala/
        jp/
          excite/
            news/
              WordCountApp.scala

build.sbt

name := "WordCountApp"
version := "1.0.0"
scalaVersion := "2.11.8"
resolvers += "Atilika Open Source repository" at "http://www.atilika.org/nexus/content/repositories/atilika"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"
libraryDependencies += "org.atilika.kuromoji" % "kuromoji" % "0.7.7"
assemblyMergeStrategy in assembly := {
  case PathList("javax", "servlet", xs @ _*)         => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".properties" => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".xml" => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".types" => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".class" => MergeStrategy.first
  case "application.conf"                            => MergeStrategy.concat
  case "unwanted.txt"                                => MergeStrategy.discard
  case x =>
    val oldStrategy = (assemblyMergeStrategy in assembly).value
    oldStrategy(x)
}
mainClass in assembly := Some("WordCountApp")

assembly.sbt

resolvers += Resolver.url("artifactory", url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")

WordCountApp.scala

package jp.excite.news

import java.util.regex.{Matcher, Pattern}
import scala.collection.convert.WrapAsScala._
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext._
import org.apache.spark.SparkContext
import org.atilika.kuromoji.Tokenizer
import org.atilika.kuromoji.Token
 
object WordCountApp{
def main(args: Array[String]) {
    //スパークの環境設定
    val sparkConf = new SparkConf().setMaster("local[4]").setAppName("WordCount App")
    val sc = new SparkContext(sparkConf)
    //kuromojiのトークナイザ
    val tokenizer = Tokenizer.builder.mode(Tokenizer.Mode.NORMAL).build()
    //テキストファイルから1行ずつ読み込み。名詞を配列に分解する。
    //テキストファイルからRDDオブジェクトを取得する。
        val input = sc.textFile("input.txt").flatMap(line => {
        val tokens : java.util.List[Token] = Tokenizer.builder().build().tokenize(line)
        val output : scala.collection.mutable.ArrayBuffer[String] = new collection.mutable.ArrayBuffer[String]()
        tokens.foreach(token => {
            if(token.getAllFeatures().indexOf("名詞") != -1) {
            output += token.getSurfaceForm()
        }})
        output// return
    })
    //ワードカウントを行う。数える名詞をキーにし、キーを元に加算処理を行う。
    val wordCounts = input.map(x => (x, 1L)).reduceByKey((x, y)=> x + y)
    val output = wordCounts.map( x => (x._2, x._1)).sortByKey(false).saveAsTextFile("output")
    }
}

参考サイトだと、wordCountsが重複して定義してあったので、削除したのを上記にのっけた。

実行方法

sbt run

実行すると、WordCount/output に出力される。
part-0000xに出力される。

感想

hadoopでいろいろやろうとしたが、環境準備でダメだった。。。
その点、sparkは簡単に試せた。

scalaの構文は全然知らなかったけど、kuromojiは、知っていた。
何となくでも読めた。
ただ、sbtのscalaのビルドがどうなっているのかで、ちょっとハマったけど。
問題は、spark使うメリットが良くわからなかったことかな。。。
もうちょい、深く使ってみないと、わからないかもしれない。
もしかして、StreamAPIが入ったことで、並列処理がStreamAPIでもできるから、Javaでメリット薄いように感じるのだろうか?

ハマったこと

ディレクトリ構造を読みまちがて、java.lang.RuntimeException: No main class detected が出てしまったこと。
最初、WordCountApp.scalaを、src/jp/excite/news/WordCountApp.scala に配置してしまって、scalaのソースとして参照されていなかった。
src/scala/jp/excite/news/WordCountApp.scala が正解。パッケージ名にscalaなんて入ってこないから、相当悩んだ。。。
scalaディレクトリ構造は、srcの下にscalaがあるのが正解だって気づくまで、かなり悩んでしまった。
これは、Javascalaを共存させるために、こうなっているのだろうか?

これからの課題

  • SparkとStreamAPIを比較してみる
  • Scalaを学んでみる
  • sbtを調べてみる

参考サイト

「Apache Spark」×「Scala」で分散処理入門 : エキサイト公式 エンジニアブログ

【読書ノート】the four GAFA 四騎士が創り変えた世界

まとめも

GAFA - 世界を作り変えた四騎士

GoogleAppleFacebook、Amazom以外のテック企業は、存在感を失いつつある。
育っても、四騎士に買収されるのが関の山。
四騎士に対抗できるのは、四騎士だけという状態。

メモ:国レベルで保護されないと、対抗企業は作れないだろうな。中国が可能性としてあるけど、同等にはなっても、上位の企業は出せないと思う。なぜなら、パクるしか能がないから。

アマゾン - 1兆ドルに最も近い巨人

アマゾンの特徴は、より多くのものを楽に集めようとする狩猟本能への訴えかけ。
資本を食う店舗を持たないため、倉庫の自動化に投資し、パートナーを増やしていった。
売店がアマゾンの脅威に気づく頃には、アマゾンが巨大になっていた。

アマゾンが勝者になり、それ以外はすべて敗者の状態。
資金が大量にあるため、多少、投資に失敗しても、株価が下落しない。
また、投資戦略がはっきりしている。投資が無駄と分かったときは、きっぱり辞めることができることが成長を加速させている。
リスクアプローチの違いがはっきりしているのが特徴。
ビジネスの過ちは、リスクを負わなかったことで発生することが多い。
おとなしいことには、代償が伴っていることを理解する必要がある。

メモ:おとなしいことへの代償を一番理解してないのは、日本だな。。。とくに行政。規制を大量に作って、現状維持を望んだ結果、海外に駆逐されるって未来が見える。

売店だったはずのアマゾンが、いつの間にかクラウド企業、運送会社になりつつある。

グーグルにも勝る可能性が、アマゾンにある。
商品の検索をアマゾンでする傾向が強まれば、検索能力の向上につながる。
資金も集まってくるので、アマゾン優位ができる可能性がある。

アップル

ジョブズトークが注目されがちだが、最大の功績は、アップルをリスクを追うことを優先する大企業にしたこと。

アップルは、テクノロジー企業から高級ブランド企業に変わった。
そのため、テック企業から競争対象として外れることになった。

アップルの成功は、製造ロボを重視し、世界的サプライチェーンを確立させ、サポートとIT専門家の力を背景に、存在感を確率したこと。

企業は、敵の侵入を防ぐため、参入障壁を作ろうとする。
しかし、現実的には、どこかしらにヒビが入り、いずれ崩れる。

メモ:蟻の一穴理論だな。

テック企業では、それが顕著に現れる。
テック業界に切り込むには、敵の弱みをつくのに使った武器を無力化する力を持つことが大切。

メモ:核兵器を持つなら、Nジャマーも作らないと、報復合戦で勝てないってことか?

アップルは、他の四騎士に比べて、ブランド力で追随を許さない。
競合することが少ないので、長期間存続する可能性が高い。

フェイスブック

すべての情報を関連付けしてしまうため、プライバシーの問題が残る。
顧客情報が明確になっているため、得られるデータの精度が高いため、市場価値が高い。
ツイッターは、偽名である可能性があり、ボットである可能性が排除できない。

フェイスブックの力の根源は、ユーザーにある。
ユーザーがそっぽを向くような策だと分かった時点で、すばやく手を引く。

平均への回帰。正しいことをたくさんしたのなら、いずれ大きな間違いを起こす。
メモ: 平均への回帰って、かなり正しい観測かもしれない。

フェイスブックにとっては、情報が金につながる。
ゆえに、ヘイトスピーチであっても、記事の削除で金が減るのは嫌という状況になっている。

グーグル

情報へのアクセス精度が高い。求めているものを回答してくれ、誰に対しても公平であることで、影響力が一番高い企業になった。

グーグルは、検索アルゴリズムを出し抜こうとする輩を許さない。
いかさまによる検索上位表示をしたものに対しては、対策をきっちり行われ、検索結果の下位になるようにされる。

グーグルの能力は、昔の神であるメディアを殺しにかかっている。
メディアが編集室で発揮しているスキルよりも、高いスキルを発揮している。

グーグルは、神の力である全知を手に入れつつある。

メモ:日本だと、もう動詞として使われつつあるからな。空気と同じような存在に近づいているのだろう。

グーグルは、情報検索による情報収集を行い成長していった。
そのため、他社は気づくのが遅れ、圧倒的な差がついたころに気づいてしまった。
よって、他社の参入が困難な状況になり、今後もこの状況が続く可能性が高い。

四騎士は「ペテン師」から成り上がった

偉大なるペテン師とは、相手が騙されたことに気づかないようにする。
新聞社は、未だに何が起こっているのか知らない。グーグルに完膚なきまでに押しつぶされているとも知らずに。

メモ:無料で情報にアクセスしてくることを制限しないと、収益化はグーグルに握られたままだな。プラットフォームが強すぎて、新聞社じゃ太刀打ちできないだろうし、立場が逆転することは、数十年かかるだろう。というか、グーグルが許さないだろうな。

四騎士は、多かれ少なかれ、犠牲者の目を欺いている。

Uverは、多くの市場で、法律違反を犯しているが、契約する運転者や乗客は、増え続けている。
サービスが優れているため、廃れない。甘やかされてほぼされたタクシーのビジネスモデルを容易に淘汰してくる。

規則が完全でなければ、消費者は使い勝手のいいサービスを使う。
Uverは、それを行っているに過ぎない。

脳・心・性器を標的にする四騎士

成功するビジネス=脳・心・性器に訴えるもの

四騎士が共有する「覇権の8遺伝子」

  • 商品の差別化
    • 差別化は形あるものに限った話ではない。消費者が見つける場所/買い方/配達方法などもあてはまる
    • 消費者の面倒を減らす
  • ビジョンへの投資
    • 大胆なビジョン→安い資本を集める力
    • 目に見える形で結果を残す必要がある
  • 世界展開
    • 第5の騎士になるために必要
  • 好感度
    • 敵を作りにくい
    • 外からどう見えるかで現実が変わる
  • 垂直統合
  • AI
    • データへのアクセス
    • データの活用能力
    • 数量的最適化=予測の向上&将来の顧客のためになる
  • キャリアの箔付け
    • トップクラスのエンジニアを集めるために必要
  • 地の利
    • 優秀な大学とのパイプ=優秀なエンジニアの人材確保につながる

メモ:日本だと、難しい考えだな。特に地の利。大学とのパイプよりも、自社で育てるって概念があるから、そこまで重要視されない気がする。

NEXT GAFA

メモ:アリババは、無理だろう。。。中国という印象最悪なバックがいるのに、国際社会で通用するとは思えない。データに対する価値観も、違うんじゃないかな?金のために、顧客の資産情報を売買する可能性が高いと思う。

メモ:テスラか。。。日本の自動車産業の状態が一切書かれていないのだが、そんなに差があるものなのか?

メモ:uverは、代価企業が出てきたら、廃れそうだな。。。好感度がかなり重要だと事例でわかる。

メモ:ウォールマートは、アマゾンとの差別化が問題かもね。デジタル分野が弱いのが、致命的だな。。。

メモ:マイクロソフトは、どっちかというと復帰できるかどうかな気がする。

GAFA「以後」の世界で生きるための武器

現在:超優秀な人にとっては、最高の時代。なぜなら、勝者総取りの経済が存在しているため。
さらに、国際化による市場の拡大が拍車をかけている。

心理的成熟が、重要になっている。
競争と製品化のサイクルが短くなり、仕事の結果がすぐ出るようになっている。
どのような状況下でも感情のまま反応せず、組織の中が流動的になっても、うまくやっていける人が必要になる?

メモ:これって、もしかして、僕のことですか?

好奇心を持つことも、重要。
テクノロジーの進歩は、年々早くなっている。
次の変化について、積極的になれる人。

メモ:日本人は、現状維持が大好きだからな。経営層が変化に敏感じゃないと、外資に喰われそう。

当事者意識をもち、問題解決にあたる。
当事者意識を持つことで、問題を最小化できる。

感想

なんか、最後は日本企業的な価値観に回帰しそうな気がする。
読めば読むほど、データの扱いが重要だと思った。
やっぱり、ビックデータの知識や統計の知識を早めに習熟しておいた方がいいと思ってしまった。

【読書ノート】ITナビゲーター2019年版

まとめも

序章

2024年問題

  • 通信業界の維持限界
  • 人口の過半数が50歳以上になる

2025年頃に通信業界が維持限界を迎える。
PSTN→IT網への移行があり、どの国も経験したことのない大規模かつ重要な移行作業がある。

メモ: 失敗したら、NTTの株価は一気に減りそうだな。。。通信インフラの作業は、もはや国策レベルな気がする。

2024年には、50歳以上の人が半数を占めるようになる。
その状況でも経済成長するには、AI・IoT等の革新的技術の利用が必須。

再定義を迫られる企業

グーグル・アマゾン・マイクロソフトなどの大手プラットフォーマーが、想像を超えるスピードで成長し、既存の企業を脅かしつつある。
特に脅威にさらされているのが、銀行・ホテル・自動車。

銀行業界

FinTechの勃興が脅威になっている。
楽天リクルート、通信業者が、スコアリングを活用して企業や個人に資金提供を行う動きがある。
銀行は、キャッシュレス化等を進めるも、窓口が平日15時までといった制約があり、存在意義が薄れつつある。

メモ: 銀行が生き残るには、ITをうまく活用しないと無理な気がする。。。

ホテル業界

Airbnb等の民泊参入が脅威になっている。
結果は、東京オリンピックで出る可能性が高い。

メモ: 民泊って、利用時の不安が拭えない。不動産と警備会社とホテル業界がセットになって民泊をやればいいんじゃないかな?不動産が場所を提供・ホテルがサービスを提供・警備がセキュリティを提供とか?適当な妄想だけど。。。

自動車業界

カーシェア、ライドシェア、自動運転が脅威になっている。
競合が自動車メーカーではなく、グーグルやアマゾンといったネット企業に拡大している。

デジタル変革

デジタル変革とは、単純にデジタル機器を導入するだけではなく、デジタル技術を駆使して持続的成長を遂げられる企業に変わること。
デジタル変革を行うためには、デジタル技術への正しい理解と、正しく駆使できる人材が必要。

メモ: 正しくがポイントだろうな。なんとなく使うだと、破綻すると思う。

5G

2019年3月に5Gの周波数が割り当てられる。
2020年の東京オリンピックまでに活用できる見込み。

5Gは、高速・大容量で、4K/8Kの動画が移動中でも快適に見れる環境が可能になる。

周波数帯が、既存のものよりも高いため、電波の到達範囲は狭くなる。
そのため、既存の4G基地局に乗せるだけでは、エリアをカバーできない。
電波飛距離を伸ばす技術開発は、現在進行中であるため、解消する可能性もある。

メモ: コンビニに基地局置かせて貰えばいいんじゃないかな?都心部なら行けそうな気がする。

4Gも、まだ進化しており、当分は4Gと5Gが混在するかも。

特徴
  • URLLC
    無線区間の遅延が1ms以下という超低遅延性
  • mMTC
    100万デバイス/km²を接続・制御できる能力

メモ: どっちも異能バトルもので出てきそう。URLLCは、超高速反射能力、mMTCは、ファンネル使いっぽい

第一章

eスポーツ

競技人口は1億人とも言われ、賞金もトップクラスの大会になれば億単位になる。

メモ:日本は、eスポーツの定義が曖昧だからダメな気がする。何がeスポーツなのか、俺もよく分からない。ウイイレはeスポーツの定義でいいの?それなら、パワプロもeスポーツじゃない?個人的には、将棋の電脳戦もeスポーツな気がする。「eスポーツ」って単語が分かりにくいと思うんだよね。

日本のeスポーツ市場の課題

  1. 法律上、高額賞金の大会が開催しにくい
  2. 認知が低い
  3. 関連団体・組織の乱立

景品表示方には該当しないことが明らかになったが、刑法・風営法に該当する可能性があり、高額賞金の大会が開催しにくい要員になっている。
刑法だと、参加費を徴収して大会勝者へ配布することは、刑法上の博打に該当する可能性がある。参加無料ならOK。
風営法は、大会主催者が機器を設置して商品を提供することが抵触する可能性がある。大会主催者以外ならOK。

メモ:風営法が邪魔だな。。。刑法は、運営をうまくすれば参加者が膨大になるリスクは回避できそう。

日本のeスポーツの認知は、ゲームとしての認知が高い。
戦略・技術力を競う競技として捉えられていないのが現状。
普及のためにも、マスメディアやSNSの役割は大きい。

メモ:認知が低いのは、魅力的なアピールが足りないせいじゃなかろうか?テレビで放送するとかしないと、広まらない気がする。今のクソメディアじゃ、広める能力がない気もするが。。。。

メモ:組織が乱立するのは、利権だと思っているからだと思うな。どこかが圧倒的優位に立つまで、乱立は減らない気がする。

次世代ITに呼応する宇宙ビジネス

宇宙ビジネス

  • 地上系
    人工衛星のデータ利用、ロケット製造・開発
  • 宇宙空間
    宇宙旅行、宇宙空間での輸送機の製造・打ち上げ
  • 深宇宙
    資源探査、人類移住計画

メモ:ロケットと打ったら、次の入力補完で「団」が出てきて、ほっこりした気持ちになった。

人工衛星のデータ利用が進みつつある。
宇宙空間・深宇宙の事業は、政府中心が多いが、米国を中心に民間企業が生まれつつある。

衛星コンステレーション時代の到来

衛星の低コスト化と打ち上げコスト低下により、一度に100機程度の小型衛星の打ち上げが可能になった。
背景には、半導体性能の工場と低コスト化、小型化だけでなく、クラウドサービスの充実により、大型データセンター/サーバーを保持せずとも、ビックデータの保管・分析が行えるようになったのが大きい。
財力のないベンチャー企業でも、ビジネスモデルで勝負できる環境が、ベンチャー企業宇宙ビジネス参入を加速させている。

近年は、低軌道衛星によるインターネット環境の提供事業者が出現している。
従来の衛星よりも地球近傍に配置できるため、高速・低遅延の通信が実現できる。
衛星1機のカバー範囲は狭いが、衛星コンステレーションを構成することで、全球的なネットワークが実現できるとされている。

通信衛星コンステレーションの想定用途

  • インターネット未普及地におけるモバイル通信の浸透
  • 災害時の冗長性・強靭性の強化
  • IoTインフラの整備

メモ:なんか、日本こそ必要なインフラである気がする。。。宇宙に災害は関係ないからな。

通信衛星の今後

  • サービス価格高騰の防止
  • 通信帯域の効率管理

コスト回収のためにサービス価格が高騰すると、普及ができなくなる。
また、現在進行系で通信量は増えている。通信帯を統合的に制御する技術が求められている。

メモ:小型かつ高性能が重要っぽい。大量普及かつ受信キャパが多いものが作れるかが喫緊の課題

中国の深圳

  • かつては電気回路や半導体の部品・製造が盛んで、現在はドローンの調達・試作・製造にノウハウが生かされている
  • 補助金供与が積極的に行われるが、経営は自由に任せてもらえる

メモ:深圳ゴリ押しだな。。。中国共産党が、そこの資金に手を付けたら、もうアウトだろう。 メモ:日本で同じようにやるとなると、東京は無理だな。土地が足りない。主要な都市にアクセスできて、かつ土地があるところ。福岡ー大阪ー東京のラインにある県が有力候補かな?

質の働き方改革

RPAの導入が進むが、導入しにくい分野をどうやって改善するのかが問題になってくる。
部門単独で導入するのは、メリットが薄い。データの連携・分析、業務の最適化をすることによって、メリットが最大限に活かされる。

メモ: ITがビジネスインフラみたいになってこないと、真の業務効率化にはならないってことだろうな。

パーソナルデータ活用のためのデータガバナンス

パーソナルデータは価値が高い反面、個人情報保護法で二の足を踏む企業もある。
データをマスクしても、他のデータと照合されたら個人の特定ができるので、取扱が非常に厳しい。

ファイブセーフ

データを安全に連結して分析するための手法

ファイブセーフの観点
  • 安全なプロジェクト
    データ利用の目的・取扱が法的・倫理的に適切か?
  • 安全な利用者
    利用者は、個人データを適切な方法で使うと信頼できるか?
  • 安全なデータ
    データに機密開示のリスクはないか?
  • 安全な設備環境
    設備環境が、承認されていない利用ができないようになっているか?
  • 安全な分析結果
    分析結果に、機密開示のリスクはないか?

それぞれの適用箇所は、以下の通り。 入り口要件:安全なデータ
データ活用基盤:安全な設備環境
出口要件:安全な分析結果
利用者:安全なプロジェクト、安全な利用者

メモ: 彼の国は、少なくともデータ活用基盤~利用者までは、全部アウトでしょうね。。。

バイス市場

携帯電話端末市場

世界の携帯電話端末市場は、これまで牽引してきた中国やインド、東南アジアが横ばいになりつつある。
理由として、端末の買い替えサイクルの長期化、ガラケーからスマホへの乗り換えの鈍化がある。

メモ: ガラケーを重宝してる国がある??

日本は、概ね横ばい。
将来的な買い替えサイクルは、現在も長くなることが予想されるため、長期的には微減しそう。
今後は、法人向けスマホ、中古端末市場が成長の可能性あり。

4Kテレビ、インターネット接続可能テレビ、ストリーミングプレイヤー市場

オリンピックに向けて、買い替えが予想される。
また、買い替えする際に、今よりも大型を買う傾向にある。

テレビの用途がディスプレイとしても含まれるようになり、ストリーミング機能など、インターネットを利用した機能が拡充していくと思われる。

メモ: テレビを捨てた俺には関係ないけどね。

VR

市場成長は低迷。アーリーアダプタが中心になっており、消費は一段落している。

メモ: エロで市場牽引するしかないだろうな。。。

スマートスピーカー

認知度は上昇したが、置き物になっているケースが多い。
普及拡大には、音声対応家電の増加、優良アプリの増加、対話機能の実装が重要になる。

メモ: そのうち、注文するのは、スマートスピーカーになりそうな気がする。今はタブレットで選ぶのが限界だけど、そのうち、おすすめは何か?とか、複数言語に対応したりするような気がする。

ロボット

センサーと認識技術の向上により、やれることが増えたが、業務を完全に自動化するレベルには至ってない。
ロボットが作業しやすい環境に見直すなどの見直しが必要になってくる。
今後の労働人口減少により活用領域は拡大していきそう。

メモ: ロボットが合わせるんじゃなくて、人間から合わせにいくってわけね。

ドローン

日本では、農業での農薬散布として使われることが予想される。
次いで、空撮・監視・測量が、主な使用用途になる。

メモ: 技術工場とかで飛行してるドローンは、撃ち落とし可のルールが必要ではなかろうか?産業スパイで利用されそうな気がするのだが、撃ち落とし可能なルールも決めておく必要があると思う。

3Dプリンタ

  • 多品種生産
  • オンデマンド生産
  • 新形状・新機能生産

スペックの向上している一方、適切に使いこなすための技術改善も行われている。
ここにAIを適用するような動きがある。

メモ: 3Dプリンターでガンプラ作れるのかな?

ネットワーク

固定ブロードバンド回線市場

ほぼ飽和状態。
動画コンテンツが普及したことにより、トラフィック量が急増している。
事業側の高速化需要が急増している。
ユーザー増加が見込めないが、設備増強が求められている。

モバイルキャリア・ワイヤレスブロードバンド市場

総人口が減少する一方で、回線数は依然として伸びている。
格安スマホが存在感を増しており、今後も拡大基調は続きそう。

コンテンツ配信市場

ゲーム市場

ソフトウェアは、話題性のあるタイトルの減少が続く。
ソーシャルゲームは、無課金の壁を超えられるかが鍵になっている。

メモ: 停滞気味だからこそ、googleが参入しようとしてきたのだろうな。。。Apple任天堂買収も、あながち嘘じゃなさそう

動画配信市場

ユーザ数は順調に伸びているが、サービス競争の激化により、規模自体は鈍化傾向。

海外のサービスは、日本市場を取り込むべく、オリジナルアニメの制作を強化している。
日本のコンテンツ市場が大きく変動する可能性がある。

メモ: たつき監督を買収して、過労死レベルギリギリのラインで働かせて、オリジナルコンテンツを大量生産すればいいんじゃないかな?

アイドル市場

アイドル市場が、現状の音楽CD産業を支えている状態。
アイドル市場は、楽曲や音楽活動よりも、グループの存在や活動そのものが評価されている。
音楽だけでなく、イベントのチケットやグッズの売り上げがあるのが、大きい。
現状は、クラウドファンディングの登場で、「買って応援」から「投資して支援」に変わりつつある。
投げ銭の存在も大きい。
アイドルを応援するが、消費してこなかった層が多く存在し、それらを巻き込むのが方向に向かう必要がある。
消費の中心は学生。

メモ: いや、市場規模拡大は、無理だろう。。。アイドル運営会社がクソだから、見切りをつける人は、出てくるんじゃないだろうかと思う。アイドルが売れるようになるのは、何かにすがりたいときだと思うんだよね。景気悪化が見えてきたら、また台頭するとは思う。今の運営会社を見てると、発展する展望が見えないんだよ。。。 メモ: たぶんね、アイドルは、2次元化するんじゃないかと思う。声、歌のレッスンをきちんとこなしてきた声優にシフトするのではないかと感じる。容姿はアニメでなんとかできるし、アニメで惹きつけて、楽曲で儲けられると思うんだよね。熱狂的な人が多い気もする。近年の傾向を見ていると、その傾向が強いと感じる。アイマスラブライブアイカツは、殿堂入り。最近だと、ゾンサガは、異色だった故に目立った気がする。もしかすると、プリキュアの参入があるかもしれない。EDダンスがあるからな。あのクオリティを四半期に1度リリースするようになったら、マジで市場ができるんじゃないかとも思う。リアルのアイドル業界が斜頸産業だからこそ、参入の余地はあると思うんだよね。

プラットフォーム市場

クラウドサービス/データセンター/法人ネットワーク

企業の情報システム部の拡大が、そのまま市場の拡大に直結している。
大手銀行がクラウド移行に乗り出したため、他の大手企業もクラウド移行に続く可能性が高い。
クラウドサービス停止の可能性は、現状を見る限り、撤退はなさそう。

メモ:移行に失敗している大手もありそう。。。

情報セキュリティ市場

政府が矢継ぎ早に積極的な対応を促している状況。
背景には、欧米との足並みを揃えるためと、IoT機器やクラウドの利活用を促進するためと思われる。
喫緊の課題としては、シャドーIT対策が他国より遅れているのが問題となっている。

IoT市場

5G、LPWAが注目されている。
5Gによるクラウド利用の促進、LPWAによる低消費電力で無線通信によるデータ量の増大が期待されている。

スマートシティプラットフォーム

スマートシティプラットフォーム・・・都市のインフラ管理の効率化、認証機能などの提供、センサー等によるデータ提供
スマートシティを実現することで、データに基づいた街づくりを行い、渋滞緩和を目指す試みがある。
日本においては、物流を把握することで、災害時の効率的な状況把握や避難、物資運搬ができることが期待されている。

センサー系の安価・高性能化が重要で、データ活用のためにも5Gの普及が必要になっている。

スマートシティで、業界を跨いで全体最適化をどうやって実現するのかが重要。

シェアリングエコノミー

利用経験の壁が大きなネックになっている。
シェアリングサービスの技術基盤拡充、バックオフィスの充実が進めば、今後の展望が望める。

xTech市場

FinTech

銀行法改正によりオープンAPI、電子決済等代行業の整備により、利便性の高い金融サービスの誕生が予想されている。
キャッシュレス化については、4割程度の普及が政府目標値になっている。
6割以上を実現している国では、政府による政策が必須となっており、日本が4割以上を目指す場合は、税制優遇措置などが必要になってくると思われる。

メモ:FinTechは、個人的には信頼競争な気がする。どこまで資産を保証してくれうのかが、ネックだと思う。QR決済は乱立気味だけど、問題が発覚したら、一気に廃れる気がするんだよね。。。

RetailTech

ネットで見てから購入する割合が増えており、規模も拡大している。
その中で、オンラインを利用したアパレルビジネスが注目されている。

企業側には、ユーザ情報の取得・分析、生産体制の整備が求められ、既存のビジネスモデルから、ユーザーニーズを中心としたビジネスモデルに変化する必要がある。

AdTech

企業側は、広告脇の確保から、どの枠に広告を掲載するのか、ターゲット層を適切に調査・分析して効率的な配信を行い、費用対効果を高めることが重視されるようになっている。
今後は、投資の側面が強くなる。費用対効果のコントロールと新しいサービスの提供が重要になっている。

AutoServiceTech

短期視点であれば、配車サービスに注力する流れになっている。
効率的なマッチングが喫緊の課題であると思われる。
長期視点であれば、完全自動運転に収斂していくと思われる。

メモ:自動運転が実現するまで、タクシー業界が残っていられるかのほうが心配だがな。

EdTech

拡大傾向にある。要因としては、デジタル教材の普及や機材の導入がある。
公平性の問題があり、自宅環境で作業できない等をどうやって解決するかが問題

メモ:学校内で公平性が保てればいいんじゃないかな?家に帰ってまで勉強したいやつなんて少数だろう。それなら、近隣の図書館と連携してネットワーク環境を提供すればいいと思う。

過疎地同士をインターネットにつなぐことは、教育格差を是正することにつながるため、意義は大きい。

HealthTech

オリンピックに向けたスポーツ科学のために活発化傾向にある。
常時、生体計測が可能となり、疾病原因の特定に成果が出てくると期待されている。

ビッグデータと密接に関連しており、テクノロジーを活用した産業は、活性化しそう。

エンタメ分野から徐々に一般医療に視野が広がっていくと思われる。

SporTech

動画配信分野は、DAZNが中心になっている。
特にJリーグは、全試合の放映権を一括管理しているJリーグ機構が交渉に当たることで、大型契約が締結できたと思われる。今後、他分野のスポーツも、同様の形態になっていく。
プロ野球は、放映権が各球団にあるため、ビジネスチャンスを失っている可能性が高い。

メモ:日本は利権大国だから。プロ野球の改革は難しいのではなかろうか?

世界の潮流は、詳細なデータの公開と視聴者の好みに合わせてアングルのリプレイを提供している。
リアルタイムでデータを更新し、動画配信における情報の可視化が、今後、活発化すると思われる。

AgriTech/AquaTech

農業分野は、拡大基調にあり、ドローン・ロボット・環境制御システム・センサー関連の伸びが顕著。
漁業分野は、市場がほぼない状態。
養殖関連を中心に、市場ができるのではないかと予想されている。

2019/04/015週 気づきと振り返り

業務こなしての問題・気づき

週次リリースの廃止

週次リリースが廃止されてからしばらくたつが、なんか、メリハリがなくなった感がする。
どうも、ダラダラ開発してしまう。

危機感が、少し必要なのかも知れない。

JNINativeMethod

JavaC++のつなぎで使う。
ふつうに呼び出そうとすると、C++側のメソッド名が長くなりすぎるので、JavaC++のメソッド名のヒモ付をしたほうが良い。

雑記

最近、他言語をつなげることばっかりしてる気がする。

JavaJavaScriptJavaC++。。。

つなぎ目を作っていて思うことは、冗長化しやすいなって感じる。。。

2019/04/08週 気づきと振り返り

業務こなしての問題・気づき

printデバッグ

たしかに回避するべきだが、デバック起動でパフォーマンスが落ちて、動作確認に時間がかかっては意味が無い。
printしたほうが早いのなら、prinデバッグで良いのでは?と最近思い始めた。

戦略と作戦と戦術と兵站

やることが無くて、戦略とか作戦について、自分は仕事の中でどうするべきか、思いを馳せてみた。

戦略

最上位概念。戦わずして勝つやり方を考える。

敗者から見て、卑怯といわれる方法が戦略?

仕事の中では、開発の古典(デザインパターンとか、原理原則)を学ぶことが戦略に該当すると思う。
ただ、戦術面での下積みがないと、戦略は使いこなせない気がする。
デザインパターンも、いきなり教わるのではなく、開発で悩んだ結果、デザインパターンを知ることで、よりよく使えると思う。

作戦

戦いを作る。どうせ戦いが始まるのなら、有利な状況で戦いを作る。

仕事のうえでは、言語の先取り学習とか、情報収集、アンテナ張りかな?
危険な仕事の気配を感じたら、擦り付け先を考えるのを良くする。だけど、やりたくない泥臭い仕事は、高確率で俺のところに来るから、処世術が下手なのかもしれない。。。。

言語の先取り学習は、たぶん、即座に現場に活かせることはないと思う。
どちらかというと、投資の意味合いが強い気がする。
Javaなら早期ビルドのころから追ったほうが、確実に有利。
覚えるのが、出てからよりも、よく覚えられる気がする。
たぶん、情報が出ていないから、自分で情報を取りに行くため、不明点が明確になって覚えやすいのだろうと思う。

戦術

戦う術。

仕事のうえなら、リーダブルコードを書く、UMLで意思疎通を計るなどかな?

兵站

戦略・作戦・戦術を長く続けるためのリソース確保。
疎かにすると、戦略レベルで崩れて、戦わずして負ける。

マインド(学習意欲)を強くする、快適な学習環境が、そうだろうか?
ブログを書くのも、長く学習するうえで必要かもな。
あとは、検証環境を迅速に作れるdockerをマスターしたり、webサービスを高速に作れるSpringBoot覚えたりが、そうだろうか?

雑記

メガネ

作業するときはメガネをしているのだが、たまたま忘れた。。。

画面がぜんぜん見えないから、作業にならない。。。

メガネがないとダメなんだ。。。
メガネがないと。。。

プリン

プリンは飲み物
分類するなら汁物。俺の中では、味噌汁と同じ分類。

マナーを気にするところでは、スプーン使うけど、家の中ではすすって食べる。

ipad Air が届いた

やっと予約注文していたipad air が届いた。

icloudからバックアップ移行したが、素早く、しかも簡単に移行できたことに驚いた。
バックアップから復元したが、アカウント情報を使えて、アプリがすべて再インストールされるから、そのまま使えるような感じだな。
セキュリティ面が心配になるが、Appleは個人情報保護の観点が強いから大丈夫だろう。
safariとか、cookieからの保護が強すぎて、Google認証で苦戦した思い出があるから、ある程度は信用している。

前に使っていたipad、回収してもらいたいんだが、あの回収シール、どっかやっちゃった。。。
mac bookは、見つけたんだけどなぁ。。。

新製品を箱から取り出すドキドキ感がたまらない。
今度は、落とさないように大切に使おう。。。。