CN110162553A - 基于attention-RNN的用户兴趣挖掘方法 - Google Patents
基于attention-RNN的用户兴趣挖掘方法 Download PDFInfo
- Publication number
- CN110162553A CN110162553A CN201910422603.3A CN201910422603A CN110162553A CN 110162553 A CN110162553 A CN 110162553A CN 201910422603 A CN201910422603 A CN 201910422603A CN 110162553 A CN110162553 A CN 110162553A
- Authority
- CN
- China
- Prior art keywords
- data
- user
- attention
- users
- rnn
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000005065 mining Methods 0.000 title claims abstract description 27
- 230000007246 mechanism Effects 0.000 claims abstract description 26
- 238000010606 normalization Methods 0.000 claims abstract description 11
- 238000013480 data collection Methods 0.000 claims abstract description 4
- 239000013598 vector Substances 0.000 claims description 23
- 238000009826 distribution Methods 0.000 claims description 13
- 238000004140 cleaning Methods 0.000 claims description 8
- 230000037431 insertion Effects 0.000 claims description 7
- 238000012549 training Methods 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 238000003780 insertion Methods 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 230000004913 activation Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 230000001413 cellular effect Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 238000000605 extraction Methods 0.000 abstract description 5
- 230000006399 behavior Effects 0.000 description 54
- 230000006870 function Effects 0.000 description 15
- 230000000694 effects Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 241001071864 Lethrinus laticaudis Species 0.000 description 1
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于attention‑RNN的用户兴趣挖掘方法,包括:步骤1,原始数据收集;步骤2,结构化处理;步骤2,数据清洗;步骤3,异常值判别与处理;步骤4,数据归一化;步骤5,建立用户兴趣挖掘模型,所述用户兴趣挖掘模型包括输入层、embedding层、LSTM层、attention层和输出层。该方法基于LTSM的兴趣挖掘模型,将用户行为序列转化成一系列的兴趣状态,并在此基础上增加了attention机制,实现了对家庭成员不同个体兴趣偏好的提取,算法准确度高。
Description
技术领域
本发明涉及一种基于attention-RNN的用户兴趣挖掘方法,属于数据处理与分析的技术领域。
背景技术
随着宽带技术的发展,通过网络传播多媒体内容也变得越来越高效,由此带来的一个典型的应用场景就是交互式网络电视(Internet Protocol Television,简称IPTV),它是一种利用宽带网络技术将互联网、多媒体、通讯等技术进行集成,向家庭用户提供多种交互式服务(包括数字电视)的崭新技术,该服务能够很好地适应当今网络飞速发展的趋势,充分有效地利用网络资源。
近年来,通过评估和分析用户对不同主题的公共观点来辅助各种服务制定正变得越来越重要。在IPTV电视领域,对用户观看电视的行为进行分析具有以下优点:第一,电视观众通常包含各个年龄层次的群体,其人口分布更具有多样性;第二,通过IPTV机顶盒收集到的用户观看行为的数据不是通过传统的方法进行收集的,不会破坏用户体验,同时用户产生这些行为通常是自己潜意识的表达,没有外部的干扰,基于这些数据分析用户的兴趣更具有真实性。基于此建立用户兴趣挖掘模型,分析用户偏好,可以为进一步提升用户体验提供帮助。
需要注意的是,IPTV面向的服务对象是家庭,一个IPTV账号通常有多个家庭成员共享,同一个账号记录的用户收视行为受家庭成员的不同兴趣影响,现有技术中提出的兴趣挖掘方法在针对用户行为进行分析时,往往忽视了观看电视节目的主体可能发生变化带来的影响。而不同家庭成员的观看行为也对现有技术中的算法准确度带来了影响。
发明内容
本专利所提出的方法正是为了解决这一问题,设计了一种基于attention-RNN的用户兴趣挖掘方法,其基于LTSM的兴趣挖掘模型,将用户行为序列转化成一系列的兴趣状态,并在此基础上增加了attention机制,实现了对家庭成员不同个体兴趣偏好的提取。
本发明提出了一种基于attention-RNN的用户兴趣挖掘方法,包括:
步骤1,原始数据收集;
步骤2,结构化处理;
步骤3,数据清洗;
步骤4,异常值判别与处理;
步骤5,数据归一化;
步骤6,建立用户兴趣挖掘模型,所述用户兴趣挖掘模型包括输入层、embedding层、LSTM层、attention层和输出层。
进一步的,步骤1中所述原始数据包括网络相关数据、设备相关数据、用户观看节目相关数据以及用户投诉相关数据;所述用户观看节目相关数据包括用户自身相关的数据和用户所观看的电视节目相关的信息;
所述网络相关数据通过Linux系统自带的libpcap模块进行收集;所述设备相关的数据通过Linux系统自带的监控模块收集;所述用户观看节目相关数据从服务器直接获取;所述用户投诉相关数据根据用户的投诉记录由相关的服务部门进行收集,然后上传到数据库中。
进一步的,步骤2中所述结构化处理具体为:
将原始数据包含的所有字段组成一条记录,通过用户ID作为数据每一条记录对应的唯一标识,所述网络相关数据通过以下字段表示:
df:时延;
mlr:丢包因子;
jitter:抖动;
loss_packet_rate:丢包率;
can_use_rate:可用率;
overflow_numbers:上溢次数;
abend_numbers:下溢次数;
avg_bit_rate:平均比特率;
所述设备相关数据通过以下字段表示:
stb_id:机顶盒的ID;
stb_ip:机顶盒对应的ip地址;
cpu_usage:当前时间段内IPTV机顶盒的CPU使用率;
所述用户自身相关的数据通过以下字段表示:
user_id:IPTV账号;
collect_time:收集数据的时间;
start_time:用户开始收看电视;
end_time:用户结束收看电视的时间;
所述电视节目相关的信息通过以下字段表示:
type:电视节目所属的类型;
channel_id:频道id或点播节目id;
channel_name:频道名称或点播节目名称。
进一步的,步骤3中所述数据清洗包括:对缺失值进行过滤;对重复数据进行去重;对明显的错误数据进行改正,无法改正时将对应记录删除。
进一步的,步骤4中所述异常值判别与处理包括:
判断清洗后的数据是否满足正态分布,
如果清洗后的数据满足正态分布,通过给定置信概率和置信区间对数据进行筛选,如果数据不在该区间内,则认为该数据超过了误差范围,将该数据去除;
如果清洗后的数据不满足正态分布,则使用箱线图的方法来判定,箱线图主要包含六个数据节点:上边缘、下边缘、上四分位数Q1、中位数、下四分位数Q3和异常点,四分位距IQR=Q1-Q3,如果数据小于Q1-1.5IQR或者Q3+1.5IQR的值,则认为该数据异常,将该数据去除。
进一步的,所述步骤5中数据归一化使用如下转换函数:
其中,b为原始数据,max(b)为数据的最大值,min(b)为数据的最小值。
进一步的,步骤6中所述输入层将观看行为数据记为b=[b1;b2;...;bt]∈RK×T,其中bt表示用户在t时刻的行为,即用户在t时刻收看的电视节目名称,K为用户可以收看到的所有电视节目的名称,对用户收看电视节目的行为进行one-hot编码,可以得到bt∈{0,1}K,T表示用户观看电视节目的行为序列长度;
所述embedding层把b=[b1;b2;...;bt]∈RK×T利用矩阵乘法降维,映射到固定长度的向量x=[x1;x2;...;xT]。
进一步的,所述LSTM层中的计算步骤如下:
首先,经过如下sigmoid函数决定要从细胞状态中丢弃的信息:
ft=σ(Wf·[ht-1,xt]+bf),
其中σ为激活函数,Wf为权值,bf为偏置,ht-1为上一时刻隐状态,xt为当前时刻的输入,
通过sigmoid函数确定需要更新的值:
it=σ(Wi·[ht-1,xt]+bi),
通过tanh函数创建一个新的候选向量
对细胞状态进行更新,通过上一时刻的细胞状态Ct-1与ft相乘可以丢弃需要丢弃的信息,候选向量与it相乘可以决定候选向量的变化程度,将这两者相加得到当前的细胞状态Ct:
最后,将当前的细胞状态Ct经过一个tanh函数与经过sigmoid函数过滤的结果相乘,输出ht:
ot=σ(Wo·[ht-1,xt]+bo),
ht=ot*tanh(Ct)。
进一步的,所述attention层使用attention机制的计算函数:
其中,ea表示目标电视节目名称的嵌入向量,为模型的参数,需要通过模型训练得到,nh表示隐状态的维度,na表示目标电视节目嵌入向量的维度;
最终计算出来的attention得分αt反映目标电视节目ea和兴趣状态ht之间的关系,二者相关性越大,则attention得分越高,通过LSTM输出的隐层状态经过attention机制的输出,表示为:
ht'=ht*αt。
进一步的,输出层将经过attention机制后的特征向量,接全连接层得到输出
y,最后通过sigmoid函数转化为概率:
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1.本发明将原始数据进行一系列预处理,数据结构化和归一化,对量化抽象的用户观看行为所产生的用户观看兴趣和构建样本数据提供了极大的帮助。
2.本发明采用基于LTSM的兴趣挖掘模型,将用户行为序列转化成一系列的兴趣状态,并在此基础上增加了attention机制,实现对家庭成员不同个体兴趣偏好的提取,使兴趣挖掘模型的输出准确率,召回率和f1值明显的提升,模型的性能得到明显的改善。
附图说明
图1为本发明涉及的基于attention-RNN的用户兴趣挖掘方法的流程图。
图2为本发明所涉及的用户兴趣挖掘模型。
图3为本发明所涉及的LSTM单元结构图。
图4为本发明所涉及的不同embedding维度下不同模型的准确率。
图5为本发明所涉及的不同embedding维度下不同模型的召回率。
图6为本发明所涉及的不同embedding维度下不同模型的f1值。
图7为本发明所涉及的attention机制可视化效果图。
具体实施方式
下面结合说明书附图对本发明创造作进一步的详细说明。
本发明提供了一种基于attention-RNN的用户兴趣挖掘方法,如图1所示,该方法包括如下步骤:
一、数据的预处理;
步骤1,原始数据收集:本发明采用的数据集是由某设备制造商通过IPTV的机顶盒采集的,数据集一共包含四类数据:网络相关数据、设备相关数据、用户观看节目相关数据以及用户投诉相关数据。前三种数据都是通过IPTV机顶盒进行采集的,其中网络相关数据如抖动、时延等通过Linux系统自带的libpcap模块进行收集;设备相关的数据通过Linux系统自带的监控模块收集;节目相关的数据如采集时间、记录开始时间、记录结束时间、节目ID等则从服务器直接获取。这三种数据在经过IPTV机顶盒汇总之后直接上传到设备商用于存放数据的数据库中。第四种数据则是根据用户的投诉记录由相关的服务部门进行收集然后上传到数据库中。
步骤2,结构化处理:基于以上获取的数据,我们对其基本属性进行结构化处理,数据包含的所有字段组成一条记录,通过id作为数据每一条记录对应的唯一标识。其中,网络相关数据由字段df、mlr、jitter、loss_packet_rate、can_use_rate、overflow_numbers、abend_numbers和avg_bit_rate描述,分别表示时延、丢包因子、抖动、丢包率、可用率、上溢次数、下溢次数和平均比特率。这些字段描述了用户在收看某个电视节目的当前时间段内的网络状况,网络状况是电视节目能否顺畅播放的基本条件,所以IPTV网络相关属性至关重要。
设备相关数据通过字段stb_id、stb_ip、cpu_usage表示,分别代表机顶盒的ID、机顶盒对应的ip地址以及当前时间段内IPTV机顶盒的CPU使用率。
用户观看电视节目的相关数据主要包括两个方面,一是用户自身,二是用户所观看的电视节目相关的信息。用户自身相关的数据通过字段user_id表示,该字段用来唯一标识用户(IPTV账号),collect_time字段表示收集数据的时间,start_time、end_time分别表示用户开始收看电视和结束收看电视的时间;电视节目相关的信息用字段type、channel_id、channel_name描述,分别表示电视节目所属的类型(直播、点播、回看)、频道id(点播对应节目id)、频道名称(点播对应节目名称)。
步骤3,数据清洗:数据清洗的主要任务是去除数据中明显错误、缺失或者重复的记录,我们称这些数据为“脏数据”。由于当前网络及硬件技术的发展,服务提供商能够更加方便地收集到各种数据,数据量也随之快速增长,与此同时,由于各种主客观原因,数据中不可避免地会出现一些“脏数据”。
对于残缺值,例如记录中编号、用户观看记录的某些参数值缺失等,我们对其进行了过滤;对于重复数据,我们对数据进行去重,只保留一条;对于明显的错误数据,比如常见的日期越界、数据取值越界等,在可以简单将其改正的情况下,我们将其纠正之后保存,无法纠正时则直接将对应记录删除。
步骤4,异常值判别与处理:在上一步对原始数据进行了初步的清洗去除某些数据之后,我们仍需要对数据进行进一步地分析和处理,因为初步清洗过程只是通过一些简单的方法去除了一些明显的“脏数据”,一些无法通过简单过滤方法检测出来的不合理记录依然可能存在。如果直接对这样的结果进行挖掘,会影响实验结果的准确性。我们主要基于统计分析的方法进一步去除不合理的数据。
利用统计分析的方法主要是基于数据的分布特点进行分析,我们日常接触的很多数据都是服从正态分布,满足这样分布的数据,通过给定置信概率和置信区间对数据进行筛选,如果数据不在该区间内,则说明数据超过了误差范围,需要去除。如果数据不满足正态分布,我们可以使用箱线图的方法来简单判定。箱线图主要包含六个数据节点:上边缘、下边缘、上四分位数Q1、中位数、下四分位数Q3和异常点,则四分位距IQR=Q1-Q3。它为我们提供了一个基于经验判断的异常值识别方法:如果数据小于Q1-1.5IQR或者Q3+1.5IQR的值,则认为该数据异常。这种方法以四分位数和四分位距为基础,由于四分位数的耐抗性,箱线图在识别异常值方面具有一定的优势。
步骤5,数据归一化:数据归一化是将数据按照某个预先设定的比例进行缩放,使之落入[0,1]区间上。对数据进行归一化可通过把数据变为[0,1]内的小数,使得有量纲的表达式变为无量纲的表达式,如果在后续的建模中,我们使用和距离有关系的模型进行训练,如果某个特征的取值范围较大,则会造成取值较小的数据对模型结果的影响比较小。另外,对数据进项归一化处理还能加快梯度下降求最有解的收敛速度。因此,归一化处理数据对提升后续模型的收敛速度和精度都有帮助。
本发明使用的数据中,通过对原始数据的观察,我们发现数据集中样本的各个属性值的量纲并不一致,所以我们需要对数据进行归一化处理。通过对数据值的分布的分析,原始数据并不满足我们常见的正态分布,而是一般的分布,所以使用线性归一化的方法对数据进行归一化处理。
线性归一化是通过对原始数据进行线性变换,使其结果落到[0,1]区间,转换函数:
其中,b为原始数据,max(b)为数据的最大值,min(b)为数据的最小值。
二、建模;
通过对用户观看电视节目的行为进行分析,我们可以将用户的观看行为抽象为一组行为的序列。考虑到IPTV一般都是针对的家庭用户,不同时间段的用户观看兴趣受用户家庭结构的影响,如单身、夫妻、夫妻+小孩、夫妻+老人、夫妻+老人+小孩等家庭结构,所以某个IPTV账号记录的一段历史行为序列会反映出一个家庭中不同成员的兴趣爱好。
行为分析:通常我们是不知道一个账号对应的家庭成员结构的,只能通过IPTV机顶盒记录的用户观看行为序列进行挖掘。综上所述,每个IPTV账号所对应的用户观看行为数据具有以下特点:
(1)用户的观看行为是用户自身兴趣的在电视节目上的表现形式,兴趣导致用户产生一系列的观看行为;用户对电视节目的兴趣又受节目具体内容的影响,例如用户在第一次收看了某个电视节目之后发现不感兴趣,下次不会选择再观看;用户的观看行为具有有时序的特点。
(2)IPTV面向的服务对象是家庭,一个IPTV账号通常有多个家庭成员共享,同一个账号记录的用户收视行为受家庭成员的不同兴趣影响,即一个账号可能会对应不同的家庭成员的观看行为记录,从而反映家庭成员对电视节目的不同兴趣偏好。
基于上述分析,在IPTV收看的过程,用户收看电视节目的行为是直观反映用户兴趣的载体,用户的某种收视行为(比如观看某个电视节目的时长,次数等)直接反映了用户的兴趣爱好。
步骤6,建立模型结构:基于LTSM的兴趣挖掘模型,将用户行为序列转化成一系列的兴趣状态,并在此基础上增加了attention机制,实现对家庭成员不同个体兴趣偏好的提取,如图2所示。整个兴趣提取模块分为输入层,embedding层,LSTM层,attention层,输出层,下面将逐一介绍。
(1)输入层
输入层使用IPTV机顶盒记录的用户收看电视节目行为相关的,将观看行为数据记为b=[b1;b2;...;bT]∈RK×T,其中bt表示用户在t时刻的行为,即用户在t时刻收看的电视节目名称,K为用户可以收看到的所有电视节目的名称,对用户收看电视节目的行为进行one-hot编码,可以得到bt∈{0,1}K,T表示用户观看电视节目的行为序列长度。
(2)embedding层
很显然,输入层得到的行为数据记录b为高维稀疏向量,在机器学习领域,嵌入(embedding)方法是一种将高维稀疏特征降为低维稠密特征的常用方法,通过嵌入层,我们可以将用户每个时刻的观看行为映射为固定长度的向量,即把b=[b1;b2;...;bt]∈RK×T利用矩阵乘法降维,映射到固定长度的向量x=[x1;x2;...;xT]。
(3)LSTM层
输入数据经过embedding层可以将每个时间点都输出固定长度的向量,由图3可以看出,第t个隐层状态ht可以有效地捕捉用户观看行为之间的依赖关系。
首先,输入经过一个sigmoid函数决定要从细胞状态中丢弃什么样的信息:
ft=σ(Wf·[ht-1,xt]+bf)
其中σ为激活函数,Wf为权值,bf为偏置,ht-1为上一时刻隐状态,xt为当前时刻的输入。
后面通过两部分来确定我们要往细胞状态中放入什么样的新信息,一部分是通过sigmoid函数确定什么值需要更新:
it=σ(Wi·[ht-1,xt]+bi)
另一部分是通过tanh函数创建一个新的候选向量
接着通过上两步计算出的结果,对细胞状态进行更新,通过上一时刻的细胞状态与ft相乘可以丢弃需要丢弃的信息,候选向量与it相乘可以决定候选向量的变化程度,将这两者相加得到当前的细胞状态Ct:
最后,将当前的细胞状态Ct经过一个tanh函数与经过sigmoid函数过滤的结果相乘,输出我们需要输出的部分:
ot=σ(Wo·[ht-1,xt]+bo)
ht=ot*tanh(Ct)
为了构建训练样本和测试样本,我们将用户当前观看行为之前的30条观看行为记录作为用户的行为序列,使用用户下一观看行为记录的观看时长生成样本标签,我们认为如果用户对某一节目的观看时长小于2分钟,说明用户对此电视节目不感兴趣,为负样本;如果观看时长超过2分钟,则说明用户对此电视节目感兴趣,为正样本。由此一共生成131000条样本用于对用户兴趣特征进行挖掘,将所有的数据按8:2划分为训练集和测试集。训练模型首先随机生成LSTM初始权值,然后利用训练集来进行训练得到Wf,bf,Wi,bi等一系列模型参数。
因为目标电视节目的观看行为受到用户自身兴趣的影响,在这样的背景下,样本的标签Ltarget通过描述用户最终是否对当前节目感兴趣,从而使得我们可以通过监督学习的方法提取用户的兴趣状态。
(4)attention层
假设某个IPTV账号对应的家庭结构为夫妻加小孩,则可能会存在以下几种兴趣状态:大人的兴趣、小孩的兴趣和全家人的兴趣。假设某个IPTV用户的行为序列中存在3种观看兴趣,记这三种兴趣分别为A,B,C,其中[A1,A2,A3]~A,[B1,B2,B3]~B,[C1,C2,C3]~C分别对应三个兴趣所产生的用户观看行为序列,我们认为每个人的真实的观看行为序列都是基于其个体自身的兴趣而成生的一系列行为上的采样点,而家庭成员之间的观看行为可能是交互出现的,则该用户的一段历史观看行为序列可以表示为S=[A1,A2,B1,B2,A3,C1,C2,B3,C3],即可以将用户的历史行为序列看成是从多个兴趣主题上的采样点混合而成的综合序列。
如果我们只是单单基于用户的历史观看行为进行建模,这样是不合理的,比如在S中,从A2兴趣直接跳转到B1序列的话,一方面可能是某个个体自身的观看兴趣的跳转,也有可能是观看电视节目的主体发生了变化,比如上一时间点收看电视的是老人,下一时间点产生观看行为的个体是小孩。但是通常情况下,给定IPTV账号,我们是不知道用户的家庭结构的,这需要我们从用户序列中进行挖掘,同时需要从这些序列隐含的信息中挖掘出用户某方面兴趣的变化过程。
综上所述,在上一步中基于用户行为序列我们可以挖掘到一系列的用户的兴趣状态序列,考虑到IPTV用户的观看行为受家庭不同成员不同兴趣的影响,我们在LSTM模型中加入attention机制来更好的挖掘家庭不同成员对应的兴趣状态。
attention机制最早来源于图像处理领域,当人们在关注一个东西时,其注意力通常会集中在这个东西的某一个地方,随着目光转移,人的注意力也会随之转移,同样地,通过LSTM输出兴趣状态序列包含多种兴趣,并不是每个兴趣状态都会对最终结果产生作用,起主要作用的只是其中一部分兴趣状态。通过attention机制可以增强与当前IPTV电视节目收看者相关的兴趣的影响,弱化其他兴趣引起的干扰。
本发明中,我们使用的attention机制的计算函数:
其中,ea表示目标电视节目名称的嵌入向量,为模型的参数,需要通过模型训练得到,nh表示隐状态的维度,na表示目标电视节目嵌入向量的维度,最终计算出来的attention得分αt可以反映目标电视节目ea和兴趣状态ht之间的关系,二者相关性越大,则attention得分越高。
所以,通过LSTM输出的隐层状态经过attention机制的输出,可以表示为:
h′t=ht*αt
(5)输出层
这里的输出目标是根据用户之前的观看行为序列判断用户是否对目标电视节目感兴趣,所以最后输出的结果对应一个二分类问题,为1或0,表示对某个电视节目是否感兴趣。输出层将经过attention机制后的特征向量,接全连接层,最后通过sigmoid函数将结果转化为概率:
本发明的性能评价包括如下:
模型基于pytorch工具包实现,设置每次训练的batch_size为64,学习率设置为0.001,使用Adam优化器寻找模型的最优解。经过统计,本数据集中总共涉及的电视节目的数量为13483,改变embedding层之后的维度为64、128、192、256、320,将embedding层输出的结果分别接LSTM、GRU和RNN模型进行训练,选取在验证集上效果最好的epoch对应的评估指标作为当前模型的效果,每个epoch包含50个batch,迭代160次,不同模型对应的准确率、召回率和f1值分别如图4,图5,图6所示。
随着embedding的维度增加,各个模型的性能都在不断的上升,当维度达到256时,模型性能提升的幅度较小甚至不发生变化。从上面3幅图可以看出,添加了attention机制后的准确率、召回率和f1值都普遍高于没有添加attention机制的模型,其中,LSTM模型和GRU模型的效果要明显高于RNN的效果,添加attention机制后的f1值都在0.7之上,相较于没有attention机制的原始模型,其f1提升效果超过了5%。
为了进一步理解attention机制的作用,本发明选取其中一位用户的历史观看数据样本,包含该用户在当前时刻之前的30个历史观看记录和在下一时间点用户观看电视节目的情况。这里利用已经训练好的LSTM-attention模型,计算出attention机制对应每个隐状态的权重αt,并将该权重作为该隐状态对应的电视节目的名称的权重,对其进行可视化,如图7所示。
在图7中,左边为用户当前时刻之前的30条历史观看记录,通过“#”进行分隔,并根据训练好的模型计算得到attention机制对应每个隐状态的权重αt,以此作为与之对应的电视节目的权重,字符越大,说明权重越大。从上图中用户的历史观看记录可以看出,该IPTV用户收看电视节目具有多样性,包含卫视节目、热播、动画片以及CCTV节目,这是一个很典型多成员家庭IPTV用户的电视节目观看记录。与此同时,当前目标电视节目名称为《小猪佩奇24》时,对其影响较大的历史观看行为是用户历史收看的与《小猪佩奇》相关的节目以及《海看动漫》,其余电视节目影响较小。由此也可以说明,attention机制对于模型的输出贡献是非常大的,通过将模型可视化,也便于模型的理解。
综上所述,本发明将原始数据进行一系列预处理,数据结构化和归一化,对量化抽象的用户观看行为所产生的用户观看兴趣和构建样本数据提供了极大的帮助。此外,本发明采用基于LTSM的兴趣挖掘模型,将用户行为序列转化成一系列的兴趣状态,并在此基础上增加了attention机制,实现对家庭成员不同个体兴趣偏好的提取,使兴趣挖掘模型的输出准确率,召回率和f1值明显的提升,模型的性能得到明显的改善。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (10)
1.一种基于attention-RNN的用户兴趣挖掘方法,其特征在于,包括:
步骤1,原始数据收集;
步骤2,结构化处理;
步骤3,数据清洗;
步骤4,异常值判别与处理;
步骤5,数据归一化;
步骤6,建立用户兴趣挖掘模型,所述用户兴趣挖掘模型包括输入层、embedding层、LSTM层、attention层和输出层。
2.根据权利要求1所述的基于attention-RNN的用户兴趣挖掘方法,其特征在于,步骤1中所述原始数据包括网络相关数据、设备相关数据、用户观看节目相关数据以及用户投诉相关数据;所述用户观看节目相关数据包括用户自身相关的数据和用户所观看的电视节目相关的信息;
所述网络相关数据通过Linux系统自带的libpcap模块进行收集;所述设备相关的数据通过Linux系统自带的监控模块收集;所述用户观看节目相关数据从服务器直接获取;所述用户投诉相关数据根据用户的投诉记录由相关的服务部门进行收集,然后上传到数据库中。
3.根据权利要求1所述的基于attention-RNN的用户兴趣挖掘方法,其特征在于,步骤2中所述结构化处理具体为:
将原始数据包含的所有字段组成一条记录,通过用户ID作为数据每一条记录对应的唯一标识,所述网络相关数据通过以下字段表示:
df:时延;
mlr:丢包因子;
jitter:抖动;
loss_packet_rate:丢包率;
can_use_rate:可用率;
overflow_numbers:上溢次数;
abend_numbers:下溢次数;
avg_bit_rate:平均比特率;
所述设备相关数据通过以下字段表示:
stb_id:机顶盒的ID;
stb_ip:机顶盒对应的ip地址;
cpu_usage:当前时间段内IPTV机顶盒的CPU使用率;
所述用户自身相关的数据通过以下字段表示:
user_id:IPTV账号;
collect_time:收集数据的时间;
start_time:用户开始收看电视;
end_time:用户结束收看电视的时间;
所述电视节目相关的信息通过以下字段表示:
type:电视节目所属的类型;
channel_id:频道id或点播节目id;
channel_name:频道名称或点播节目名称。
4.根据权利要求1所述的基于attention-RNN的用户兴趣挖掘方法,其特征在于,步骤3中所述数据清洗包括:对缺失值进行过滤;对重复数据进行去重;对明显的错误数据进行改正,无法改正时将对应记录删除。
5.根据权利要求1所述的基于attention-RNN的用户兴趣挖掘方法,其特征在于,步骤4中所述异常值判别与处理包括:
判断清洗后的数据是否满足正态分布,
如果清洗后的数据满足正态分布,通过给定置信概率和置信区间对数据进行筛选,如果数据不在该区间内,则认为该数据超过了误差范围,将该数据去除;
如果清洗后的数据不满足正态分布,则使用箱线图的方法来判定,箱线图主要包含六个数据节点:上边缘、下边缘、上四分位数Q1、中位数、下四分位数Q3和异常点,四分位距IQR=Q1-Q3,如果数据小于Q1-1.5IQR或者Q3+1.5IQR的值,则认为该数据异常,将该数据去除。
6.根据权利要求1所述的基于attention-RNN的用户兴趣挖掘方法,其特征在于,所述步骤5中数据归一化使用如下转换函数:
其中,b为原始数据,max(b)为数据的最大值,min(b)为数据的最小值。
7.根据权利要求1所述的基于attention-RNN的用户兴趣挖掘方法,其特征在于,
步骤6中所述输入层将观看行为数据记为b=[b1;b2;...;bt]∈RK×T,其中bt表示用户在t时刻的行为,即用户在t时刻收看的电视节目名称,K为用户可以收看到的所有电视节目的名称,对用户收看电视节目的行为进行one-hot编码,可以得到bt∈{0,1}K,T表示用户观看电视节目的行为序列长度;
所述embedding层把b=[b1;b2;...;bt]∈RK×T利用矩阵乘法降维,映射到固定长度的向量x=[x1;x2;...;xT]。
8.根据权利要求7所述的基于attention-RNN的用户兴趣挖掘方法,其特征在于,
步骤6中所述LSTM层中的计算步骤如下:
首先,经过如下sigmoid函数决定要从细胞状态中丢弃的信息:
ft=σ(Wf·[ht-1,xt]+bf),
其中σ为激活函数,Wf为权值,bf为偏置,ht-1为上一时刻隐状态,xt为当前时刻的输入,
通过sigmoid函数确定需要更新的值:
it=σ(Wi·[ht-1,xt]+bi),
通过tanh函数创建一个新的候选向量
对细胞状态进行更新,通过上一时刻的细胞状态Ct-1与ft相乘可以丢弃需要丢弃的信息,候选向量与it相乘可以决定候选向量的变化程度,将这两者相加得到当前的细胞状态Ct:
最后,将当前的细胞状态Ct经过一个tanh函数与经过sigmoid函数过滤的结果相乘,输出ht:
ot=σ(Wo·[ht-1,xt]+bo),
ht=ot*tanh(Ct)。
9.根据权利要求8所述的基于attention-RNN的用户兴趣挖掘方法,其特征在于,
步骤6中所述attention层使用attention机制的计算函数:
其中,ea表示目标电视节目名称的嵌入向量,为模型的参数,需要通过模型训练得到,nh表示隐状态的维度,na表示目标电视节目嵌入向量的维度;
最终计算出来的attention得分αt反映目标电视节目ea和兴趣状态ht之间的关系,二者相关性越大,则attention得分越高,通过LSTM输出的隐层状态经过attention机制的输出,表示为:
h′t=ht*αt。
10.根据权利要求9所述的基于attention-RNN的用户兴趣挖掘方法,其特征在于,
步骤6中输出层将经过attention机制后的特征向量,接全连接层得到输出y,最后通过sigmoid函数转化为概率:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910422603.3A CN110162553A (zh) | 2019-05-21 | 2019-05-21 | 基于attention-RNN的用户兴趣挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910422603.3A CN110162553A (zh) | 2019-05-21 | 2019-05-21 | 基于attention-RNN的用户兴趣挖掘方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110162553A true CN110162553A (zh) | 2019-08-23 |
Family
ID=67631696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910422603.3A Pending CN110162553A (zh) | 2019-05-21 | 2019-05-21 | 基于attention-RNN的用户兴趣挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162553A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110853668A (zh) * | 2019-09-06 | 2020-02-28 | 南京工程学院 | 基于多种特征融合的语音篡改检测方法 |
CN110880141A (zh) * | 2019-12-04 | 2020-03-13 | 中国太平洋保险(集团)股份有限公司 | 一种深度双塔模型智能匹配算法及装置 |
CN111294619A (zh) * | 2020-02-28 | 2020-06-16 | 电子科技大学 | 一种用于iptv领域的长短期兴趣建模方法 |
CN112019869A (zh) * | 2020-08-21 | 2020-12-01 | 广州欢网科技有限责任公司 | 一种直播数据处理方法和装置 |
CN112800048A (zh) * | 2021-03-17 | 2021-05-14 | 电子科技大学 | 一种基于图表示学习的通信网用户通信记录补全方法 |
CN113852867A (zh) * | 2021-05-27 | 2021-12-28 | 天翼智慧家庭科技有限公司 | 一种基于核密度估计的节目推荐方法和装置 |
CN114025205A (zh) * | 2021-11-02 | 2022-02-08 | 天津大学 | 一种家庭tv视频的智能推荐方法 |
CN114177747A (zh) * | 2021-12-02 | 2022-03-15 | 昆岳互联环境技术(江苏)有限公司 | 一种基于机器学习算法的烟气脱硫二氧化硫浓度预测方法 |
CN115098789A (zh) * | 2022-08-05 | 2022-09-23 | 湖南工商大学 | 基于神经网络的多维兴趣融合推荐方法、装置及相关设备 |
US20240169396A1 (en) * | 2022-11-21 | 2024-05-23 | Samsung Electronics Co., Ltd. | Behavior shift-based interest level prediction |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008203A (zh) * | 2014-06-17 | 2014-08-27 | 浙江工商大学 | 一种融入本体情境的用户兴趣挖掘方法 |
-
2019
- 2019-05-21 CN CN201910422603.3A patent/CN110162553A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008203A (zh) * | 2014-06-17 | 2014-08-27 | 浙江工商大学 | 一种融入本体情境的用户兴趣挖掘方法 |
Non-Patent Citations (3)
Title |
---|
QIONGJIE YAO等: "Hierarchical Attention Based Recurrent Neural", 《2018 IEEE INTL CONF》 * |
QIONGJIE YAO等: "Hierarchical Attention Based Recurrent Neural", 《2018 IEEE INTL CONF》, 31 March 2019 (2019-03-31), pages 338 - 345 * |
黄敦贤: "推荐系统中的用户动态兴趣模型研究", CNKI优秀硕士学位论文全文库, pages 19 - 52 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110853668B (zh) * | 2019-09-06 | 2022-02-01 | 南京工程学院 | 基于多种特征融合的语音篡改检测方法 |
CN110853668A (zh) * | 2019-09-06 | 2020-02-28 | 南京工程学院 | 基于多种特征融合的语音篡改检测方法 |
CN110880141A (zh) * | 2019-12-04 | 2020-03-13 | 中国太平洋保险(集团)股份有限公司 | 一种深度双塔模型智能匹配算法及装置 |
CN111294619A (zh) * | 2020-02-28 | 2020-06-16 | 电子科技大学 | 一种用于iptv领域的长短期兴趣建模方法 |
CN112019869A (zh) * | 2020-08-21 | 2020-12-01 | 广州欢网科技有限责任公司 | 一种直播数据处理方法和装置 |
CN112800048A (zh) * | 2021-03-17 | 2021-05-14 | 电子科技大学 | 一种基于图表示学习的通信网用户通信记录补全方法 |
CN112800048B (zh) * | 2021-03-17 | 2021-08-06 | 电子科技大学 | 一种基于图表示学习的通信网用户通信记录补全方法 |
CN113852867A (zh) * | 2021-05-27 | 2021-12-28 | 天翼智慧家庭科技有限公司 | 一种基于核密度估计的节目推荐方法和装置 |
CN113852867B (zh) * | 2021-05-27 | 2023-09-08 | 天翼数字生活科技有限公司 | 一种基于核密度估计的节目推荐方法和装置 |
CN114025205A (zh) * | 2021-11-02 | 2022-02-08 | 天津大学 | 一种家庭tv视频的智能推荐方法 |
CN114177747A (zh) * | 2021-12-02 | 2022-03-15 | 昆岳互联环境技术(江苏)有限公司 | 一种基于机器学习算法的烟气脱硫二氧化硫浓度预测方法 |
CN115098789A (zh) * | 2022-08-05 | 2022-09-23 | 湖南工商大学 | 基于神经网络的多维兴趣融合推荐方法、装置及相关设备 |
CN115098789B (zh) * | 2022-08-05 | 2024-04-16 | 湖南工商大学 | 基于神经网络的多维兴趣融合推荐方法、装置及相关设备 |
US20240169396A1 (en) * | 2022-11-21 | 2024-05-23 | Samsung Electronics Co., Ltd. | Behavior shift-based interest level prediction |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162553A (zh) | 基于attention-RNN的用户兴趣挖掘方法 | |
CA2771379C (en) | Estimating and displaying social interest in time-based media | |
CN102263999B (zh) | 基于人脸识别对电视节目自动分类的方法及其系统 | |
CN103686237B (zh) | 推荐视频资源的方法及系统 | |
US20070288965A1 (en) | Recommended program information providing method and apparatus | |
CN109429103B (zh) | 推荐信息的方法、装置及计算机可读存储介质、终端设备 | |
US20090025054A1 (en) | Method and system for access to content in a content space | |
JP4247280B2 (ja) | 推薦番組情報提供装置、推薦番組情報提供方法及びプログラム | |
US20040073919A1 (en) | Commercial recommender | |
EP2204747A1 (en) | Identification of segments within audio, video, and multimedia items | |
US20120072546A1 (en) | Psychographic device fingerprinting | |
CN103377242A (zh) | 用户行为分析方法、分析预测方法及电视节目推送系统 | |
US8600969B2 (en) | User interest pattern modeling server and method for modeling user interest pattern | |
CN101764661A (zh) | 基于数据融合的视频节目推荐系统 | |
CN112163560B (zh) | 一种视频信息处理方法、装置、电子设备及存储介质 | |
CN106998502B (zh) | 基于霍克斯过程的节目质量评价方法 | |
Xu et al. | Catch-up TV recommendations: show old favourites and find new ones | |
Yang et al. | Personalized channel recommendation deep learning from a switch sequence | |
KR20220095445A (ko) | 맞춤형 추천 컨텐츠를 제공하는 서버 및 방법 | |
CN112464100A (zh) | 信息推荐模型训练方法、信息推荐方法、装置及设备 | |
WO2020252783A1 (en) | Asset metadata service | |
EP2151799A1 (en) | Recommander method and system, in particular for IPTV | |
CN111918136B (zh) | 一种兴趣的分析方法及装置、存储介质、电子设备 | |
CN109213933A (zh) | 内容项推荐方法、装置、设备及存储介质 | |
CN106899876A (zh) | 一种视频特征信息的展示方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190823 |
|
RJ01 | Rejection of invention patent application after publication |